-- AlterTable ALTER TABLE "Contract" ADD COLUMN "legalEntityId" TEXT; ALTER TABLE "Contract" ADD COLUMN "nasPath" TEXT; ALTER TABLE "Contract" ADD COLUMN "remark" TEXT; ALTER TABLE "Contract" ADD COLUMN "submittedAt" TIMESTAMP(3); ALTER TABLE "Contract" ADD COLUMN "approvedAt" TIMESTAMP(3); ALTER TABLE "Contract" ADD COLUMN "createdById" TEXT; ALTER TABLE "Contract" ADD CONSTRAINT "Contract_legalEntityId_fkey" FOREIGN KEY ("legalEntityId") REFERENCES "LegalEntity"("id") ON DELETE SET NULL ON UPDATE CASCADE; ALTER TABLE "Contract" ADD CONSTRAINT "Contract_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AlterTable ALTER TABLE "SealRequest" ADD COLUMN "contractId" TEXT; ALTER TABLE "SealRequest" ADD COLUMN "applicantId" TEXT; ALTER TABLE "SealRequest" ADD CONSTRAINT "SealRequest_contractId_fkey" FOREIGN KEY ("contractId") REFERENCES "Contract"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- AlterTable ALTER TABLE "Project" ADD COLUMN "presalesCost" DECIMAL(18,2) NOT NULL DEFAULT 0; -- CreateTable CREATE TABLE "ContractReviewer" ( "id" TEXT NOT NULL, "contractId" TEXT NOT NULL, "userId" TEXT NOT NULL, "result" TEXT NOT NULL DEFAULT 'PENDING', "comment" TEXT, "decidedAt" TIMESTAMP(3), CONSTRAINT "ContractReviewer_pkey" PRIMARY KEY ("id") ); CREATE UNIQUE INDEX "ContractReviewer_contractId_userId_key" ON "ContractReviewer"("contractId", "userId"); CREATE INDEX "ContractReviewer_contractId_idx" ON "ContractReviewer"("contractId"); ALTER TABLE "ContractReviewer" ADD CONSTRAINT "ContractReviewer_contractId_fkey" FOREIGN KEY ("contractId") REFERENCES "Contract"("id") ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE "ContractReviewer" ADD CONSTRAINT "ContractReviewer_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- CreateTable CREATE TABLE "ContractActionLog" ( "id" TEXT NOT NULL, "contractId" TEXT NOT NULL, "actorId" TEXT NOT NULL, "action" TEXT NOT NULL, "fromStatus" TEXT, "toStatus" TEXT, "comment" TEXT, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "ContractActionLog_pkey" PRIMARY KEY ("id") ); CREATE INDEX "ContractActionLog_contractId_idx" ON "ContractActionLog"("contractId"); ALTER TABLE "ContractActionLog" ADD CONSTRAINT "ContractActionLog_contractId_fkey" FOREIGN KEY ("contractId") REFERENCES "Contract"("id") ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE "ContractActionLog" ADD CONSTRAINT "ContractActionLog_actorId_fkey" FOREIGN KEY ("actorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;