65 lines
2.4 KiB
MySQL
65 lines
2.4 KiB
MySQL
|
|
CREATE TABLE IF NOT EXISTS public."Hr_T_DevelopmentPlan"
|
||
|
|
(
|
||
|
|
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
|
||
|
|
"TenantId" uuid NULL,
|
||
|
|
"EmployeeId" uuid NOT NULL,
|
||
|
|
"ReviewId" uuid NULL,
|
||
|
|
"SkillId" uuid NULL,
|
||
|
|
"Title" varchar(256) NOT NULL,
|
||
|
|
"ActionType" varchar(16) NOT NULL DEFAULT 'Training',
|
||
|
|
"TrainingId" uuid NULL,
|
||
|
|
"CertificateId" uuid NULL,
|
||
|
|
"MentorId" uuid NULL,
|
||
|
|
"StartDate" date NULL,
|
||
|
|
"DueDate" date NULL,
|
||
|
|
"Status" varchar(16) NOT NULL DEFAULT 'Planned',
|
||
|
|
"Progress" integer NOT NULL DEFAULT 0,
|
||
|
|
"Description" varchar(1024) NULL,
|
||
|
|
"EmployeeNote" 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_DevelopmentPlan" PRIMARY KEY ("Id")
|
||
|
|
);
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_DevelopmentPlan_ActionType') THEN
|
||
|
|
ALTER TABLE public."Hr_T_DevelopmentPlan" ADD CONSTRAINT "CK_Hr_T_DevelopmentPlan_ActionType" CHECK ("ActionType" IN ('Training', 'Mentoring', 'Project', 'Reading', 'Certificate', 'Other'));
|
||
|
|
END IF;
|
||
|
|
END
|
||
|
|
$$;
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_DevelopmentPlan_Status') THEN
|
||
|
|
ALTER TABLE public."Hr_T_DevelopmentPlan" ADD CONSTRAINT "CK_Hr_T_DevelopmentPlan_Status" CHECK ("Status" IN ('Planned', 'InProgress', 'Completed', 'Cancelled'));
|
||
|
|
END IF;
|
||
|
|
END
|
||
|
|
$$;
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_DevelopmentPlan_Progress') THEN
|
||
|
|
ALTER TABLE public."Hr_T_DevelopmentPlan" ADD CONSTRAINT "CK_Hr_T_DevelopmentPlan_Progress" CHECK ("Progress" BETWEEN 0 AND 100);
|
||
|
|
END IF;
|
||
|
|
END
|
||
|
|
$$;
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_DevelopmentPlan_Dates') THEN
|
||
|
|
ALTER TABLE public."Hr_T_DevelopmentPlan" ADD CONSTRAINT "CK_Hr_T_DevelopmentPlan_Dates" CHECK ("DueDate" IS NULL OR "StartDate" IS NULL OR "DueDate" >= "StartDate");
|
||
|
|
END IF;
|
||
|
|
END
|
||
|
|
$$;
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS "IX_Hr_T_DevelopmentPlan_Employee" ON public."Hr_T_DevelopmentPlan" ("EmployeeId");
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS "IX_Hr_T_DevelopmentPlan_Review" ON public."Hr_T_DevelopmentPlan" ("ReviewId");
|