59 lines
2.0 KiB
SQL
59 lines
2.0 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "ProposalStatus" AS ENUM ('DRAFT', 'IN_PROGRESS', 'SUBMITTED', 'ARCHIVED');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Proposal" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"sourceLicitationId" TEXT,
|
|
"title" TEXT NOT NULL,
|
|
"issuingEntity" TEXT NOT NULL,
|
|
"summary" TEXT NOT NULL DEFAULT '',
|
|
"status" "ProposalStatus" NOT NULL DEFAULT 'DRAFT',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Proposal_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ProposalDocument" (
|
|
"id" TEXT NOT NULL,
|
|
"proposalId" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"fileName" TEXT NOT NULL,
|
|
"storedFileName" TEXT NOT NULL,
|
|
"filePath" TEXT NOT NULL,
|
|
"mimeType" TEXT NOT NULL,
|
|
"sizeBytes" INTEGER NOT NULL,
|
|
"checksumSha256" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "ProposalDocument_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Proposal_userId_status_idx" ON "Proposal"("userId", "status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Proposal_updatedAt_idx" ON "Proposal"("updatedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Proposal_sourceLicitationId_idx" ON "Proposal"("sourceLicitationId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ProposalDocument_proposalId_createdAt_idx" ON "ProposalDocument"("proposalId", "createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ProposalDocument_userId_createdAt_idx" ON "ProposalDocument"("userId", "createdAt");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Proposal" ADD CONSTRAINT "Proposal_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ProposalDocument" ADD CONSTRAINT "ProposalDocument_proposalId_fkey" FOREIGN KEY ("proposalId") REFERENCES "Proposal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ProposalDocument" ADD CONSTRAINT "ProposalDocument_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|