sozsoft-platform/configs/seeds/postgres/object/Hr_T_PerformanceReview.sql

56 lines
2.2 KiB
MySQL
Raw Normal View History

2026-10-06 11:24:30 +00:00
CREATE TABLE IF NOT EXISTS public."Hr_T_PerformanceReview"
(
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL,
"BranchId" uuid NOT NULL,
2026-10-06 11:24:30 +00:00
"PeriodId" uuid NOT NULL,
"EmployeeId" uuid NOT NULL,
"EmployeeName" varchar(128) NULL,
"ManagerId" uuid NULL,
"DepartmentId" uuid NULL,
"JobPositionId" uuid NULL,
"Status" varchar(16) NOT NULL DEFAULT 'GoalSetting',
"LastStatus" varchar(16) NULL,
"GoalScore" numeric(6, 2) NULL,
"CompetencyScore" numeric(6, 2) NULL,
"Feedback360Score" numeric(6, 2) NULL,
"OverallScore" numeric(6, 2) NULL,
"CalibratedScore" numeric(6, 2) NULL,
"RatingId" uuid NULL,
"SelfComment" varchar(2048) NULL,
"ManagerComment" varchar(2048) NULL,
"CalibrationNote" varchar(1024) NULL,
"SelfSubmittedDate" timestamp NULL,
"ManagerSubmittedDate" timestamp NULL,
"CompletedDate" timestamp NULL,
"IsActive" boolean NOT NULL DEFAULT TRUE,
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
"CreatorId" uuid NULL,
"LastModificationTime" timestamp NULL,
"LastModifierId" uuid NULL,
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
"DeletionTime" timestamp NULL,
"DeleterId" uuid NULL,
CONSTRAINT "PK_Hr_T_PerformanceReview" PRIMARY KEY ("Id")
);
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformanceReview_Status') THEN
ALTER TABLE public."Hr_T_PerformanceReview" ADD CONSTRAINT "CK_Hr_T_PerformanceReview_Status" CHECK ("Status" IN ('GoalSetting', 'SelfReview', 'ManagerReview', 'Calibration', 'Completed'));
END IF;
END
$$;
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformanceReview_CalibratedScore') THEN
ALTER TABLE public."Hr_T_PerformanceReview" ADD CONSTRAINT "CK_Hr_T_PerformanceReview_CalibratedScore" CHECK ("CalibratedScore" IS NULL OR "CalibratedScore" BETWEEN 0 AND 150);
END IF;
END
$$;
CREATE UNIQUE INDEX IF NOT EXISTS "UX_Hr_T_PerformanceReview_Employee" ON public."Hr_T_PerformanceReview" ("PeriodId", "EmployeeId") WHERE "IsDeleted" = FALSE;
CREATE INDEX IF NOT EXISTS "IX_Hr_T_PerformanceReview_Manager" ON public."Hr_T_PerformanceReview" ("ManagerId");