sozsoft-platform/configs/seeds/host/sql/object/Hr_T_DevelopmentPlan.sql
2026-10-04 18:04:16 +03:00

59 lines
No EOL
2.9 KiB
Transact-SQL

IF OBJECT_ID(N'[dbo].[Hr_T_DevelopmentPlan]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Hr_T_DevelopmentPlan]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[EmployeeId] uniqueidentifier NOT NULL,
[ReviewId] uniqueidentifier NULL,
[SkillId] uniqueidentifier NULL,
[Title] nvarchar(256) NOT NULL,
[ActionType] nvarchar(16) NOT NULL DEFAULT 'Training',
[TrainingId] uniqueidentifier NULL,
[CertificateId] uniqueidentifier NULL,
[MentorId] uniqueidentifier NULL,
[StartDate] date NULL,
[DueDate] date NULL,
[Status] nvarchar(16) NOT NULL DEFAULT 'Planned',
[Progress] int NOT NULL DEFAULT 0,
[Description] nvarchar(1024) NULL,
[EmployeeNote] nvarchar(1024) NULL,
[IsActive] bit NOT NULL DEFAULT 1,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Hr_T_DevelopmentPlan] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO
IF OBJECT_ID(N'[dbo].[CK_Hr_T_DevelopmentPlan_ActionType]', 'C') IS NULL
ALTER TABLE [dbo].[Hr_T_DevelopmentPlan] ADD CONSTRAINT [CK_Hr_T_DevelopmentPlan_ActionType] CHECK ([ActionType] IN ('Training', 'Mentoring', 'Project', 'Reading', 'Certificate', 'Other'))
GO
IF OBJECT_ID(N'[dbo].[CK_Hr_T_DevelopmentPlan_Status]', 'C') IS NULL
ALTER TABLE [dbo].[Hr_T_DevelopmentPlan] ADD CONSTRAINT [CK_Hr_T_DevelopmentPlan_Status] CHECK ([Status] IN ('Planned', 'InProgress', 'Completed', 'Cancelled'))
GO
IF OBJECT_ID(N'[dbo].[CK_Hr_T_DevelopmentPlan_Progress]', 'C') IS NULL
ALTER TABLE [dbo].[Hr_T_DevelopmentPlan] ADD CONSTRAINT [CK_Hr_T_DevelopmentPlan_Progress] CHECK ([Progress] BETWEEN 0 AND 100)
GO
IF OBJECT_ID(N'[dbo].[CK_Hr_T_DevelopmentPlan_Dates]', 'C') IS NULL
ALTER TABLE [dbo].[Hr_T_DevelopmentPlan] ADD CONSTRAINT [CK_Hr_T_DevelopmentPlan_Dates] CHECK ([DueDate] IS NULL OR [StartDate] IS NULL OR [DueDate] >= [StartDate])
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_DevelopmentPlan_Employee' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_DevelopmentPlan]'))
CREATE NONCLUSTERED INDEX [IX_Hr_T_DevelopmentPlan_Employee] ON [dbo].[Hr_T_DevelopmentPlan] ([EmployeeId])
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_DevelopmentPlan_Review' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_DevelopmentPlan]'))
CREATE NONCLUSTERED INDEX [IX_Hr_T_DevelopmentPlan_Review] ON [dbo].[Hr_T_DevelopmentPlan] ([ReviewId])
GO