36 行
1.3 KiB
SQL
36 行
1.3 KiB
SQL
-- AlterTable
|
|
ALTER TABLE "employees" ADD COLUMN "avatar_path" TEXT;
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "EmployeeContractType" AS ENUM ('labor', 'nda', 'non_compete', 'internship');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "employee_contracts" (
|
|
"id" UUID NOT NULL,
|
|
"employee_id" UUID NOT NULL,
|
|
"contract_no" TEXT NOT NULL,
|
|
"contract_type" "EmployeeContractType" NOT NULL,
|
|
"start_date" DATE NOT NULL,
|
|
"end_date" DATE NOT NULL,
|
|
"terminated_date" DATE,
|
|
"attachment_path" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"created_by" UUID,
|
|
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_by" UUID,
|
|
|
|
CONSTRAINT "employee_contracts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "employee_contracts_employee_contract_no_ux" ON "employee_contracts"("employee_id", "contract_no");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idx_employee_contracts_employee_start" ON "employee_contracts"("employee_id", "start_date");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idx_employee_contracts_employee_end" ON "employee_contracts"("employee_id", "end_date");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "employee_contracts" ADD CONSTRAINT "employee_contracts_employee_id_fkey" FOREIGN KEY ("employee_id") REFERENCES "employees"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|