feat(08-05-contract-detail-workspace): 完成合同详情与终止状态治理
这个提交包含在:
+15
@@ -0,0 +1,15 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "contract_registry"
|
||||
ADD COLUMN "terminated_at" TIMESTAMP(3),
|
||||
ADD COLUMN "terminated_reason" VARCHAR(1000),
|
||||
ADD COLUMN "terminated_by" UUID;
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idx_contract_registry_terminator_terminated"
|
||||
ON "contract_registry"("terminated_by", "terminated_at");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "contract_registry"
|
||||
ADD CONSTRAINT "contract_registry_terminated_by_fkey"
|
||||
FOREIGN KEY ("terminated_by") REFERENCES "employees"("id")
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@@ -716,6 +716,7 @@ model Employee {
|
||||
created_project_communication_logs ProjectCommunicationLog[] @relation("ProjectCommunicationLogCreator")
|
||||
completed_project_closure_checklists ProjectClosureChecklistItem[] @relation("ProjectClosureChecklistItemCompleter")
|
||||
owned_contract_registries ContractRegistry[] @relation("ContractRegistryOwner")
|
||||
terminated_contract_registries ContractRegistry[] @relation("ContractRegistryTerminator")
|
||||
owned_confidential_document_refs ConfidentialDocumentRef[] @relation("ConfidentialDocumentRefOwner")
|
||||
contracts EmployeeContract[]
|
||||
trainings EmployeeTraining[]
|
||||
@@ -2905,18 +2906,23 @@ model ContractRegistry {
|
||||
offline_archive_no String?
|
||||
owner_employee_id String @db.Uuid
|
||||
status String @default("active") @db.VarChar(32)
|
||||
terminated_at DateTime?
|
||||
terminated_reason String? @db.VarChar(1000)
|
||||
terminated_by String? @db.Uuid
|
||||
|
||||
created_at DateTime @default(now())
|
||||
updated_at DateTime @default(now()) @updatedAt
|
||||
|
||||
project Project? @relation(fields: [project_id], references: [id], onDelete: SetNull)
|
||||
owner Employee @relation("ContractRegistryOwner", fields: [owner_employee_id], references: [id], onDelete: Restrict)
|
||||
terminator Employee? @relation("ContractRegistryTerminator", fields: [terminated_by], references: [id], onDelete: Restrict)
|
||||
document_refs ConfidentialDocumentRef[]
|
||||
|
||||
@@index([project_id, status], map: "idx_contract_registry_project_status")
|
||||
@@index([status, expiry_date], map: "idx_contract_registry_status_expiry")
|
||||
@@index([contract_type, status], map: "idx_contract_registry_type_status")
|
||||
@@index([owner_employee_id, created_at], map: "idx_contract_registry_owner_created")
|
||||
@@index([terminated_by, terminated_at], map: "idx_contract_registry_terminator_terminated")
|
||||
@@map("contract_registry")
|
||||
}
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户