76f266645d
含 Phase 1.1 IM seq 排序、断线重连、多端已读同步与微信式语音转文字 UI。 排除 node_modules、构建产物、安装包与 .env 密钥。 Co-authored-by: Cursor <cursoragent@cursor.com>
568 lines
17 KiB
SQL
568 lines
17 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"username" TEXT NOT NULL,
|
|
"passwordHash" TEXT NOT NULL,
|
|
"displayName" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'ACTIVE',
|
|
"employeeId" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "RefreshToken" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"tokenHash" TEXT NOT NULL,
|
|
"expiresAt" TIMESTAMP(3) NOT NULL,
|
|
"revokedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "RefreshToken_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Department" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"parentId" TEXT,
|
|
"name" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"deptType" TEXT NOT NULL,
|
|
"categoryCode" TEXT,
|
|
"sortNo" INTEGER NOT NULL DEFAULT 0,
|
|
|
|
CONSTRAINT "Department_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Employee" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"name" TEXT NOT NULL,
|
|
"employeeNo" TEXT NOT NULL,
|
|
"departmentId" TEXT NOT NULL,
|
|
"title" TEXT,
|
|
"restSchedule" TEXT NOT NULL DEFAULT 'SINGLE',
|
|
"employmentStatus" TEXT NOT NULL DEFAULT 'REGULAR',
|
|
"hiredAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Employee_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Role" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"name" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL DEFAULT '',
|
|
|
|
CONSTRAINT "Role_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Permission" (
|
|
"id" TEXT NOT NULL,
|
|
"parentId" TEXT,
|
|
"name" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"permType" TEXT NOT NULL,
|
|
"path" TEXT,
|
|
"icon" TEXT,
|
|
"sortNo" INTEGER NOT NULL DEFAULT 0,
|
|
"visible" BOOLEAN NOT NULL DEFAULT true,
|
|
|
|
CONSTRAINT "Permission_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "RolePermission" (
|
|
"roleId" TEXT NOT NULL,
|
|
"permissionId" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "RolePermission_pkey" PRIMARY KEY ("roleId","permissionId")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "UserRole" (
|
|
"userId" TEXT NOT NULL,
|
|
"roleId" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "UserRole_pkey" PRIMARY KEY ("userId","roleId")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "DictItem" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"dictType" TEXT NOT NULL,
|
|
"label" TEXT NOT NULL,
|
|
"value" TEXT NOT NULL,
|
|
"sortNo" INTEGER NOT NULL DEFAULT 0,
|
|
|
|
CONSTRAINT "DictItem_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "LegalEntity" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"name" TEXT NOT NULL,
|
|
"shortName" TEXT NOT NULL,
|
|
"creditNo" TEXT,
|
|
"isDefault" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "LegalEntity_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "BusinessParty" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"name" TEXT NOT NULL,
|
|
"creditNo" TEXT,
|
|
"level" TEXT NOT NULL DEFAULT 'B',
|
|
"riskFlag" BOOLEAN NOT NULL DEFAULT false,
|
|
"remark" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "BusinessParty_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "PartyContact" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"partyId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"phone" TEXT,
|
|
"title" TEXT,
|
|
|
|
CONSTRAINT "PartyContact_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Qualification" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"name" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"expiresAt" TIMESTAMP(3),
|
|
"keeper" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "Qualification_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "SealRequest" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"sealType" TEXT NOT NULL,
|
|
"reason" TEXT NOT NULL,
|
|
"bidCaseId" TEXT,
|
|
"takeOut" BOOLEAN NOT NULL DEFAULT false,
|
|
"returnAt" TIMESTAMP(3),
|
|
"status" TEXT NOT NULL DEFAULT 'PENDING',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "SealRequest_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CredentialBorrow" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"itemName" TEXT NOT NULL,
|
|
"borrower" TEXT NOT NULL,
|
|
"dueAt" TIMESTAMP(3),
|
|
"returnedAt" TIMESTAMP(3),
|
|
"status" TEXT NOT NULL DEFAULT 'BORROWED',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "CredentialBorrow_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "BidCase" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"bidNo" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"externalNo" TEXT,
|
|
"projectType" TEXT NOT NULL,
|
|
"sourceType" TEXT NOT NULL DEFAULT 'FLOW',
|
|
"source" TEXT,
|
|
"qualificationNeed" TEXT,
|
|
"legalEntityId" TEXT,
|
|
"tenderMethod" TEXT,
|
|
"applyStartAt" TIMESTAMP(3),
|
|
"applyEndAt" TIMESTAMP(3),
|
|
"applyMethod" TEXT,
|
|
"openAt" TIMESTAMP(3),
|
|
"openMethod" TEXT,
|
|
"openPlace" TEXT,
|
|
"securityLevel" TEXT NOT NULL DEFAULT 'INTERNAL',
|
|
"projectNature" TEXT,
|
|
"partyId" TEXT,
|
|
"contactName" TEXT,
|
|
"contactPhone" TEXT,
|
|
"bondMethod" TEXT,
|
|
"bondStatus" TEXT,
|
|
"bondPaidAt" TIMESTAMP(3),
|
|
"delivererName" TEXT,
|
|
"priceCap" TEXT,
|
|
"quoteAmount" TEXT,
|
|
"summary" TEXT,
|
|
"remark" TEXT,
|
|
"status" TEXT NOT NULL DEFAULT 'TECH_INITIAL',
|
|
"nasPath" TEXT,
|
|
"createdById" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "BidCase_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "BidReviewer" (
|
|
"id" TEXT NOT NULL,
|
|
"bidCaseId" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"stage" TEXT NOT NULL,
|
|
"result" TEXT NOT NULL DEFAULT 'PENDING',
|
|
"comment" TEXT,
|
|
|
|
CONSTRAINT "BidReviewer_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "TodoTask" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"title" TEXT NOT NULL,
|
|
"bizType" TEXT NOT NULL,
|
|
"bizId" TEXT,
|
|
"assigneeId" TEXT NOT NULL,
|
|
"dueAt" TIMESTAMP(3),
|
|
"status" TEXT NOT NULL DEFAULT 'OPEN',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "TodoTask_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ApprovalTask" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"title" TEXT NOT NULL,
|
|
"bizType" TEXT NOT NULL,
|
|
"bizId" TEXT,
|
|
"assigneeId" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'PENDING',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "ApprovalTask_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "WorkReport" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"authorId" TEXT NOT NULL,
|
|
"period" TEXT NOT NULL,
|
|
"content" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "WorkReport_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Contract" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"contractNo" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"bidCaseId" TEXT,
|
|
"amount" DECIMAL(18,2) NOT NULL DEFAULT 0,
|
|
"status" TEXT NOT NULL DEFAULT 'DRAFT',
|
|
"signedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Contract_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "PaymentMilestone" (
|
|
"id" TEXT NOT NULL,
|
|
"contractId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"ratio" DECIMAL(5,2) NOT NULL,
|
|
"dueAt" TIMESTAMP(3),
|
|
"trigger" TEXT,
|
|
|
|
CONSTRAINT "PaymentMilestone_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Project" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"projectNo" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"contractId" TEXT,
|
|
"status" TEXT NOT NULL DEFAULT 'ACTIVE',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Project_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ProjectTask" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"department" TEXT,
|
|
"dueAt" TIMESTAMP(3),
|
|
"status" TEXT NOT NULL DEFAULT 'OPEN',
|
|
|
|
CONSTRAINT "ProjectTask_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Timesheet" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"projectId" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"workDate" TIMESTAMP(3) NOT NULL,
|
|
"hours" DECIMAL(6,2) NOT NULL,
|
|
"note" TEXT,
|
|
|
|
CONSTRAINT "Timesheet_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ExpenseClaim" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"claimNo" TEXT NOT NULL,
|
|
"applicantId" TEXT NOT NULL,
|
|
"costType" TEXT NOT NULL,
|
|
"bidCaseId" TEXT,
|
|
"projectId" TEXT,
|
|
"amount" DECIMAL(18,2) NOT NULL DEFAULT 0,
|
|
"status" TEXT NOT NULL DEFAULT 'DRAFT',
|
|
"remark" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "ExpenseClaim_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "LoanRecord" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"applicantId" TEXT NOT NULL,
|
|
"amount" DECIMAL(18,2) NOT NULL,
|
|
"purpose" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'OPEN',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "LoanRecord_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "BondRecord" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"bidCaseId" TEXT NOT NULL,
|
|
"bondType" TEXT NOT NULL,
|
|
"amount" DECIMAL(18,2) NOT NULL,
|
|
"paidAt" TIMESTAMP(3),
|
|
"dueBackAt" TIMESTAMP(3),
|
|
"returnedAt" TIMESTAMP(3),
|
|
"status" TEXT NOT NULL DEFAULT 'UNPAID',
|
|
|
|
CONSTRAINT "BondRecord_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "InvoiceRecord" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"invoiceNo" TEXT,
|
|
"amount" DECIMAL(18,2) NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'TO_ISSUE',
|
|
"issuedAt" TIMESTAMP(3),
|
|
"receivedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "InvoiceRecord_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "PurchaseRequest" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"title" TEXT NOT NULL,
|
|
"projectId" TEXT,
|
|
"amount" DECIMAL(18,2) NOT NULL DEFAULT 0,
|
|
"status" TEXT NOT NULL DEFAULT 'DRAFT',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "PurchaseRequest_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "AssetOccupancy" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"assetName" TEXT NOT NULL,
|
|
"holder" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'IN_USE',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "AssetOccupancy_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "OperationLog" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL DEFAULT '1',
|
|
"userId" TEXT,
|
|
"action" TEXT NOT NULL,
|
|
"path" TEXT NOT NULL,
|
|
"requestId" TEXT,
|
|
"ip" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "OperationLog_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_tenantId_username_key" ON "User"("tenantId", "username");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "RefreshToken_userId_idx" ON "RefreshToken"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Department_tenantId_code_key" ON "Department"("tenantId", "code");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Employee_tenantId_employeeNo_key" ON "Employee"("tenantId", "employeeNo");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Role_tenantId_code_key" ON "Role"("tenantId", "code");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Permission_code_key" ON "Permission"("code");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "DictItem_tenantId_dictType_value_key" ON "DictItem"("tenantId", "dictType", "value");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "LegalEntity_tenantId_name_key" ON "LegalEntity"("tenantId", "name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "BusinessParty_tenantId_name_key" ON "BusinessParty"("tenantId", "name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "BidCase_tenantId_bidNo_key" ON "BidCase"("tenantId", "bidNo");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BidReviewer_bidCaseId_idx" ON "BidReviewer"("bidCaseId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Contract_tenantId_contractNo_key" ON "Contract"("tenantId", "contractNo");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Project_tenantId_projectNo_key" ON "Project"("tenantId", "projectNo");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "ExpenseClaim_tenantId_claimNo_key" ON "ExpenseClaim"("tenantId", "claimNo");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "User" ADD CONSTRAINT "User_employeeId_fkey" FOREIGN KEY ("employeeId") REFERENCES "Employee"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "RefreshToken" ADD CONSTRAINT "RefreshToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Department" ADD CONSTRAINT "Department_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Department"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Employee" ADD CONSTRAINT "Employee_departmentId_fkey" FOREIGN KEY ("departmentId") REFERENCES "Department"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Permission" ADD CONSTRAINT "Permission_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Permission"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "RolePermission" ADD CONSTRAINT "RolePermission_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "RolePermission" ADD CONSTRAINT "RolePermission_permissionId_fkey" FOREIGN KEY ("permissionId") REFERENCES "Permission"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserRole" ADD CONSTRAINT "UserRole_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserRole" ADD CONSTRAINT "UserRole_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "PartyContact" ADD CONSTRAINT "PartyContact_partyId_fkey" FOREIGN KEY ("partyId") REFERENCES "BusinessParty"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "BidCase" ADD CONSTRAINT "BidCase_legalEntityId_fkey" FOREIGN KEY ("legalEntityId") REFERENCES "LegalEntity"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "BidCase" ADD CONSTRAINT "BidCase_partyId_fkey" FOREIGN KEY ("partyId") REFERENCES "BusinessParty"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "BidCase" ADD CONSTRAINT "BidCase_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "BidReviewer" ADD CONSTRAINT "BidReviewer_bidCaseId_fkey" FOREIGN KEY ("bidCaseId") REFERENCES "BidCase"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TodoTask" ADD CONSTRAINT "TodoTask_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ApprovalTask" ADD CONSTRAINT "ApprovalTask_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Contract" ADD CONSTRAINT "Contract_bidCaseId_fkey" FOREIGN KEY ("bidCaseId") REFERENCES "BidCase"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "PaymentMilestone" ADD CONSTRAINT "PaymentMilestone_contractId_fkey" FOREIGN KEY ("contractId") REFERENCES "Contract"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Project" ADD CONSTRAINT "Project_contractId_fkey" FOREIGN KEY ("contractId") REFERENCES "Contract"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ProjectTask" ADD CONSTRAINT "ProjectTask_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Timesheet" ADD CONSTRAINT "Timesheet_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ExpenseClaim" ADD CONSTRAINT "ExpenseClaim_bidCaseId_fkey" FOREIGN KEY ("bidCaseId") REFERENCES "BidCase"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ExpenseClaim" ADD CONSTRAINT "ExpenseClaim_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "BondRecord" ADD CONSTRAINT "BondRecord_bidCaseId_fkey" FOREIGN KEY ("bidCaseId") REFERENCES "BidCase"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|