sozsoft-platform/configs/seeds/host/sql/object/Prj_T_Task.sql
2026-09-01 21:59:56 +03:00

54 lines
2.8 KiB
Transact-SQL

-- Create Table
IF OBJECT_ID(N'[dbo].[Prj_T_Task]', N'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Prj_T_Task] (
[Id] UNIQUEIDENTIFIER NOT NULL CONSTRAINT [PK_Prj_T_Task] PRIMARY KEY,
[TenantId] UNIQUEIDENTIFIER NULL,
[Name] NVARCHAR(300) NOT NULL,
[MilestoneId] UNIQUEIDENTIFIER NULL,
[AssigneeIds] NVARCHAR(1000) NULL,
[TagIds] NVARCHAR(1000) NULL,
[CustomerId] UNIQUEIDENTIFIER NULL,
[CustomerContact] NVARCHAR(200) NULL,
[SalesOrderLine] NVARCHAR(300) NULL,
[PlannedHours] DECIMAL(18, 2) NULL,
[ProgressPercent] DECIMAL(18, 2) NULL,
[Status] NVARCHAR(50) NOT NULL CONSTRAINT [DF_Prj_T_Task_Status] DEFAULT (N'Taslak'),
[PlannedStartDate] DATETIME2 NULL,
[PlannedEndDate] DATETIME2 NULL,
[IsFavorite] BIT NOT NULL CONSTRAINT [DF_Prj_T_Task_IsFavorite] DEFAULT (0),
[ParentTaskId] UNIQUEIDENTIFIER NULL,
[Description] NVARCHAR(MAX) NULL,
[CreationTime] DATETIME2 NOT NULL CONSTRAINT [DF_Prj_T_Task_CreationTime] DEFAULT (GETUTCDATE()),
[CreatorId] UNIQUEIDENTIFIER NULL,
[LastModificationTime] DATETIME2 NULL,
[LastModifierId] UNIQUEIDENTIFIER NULL,
[IsDeleted] BIT NOT NULL CONSTRAINT [DF_Prj_T_Task_IsDeleted] DEFAULT (0),
[DeletionTime] DATETIME2 NULL,
[DeleterId] UNIQUEIDENTIFIER NULL
);
END
GO
IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = N'FK_Prj_T_Task_Milestone')
ALTER TABLE [dbo].[Prj_T_Task] ADD CONSTRAINT [FK_Prj_T_Task_Milestone]
FOREIGN KEY ([MilestoneId]) REFERENCES [dbo].[Prj_T_Milestone] ([Id]);
GO
IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = N'FK_Prj_T_Task_Customer')
ALTER TABLE [dbo].[Prj_T_Task] ADD CONSTRAINT [FK_Prj_T_Task_Customer]
FOREIGN KEY ([CustomerId]) REFERENCES [dbo].[Prj_T_Customer] ([Id]);
GO
IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = N'FK_Prj_T_Task_ParentTask')
ALTER TABLE [dbo].[Prj_T_Task] ADD CONSTRAINT [FK_Prj_T_Task_ParentTask]
FOREIGN KEY ([ParentTaskId]) REFERENCES [dbo].[Prj_T_Task] ([Id]);
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Prj_T_Task_TenantId_Status' AND object_id = OBJECT_ID(N'[dbo].[Prj_T_Task]'))
CREATE INDEX [IX_Prj_T_Task_TenantId_Status] ON [dbo].[Prj_T_Task] ([TenantId] ASC, [Status] ASC);
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Prj_T_Task_ParentTaskId' AND object_id = OBJECT_ID(N'[dbo].[Prj_T_Task]'))
CREATE INDEX [IX_Prj_T_Task_ParentTaskId] ON [dbo].[Prj_T_Task] ([ParentTaskId] ASC);
GO