BEGIN TRANSACTION; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE TABLE [InitiativeReports] ( [Id] uniqueidentifier NOT NULL, [Code] nvarchar(50) NOT NULL, [InitiativeId] uniqueidentifier NOT NULL, [ActualOutcomes] nvarchar(4000) NULL, [ActualBudget] decimal(18,2) NULL, [ImplementationNotes] nvarchar(4000) NULL, [Challenges] nvarchar(4000) NULL, [LessonsLearned] nvarchar(4000) NULL, [Status] int NOT NULL, [SubmissionDate] datetime2 NULL, [ApprovalDate] datetime2 NULL, [SubmittedByUserId] nvarchar(450) NULL, [CreatedAt] datetime2 NOT NULL, [UpdatedAt] datetime2 NULL, [CreatedBy] nvarchar(max) NULL, [UpdatedBy] nvarchar(max) NULL, [IsDeleted] bit NOT NULL, [DeletedAt] datetime2 NULL, [DeletedBy] nvarchar(max) NULL, CONSTRAINT [PK_InitiativeReports] PRIMARY KEY ([Id]), CONSTRAINT [FK_InitiativeReports_Initiatives_InitiativeId] FOREIGN KEY ([InitiativeId]) REFERENCES [Initiatives] ([Id]) ON DELETE NO ACTION ); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE TABLE [RecognitionDocuments] ( [Id] uniqueidentifier NOT NULL, [Code] nvarchar(50) NOT NULL, [ReportId] uniqueidentifier NOT NULL, [Type] int NOT NULL, [Content] nvarchar(max) NULL, [Summary] nvarchar(1000) NULL, [Status] int NOT NULL, [SubmissionDate] datetime2 NULL, [ApprovalDate] datetime2 NULL, [SubmittedByUserId] nvarchar(450) NULL, [CreatedAt] datetime2 NOT NULL, [UpdatedAt] datetime2 NULL, [CreatedBy] nvarchar(max) NULL, [UpdatedBy] nvarchar(max) NULL, [IsDeleted] bit NOT NULL, [DeletedAt] datetime2 NULL, [DeletedBy] nvarchar(max) NULL, CONSTRAINT [PK_RecognitionDocuments] PRIMARY KEY ([Id]), CONSTRAINT [FK_RecognitionDocuments_InitiativeReports_ReportId] FOREIGN KEY ([ReportId]) REFERENCES [InitiativeReports] ([Id]) ON DELETE CASCADE ); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE TABLE [ReportStatusHistories] ( [Id] uniqueidentifier NOT NULL, [ReportId] uniqueidentifier NOT NULL, [FromStatus] int NOT NULL, [ToStatus] int NOT NULL, [Comment] nvarchar(2000) NULL, [ChangedByUserId] nvarchar(450) NOT NULL, [CreatedAt] datetime2 NOT NULL, [UpdatedAt] datetime2 NULL, [CreatedBy] nvarchar(max) NULL, [UpdatedBy] nvarchar(max) NULL, [IsDeleted] bit NOT NULL, [DeletedAt] datetime2 NULL, [DeletedBy] nvarchar(max) NULL, CONSTRAINT [PK_ReportStatusHistories] PRIMARY KEY ([Id]), CONSTRAINT [FK_ReportStatusHistories_InitiativeReports_ReportId] FOREIGN KEY ([ReportId]) REFERENCES [InitiativeReports] ([Id]) ON DELETE CASCADE ); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE TABLE [DocumentStatusHistories] ( [Id] uniqueidentifier NOT NULL, [DocumentId] uniqueidentifier NOT NULL, [FromStatus] int NOT NULL, [ToStatus] int NOT NULL, [Comment] nvarchar(2000) NULL, [ChangedByUserId] nvarchar(450) NOT NULL, [CreatedAt] datetime2 NOT NULL, [UpdatedAt] datetime2 NULL, [CreatedBy] nvarchar(max) NULL, [UpdatedBy] nvarchar(max) NULL, [IsDeleted] bit NOT NULL, [DeletedAt] datetime2 NULL, [DeletedBy] nvarchar(max) NULL, CONSTRAINT [PK_DocumentStatusHistories] PRIMARY KEY ([Id]), CONSTRAINT [FK_DocumentStatusHistories_RecognitionDocuments_DocumentId] FOREIGN KEY ([DocumentId]) REFERENCES [RecognitionDocuments] ([Id]) ON DELETE CASCADE ); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE INDEX [IX_DocumentStatusHistories_DocumentId] ON [DocumentStatusHistories] ([DocumentId]); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE UNIQUE INDEX [IX_InitiativeReports_Code] ON [InitiativeReports] ([Code]); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE INDEX [IX_InitiativeReports_InitiativeId] ON [InitiativeReports] ([InitiativeId]); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE INDEX [IX_InitiativeReports_Status] ON [InitiativeReports] ([Status]); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE UNIQUE INDEX [IX_RecognitionDocuments_Code] ON [RecognitionDocuments] ([Code]); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE UNIQUE INDEX [IX_RecognitionDocuments_ReportId_Type] ON [RecognitionDocuments] ([ReportId], [Type]); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN CREATE INDEX [IX_ReportStatusHistories_ReportId] ON [ReportStatusHistories] ([ReportId]); END; IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260416081839_AddReportAndDocumentEntities', N'10.0.6'); END; COMMIT; GO