60 lines
2.2 KiB
SQL
60 lines
2.2 KiB
SQL
CREATE TABLE IF NOT EXISTS public."Hr_T_PerformanceGoal"
|
|
(
|
|
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
"TenantId" uuid NULL,
|
|
"ReviewId" uuid NOT NULL,
|
|
"GoalType" varchar(8) NOT NULL DEFAULT 'KPI',
|
|
"Title" varchar(256) NOT NULL,
|
|
"Description" varchar(1024) NULL,
|
|
"Direction" varchar(16) NOT NULL DEFAULT 'Increasing',
|
|
"Unit" varchar(32) NULL,
|
|
"TargetValue" numeric(18, 2) NOT NULL,
|
|
"ActualValue" numeric(18, 2) NULL,
|
|
"Weight" numeric(5, 2) NOT NULL,
|
|
"AchievementRate" numeric(6, 2) NULL,
|
|
"SelfComment" varchar(1024) NULL,
|
|
"ManagerComment" 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_PerformanceGoal" PRIMARY KEY ("Id")
|
|
);
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformanceGoal_GoalType') THEN
|
|
ALTER TABLE public."Hr_T_PerformanceGoal" ADD CONSTRAINT "CK_Hr_T_PerformanceGoal_GoalType" CHECK ("GoalType" IN ('KPI', 'OKR'));
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformanceGoal_Direction') THEN
|
|
ALTER TABLE public."Hr_T_PerformanceGoal" ADD CONSTRAINT "CK_Hr_T_PerformanceGoal_Direction" CHECK ("Direction" IN ('Increasing', 'Decreasing'));
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformanceGoal_Weight') THEN
|
|
ALTER TABLE public."Hr_T_PerformanceGoal" ADD CONSTRAINT "CK_Hr_T_PerformanceGoal_Weight" CHECK ("Weight" > 0 AND "Weight" <= 100);
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_PerformanceGoal_TargetValue') THEN
|
|
ALTER TABLE public."Hr_T_PerformanceGoal" ADD CONSTRAINT "CK_Hr_T_PerformanceGoal_TargetValue" CHECK ("TargetValue" > 0);
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
CREATE INDEX IF NOT EXISTS "IX_Hr_T_PerformanceGoal_Review" ON public."Hr_T_PerformanceGoal" ("ReviewId");
|