sozsoft-platform/configs/seeds/postgres/object/Hr_T_PerformancePeriod.sql
2026-10-06 14:24:30 +03:00

48 lines
1.8 KiB
SQL

CREATE TABLE IF NOT EXISTS public."Hr_T_PerformancePeriod"
(
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL,
"Name" varchar(128) NOT NULL,
"StartDate" date NOT NULL,
"EndDate" date NOT NULL,
"SelfReviewDueDate" date NULL,
"ManagerReviewDueDate" date NULL,
"GoalWeight" numeric(5, 2) NOT NULL DEFAULT 60,
"CompetencyWeight" numeric(5, 2) NOT NULL DEFAULT 40,
"Is360Enabled" boolean NOT NULL DEFAULT FALSE,
"Status" varchar(16) NOT NULL DEFAULT 'Planned',
"Description" varchar(1024) 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_PerformancePeriod" PRIMARY KEY ("Id")
);
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformancePeriod_Dates') THEN
ALTER TABLE public."Hr_T_PerformancePeriod" ADD CONSTRAINT "CK_Hr_T_PerformancePeriod_Dates" CHECK ("EndDate" >= "StartDate");
END IF;
END
$$;
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformancePeriod_Weights') THEN
ALTER TABLE public."Hr_T_PerformancePeriod" ADD CONSTRAINT "CK_Hr_T_PerformancePeriod_Weights" CHECK ("GoalWeight" >= 0 AND "CompetencyWeight" >= 0 AND "GoalWeight" + "CompetencyWeight" = 100);
END IF;
END
$$;
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformancePeriod_Status') THEN
ALTER TABLE public."Hr_T_PerformancePeriod" ADD CONSTRAINT "CK_Hr_T_PerformancePeriod_Status" CHECK ("Status" IN ('Planned', 'Active', 'Calibration', 'Closed'));
END IF;
END
$$;