82 lines
3.3 KiB
SQL
82 lines
3.3 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "LicitationReviewStatus" AS ENUM ('NEW', 'REVIEWED', 'INTERESTED', 'DISCARDED');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "NormativeDocumentType" AS ENUM ('BASES_LICITACION', 'CONVOCATORIA', 'REGLAMENTO', 'LEY', 'OTRO');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "NormativeAnalysisMethod" AS ENUM ('DIRECT', 'OCR');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "NormativeConfidence" AS ENUM ('LOW', 'MEDIUM', 'HIGH');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "NormativeRiskLevel" AS ENUM ('ALTO', 'MEDIO', 'BAJO');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "LicitationUserPreference" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"licitationId" TEXT NOT NULL,
|
|
"status" "LicitationReviewStatus" NOT NULL DEFAULT 'NEW',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "LicitationUserPreference_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "NormativeAnalysisHistory" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"sourceLicitationId" TEXT,
|
|
"fileName" TEXT NOT NULL,
|
|
"documentType" "NormativeDocumentType" NOT NULL,
|
|
"issuingEntity" TEXT,
|
|
"methodUsed" "NormativeAnalysisMethod" NOT NULL,
|
|
"numPages" INTEGER NOT NULL,
|
|
"warnings" JSONB,
|
|
"extractedChars" INTEGER NOT NULL,
|
|
"confidence" "NormativeConfidence" NOT NULL,
|
|
"viabilityScore" INTEGER NOT NULL,
|
|
"riskLevel" "NormativeRiskLevel" NOT NULL,
|
|
"executiveSummary" TEXT NOT NULL,
|
|
"result" JSONB NOT NULL,
|
|
"analyzedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"deletedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "NormativeAnalysisHistory_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "LicitationUserPreference_userId_licitationId_key" ON "LicitationUserPreference"("userId", "licitationId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "LicitationUserPreference_userId_status_idx" ON "LicitationUserPreference"("userId", "status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "LicitationUserPreference_licitationId_status_idx" ON "LicitationUserPreference"("licitationId", "status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "NormativeAnalysisHistory_userId_analyzedAt_idx" ON "NormativeAnalysisHistory"("userId", "analyzedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "NormativeAnalysisHistory_userId_deletedAt_idx" ON "NormativeAnalysisHistory"("userId", "deletedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "NormativeAnalysisHistory_sourceLicitationId_idx" ON "NormativeAnalysisHistory"("sourceLicitationId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "LicitationUserPreference" ADD CONSTRAINT "LicitationUserPreference_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "LicitationUserPreference" ADD CONSTRAINT "LicitationUserPreference_licitationId_fkey" FOREIGN KEY ("licitationId") REFERENCES "Licitation"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "NormativeAnalysisHistory" ADD CONSTRAINT "NormativeAnalysisHistory_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "NormativeAnalysisHistory" ADD CONSTRAINT "NormativeAnalysisHistory_sourceLicitationId_fkey" FOREIGN KEY ("sourceLicitationId") REFERENCES "Licitation"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|