IF OBJECT_ID(N'[__EFMigrationsHistory]') IS NULL BEGIN CREATE TABLE [__EFMigrationsHistory] ( [MigrationId] nvarchar(150) NOT NULL, [ProductVersion] nvarchar(32) NOT NULL, CONSTRAINT [PK___EFMigrationsHistory] PRIMARY KEY ([MigrationId]) ); END; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260316155002_Baseline' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-16T15:49:58.7377851Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260316155002_Baseline' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-16T15:49:58.7377856Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260316155002_Baseline' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-16T15:49:58.7377858Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260316155002_Baseline' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260316155002_Baseline', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317121938_AddAiContextProfile' ) BEGIN ALTER TABLE [CompanyOperatingCosts] ADD [AiContextProfile] nvarchar(2000) NULL; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317121938_AddAiContextProfile' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-17T12:19:34.4894690Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317121938_AddAiContextProfile' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-17T12:19:34.4894696Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317121938_AddAiContextProfile' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-17T12:19:34.4894698Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317121938_AddAiContextProfile' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260317121938_AddAiContextProfile', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317205927_FixLaborItemQuantityDecimal' ) BEGIN DECLARE @var0 sysname; SELECT @var0 = [d].[name] FROM [sys].[default_constraints] [d] INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id] WHERE ([d].[parent_object_id] = OBJECT_ID(N'[QuoteItems]') AND [c].[name] = N'Quantity'); IF @var0 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var0 + '];'); ALTER TABLE [QuoteItems] ALTER COLUMN [Quantity] decimal(18,2) NOT NULL; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317205927_FixLaborItemQuantityDecimal' ) BEGIN DECLARE @var1 sysname; SELECT @var1 = [d].[name] FROM [sys].[default_constraints] [d] INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id] WHERE ([d].[parent_object_id] = OBJECT_ID(N'[JobItems]') AND [c].[name] = N'Quantity'); IF @var1 IS NOT NULL EXEC(N'ALTER TABLE [JobItems] DROP CONSTRAINT [' + @var1 + '];'); ALTER TABLE [JobItems] ALTER COLUMN [Quantity] decimal(18,2) NOT NULL; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317205927_FixLaborItemQuantityDecimal' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-17T20:59:24.2463737Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317205927_FixLaborItemQuantityDecimal' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-17T20:59:24.2463746Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317205927_FixLaborItemQuantityDecimal' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-17T20:59:24.2463748Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260317205927_FixLaborItemQuantityDecimal' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260317205927_FixLaborItemQuantityDecimal', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318124847_AddJobTimeEntries' ) BEGIN CREATE TABLE [JobTimeEntries] ( [Id] int NOT NULL IDENTITY, [JobId] int NOT NULL, [ShopWorkerId] int NOT NULL, [WorkDate] datetime2 NOT NULL, [HoursWorked] decimal(18,2) NOT NULL, [Stage] nvarchar(max) NULL, [Notes] nvarchar(max) NULL, [CompanyId] int 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_JobTimeEntries] PRIMARY KEY ([Id]), CONSTRAINT [FK_JobTimeEntries_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE CASCADE, CONSTRAINT [FK_JobTimeEntries_ShopWorkers_ShopWorkerId] FOREIGN KEY ([ShopWorkerId]) REFERENCES [ShopWorkers] ([Id]) ON DELETE CASCADE ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318124847_AddJobTimeEntries' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T12:48:44.7462691Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318124847_AddJobTimeEntries' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T12:48:44.7462697Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318124847_AddJobTimeEntries' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T12:48:44.7462699Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318124847_AddJobTimeEntries' ) BEGIN CREATE INDEX [IX_JobTimeEntries_JobId] ON [JobTimeEntries] ([JobId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318124847_AddJobTimeEntries' ) BEGIN CREATE INDEX [IX_JobTimeEntries_ShopWorkerId] ON [JobTimeEntries] ([ShopWorkerId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318124847_AddJobTimeEntries' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260318124847_AddJobTimeEntries', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318131500_AddJobShopAccessCode' ) BEGIN ALTER TABLE [Jobs] ADD [ShopAccessCode] uniqueidentifier NOT NULL DEFAULT (NEWID()); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318131500_AddJobShopAccessCode' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T13:14:57.2203832Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318131500_AddJobShopAccessCode' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T13:14:57.2203838Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318131500_AddJobShopAccessCode' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T13:14:57.2203839Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318131500_AddJobShopAccessCode' ) BEGIN CREATE UNIQUE INDEX [IX_Jobs_ShopAccessCode] ON [Jobs] ([ShopAccessCode]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318131500_AddJobShopAccessCode' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260318131500_AddJobShopAccessCode', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318132857_AddShopWorkerRoleCosts' ) BEGIN CREATE TABLE [ShopWorkerRoleCosts] ( [Id] int NOT NULL IDENTITY, [Role] int NOT NULL, [HourlyRate] decimal(18,2) NOT NULL, [CompanyId] int 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_ShopWorkerRoleCosts] PRIMARY KEY ([Id]) ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318132857_AddShopWorkerRoleCosts' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T13:28:54.6854802Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318132857_AddShopWorkerRoleCosts' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T13:28:54.6854849Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318132857_AddShopWorkerRoleCosts' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T13:28:54.6854851Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318132857_AddShopWorkerRoleCosts' ) BEGIN CREATE UNIQUE INDEX [IX_ShopWorkerRoleCosts_CompanyId_Role] ON [ShopWorkerRoleCosts] ([CompanyId], [Role]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318132857_AddShopWorkerRoleCosts' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260318132857_AddShopWorkerRoleCosts', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN ALTER TABLE [Jobs] ADD [IsReworkJob] bit NOT NULL DEFAULT CAST(0 AS bit); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN ALTER TABLE [Jobs] ADD [OriginalJobId] int NULL; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN CREATE TABLE [ReworkRecords] ( [Id] int NOT NULL IDENTITY, [JobId] int NOT NULL, [JobItemId] int NULL, [ReworkJobId] int NULL, [ReworkType] int NOT NULL, [Reason] int NOT NULL, [DefectDescription] nvarchar(max) NOT NULL, [DiscoveredBy] int NOT NULL, [DiscoveredDate] datetime2 NOT NULL, [ReportedByName] nvarchar(max) NULL, [EstimatedReworkCost] decimal(18,2) NOT NULL, [ActualReworkCost] decimal(18,2) NOT NULL, [IsBillableToCustomer] bit NOT NULL, [BillingNotes] nvarchar(max) NULL, [Status] int NOT NULL, [Resolution] int NULL, [ResolvedDate] datetime2 NULL, [ResolutionNotes] nvarchar(max) NULL, [CompanyId] int 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_ReworkRecords] PRIMARY KEY ([Id]), CONSTRAINT [FK_ReworkRecords_JobItems_JobItemId] FOREIGN KEY ([JobItemId]) REFERENCES [JobItems] ([Id]), CONSTRAINT [FK_ReworkRecords_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE NO ACTION, CONSTRAINT [FK_ReworkRecords_Jobs_ReworkJobId] FOREIGN KEY ([ReworkJobId]) REFERENCES [Jobs] ([Id]) ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T13:42:32.9092998Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T13:42:32.9093003Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T13:42:32.9093005Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN CREATE INDEX [IX_Jobs_OriginalJobId] ON [Jobs] ([OriginalJobId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN CREATE INDEX [IX_ReworkRecords_JobId] ON [ReworkRecords] ([JobId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN CREATE INDEX [IX_ReworkRecords_JobItemId] ON [ReworkRecords] ([JobItemId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN CREATE INDEX [IX_ReworkRecords_ReworkJobId] ON [ReworkRecords] ([ReworkJobId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN ALTER TABLE [Jobs] ADD CONSTRAINT [FK_Jobs_Jobs_OriginalJobId] FOREIGN KEY ([OriginalJobId]) REFERENCES [Jobs] ([Id]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318134236_AddReworkTracking' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260318134236_AddReworkTracking', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN ALTER TABLE [Invoices] ADD [CreditApplied] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN ALTER TABLE [Customers] ADD [CreditBalance] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE TABLE [CreditMemos] ( [Id] int NOT NULL IDENTITY, [MemoNumber] nvarchar(450) NOT NULL, [CustomerId] int NOT NULL, [OriginalInvoiceId] int NULL, [ReworkRecordId] int NULL, [Amount] decimal(18,2) NOT NULL, [AmountApplied] decimal(18,2) NOT NULL, [IssueDate] datetime2 NOT NULL, [ExpiryDate] datetime2 NULL, [Reason] nvarchar(max) NOT NULL, [Notes] nvarchar(max) NULL, [Status] int NOT NULL, [IssuedById] nvarchar(450) NULL, [CompanyId] int 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_CreditMemos] PRIMARY KEY ([Id]), CONSTRAINT [FK_CreditMemos_AspNetUsers_IssuedById] FOREIGN KEY ([IssuedById]) REFERENCES [AspNetUsers] ([Id]), CONSTRAINT [FK_CreditMemos_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]) ON DELETE NO ACTION, CONSTRAINT [FK_CreditMemos_Invoices_OriginalInvoiceId] FOREIGN KEY ([OriginalInvoiceId]) REFERENCES [Invoices] ([Id]), CONSTRAINT [FK_CreditMemos_ReworkRecords_ReworkRecordId] FOREIGN KEY ([ReworkRecordId]) REFERENCES [ReworkRecords] ([Id]) ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE TABLE [Refunds] ( [Id] int NOT NULL IDENTITY, [InvoiceId] int NOT NULL, [PaymentId] int NULL, [Amount] decimal(18,2) NOT NULL, [RefundDate] datetime2 NOT NULL, [RefundMethod] int NOT NULL, [Reason] nvarchar(max) NOT NULL, [Reference] nvarchar(max) NULL, [Notes] nvarchar(max) NULL, [Status] int NOT NULL, [IssuedDate] datetime2 NULL, [IssuedById] nvarchar(450) NULL, [CompanyId] int 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_Refunds] PRIMARY KEY ([Id]), CONSTRAINT [FK_Refunds_AspNetUsers_IssuedById] FOREIGN KEY ([IssuedById]) REFERENCES [AspNetUsers] ([Id]), CONSTRAINT [FK_Refunds_Invoices_InvoiceId] FOREIGN KEY ([InvoiceId]) REFERENCES [Invoices] ([Id]) ON DELETE NO ACTION, CONSTRAINT [FK_Refunds_Payments_PaymentId] FOREIGN KEY ([PaymentId]) REFERENCES [Payments] ([Id]) ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE TABLE [CreditMemoApplications] ( [Id] int NOT NULL IDENTITY, [CreditMemoId] int NOT NULL, [InvoiceId] int NOT NULL, [AmountApplied] decimal(18,2) NOT NULL, [AppliedDate] datetime2 NOT NULL, [AppliedById] nvarchar(450) NULL, [CompanyId] int 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_CreditMemoApplications] PRIMARY KEY ([Id]), CONSTRAINT [FK_CreditMemoApplications_AspNetUsers_AppliedById] FOREIGN KEY ([AppliedById]) REFERENCES [AspNetUsers] ([Id]), CONSTRAINT [FK_CreditMemoApplications_CreditMemos_CreditMemoId] FOREIGN KEY ([CreditMemoId]) REFERENCES [CreditMemos] ([Id]) ON DELETE NO ACTION, CONSTRAINT [FK_CreditMemoApplications_Invoices_InvoiceId] FOREIGN KEY ([InvoiceId]) REFERENCES [Invoices] ([Id]) ON DELETE NO ACTION ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T22:26:44.9349567Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T22:26:44.9349573Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-18T22:26:44.9349575Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_CreditMemoApplications_AppliedById] ON [CreditMemoApplications] ([AppliedById]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_CreditMemoApplications_CreditMemoId] ON [CreditMemoApplications] ([CreditMemoId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_CreditMemoApplications_InvoiceId] ON [CreditMemoApplications] ([InvoiceId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE UNIQUE INDEX [IX_CreditMemos_CompanyId_MemoNumber] ON [CreditMemos] ([CompanyId], [MemoNumber]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_CreditMemos_CustomerId] ON [CreditMemos] ([CustomerId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_CreditMemos_IssuedById] ON [CreditMemos] ([IssuedById]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_CreditMemos_OriginalInvoiceId] ON [CreditMemos] ([OriginalInvoiceId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_CreditMemos_ReworkRecordId] ON [CreditMemos] ([ReworkRecordId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_Refunds_InvoiceId] ON [Refunds] ([InvoiceId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_Refunds_IssuedById] ON [Refunds] ([IssuedById]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN CREATE INDEX [IX_Refunds_PaymentId] ON [Refunds] ([PaymentId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260318222648_AddRefundsAndCreditMemos' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260318222648_AddRefundsAndCreditMemos', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE TABLE [JobTemplates] ( [Id] int NOT NULL IDENTITY, [Name] nvarchar(max) NOT NULL, [Description] nvarchar(max) NULL, [CustomerId] int NULL, [SpecialInstructions] nvarchar(max) NULL, [IsActive] bit NOT NULL, [UsageCount] int NOT NULL, [CompanyId] int 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_JobTemplates] PRIMARY KEY ([Id]), CONSTRAINT [FK_JobTemplates_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]) ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE TABLE [JobTemplateItems] ( [Id] int NOT NULL IDENTITY, [JobTemplateId] int NOT NULL, [Description] nvarchar(max) NOT NULL, [Quantity] decimal(18,2) NOT NULL, [SurfaceAreaSqFt] decimal(18,2) NOT NULL, [CatalogItemId] int NULL, [IsGenericItem] bit NOT NULL, [IsLaborItem] bit NOT NULL, [ManualUnitPrice] decimal(18,2) NULL, [RequiresSandblasting] bit NOT NULL, [RequiresMasking] bit NOT NULL, [IncludePrepCost] bit NOT NULL, [EstimatedMinutes] int NOT NULL, [Complexity] nvarchar(max) NULL, [Notes] nvarchar(max) NULL, [DisplayOrder] int NOT NULL, [CompanyId] int 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_JobTemplateItems] PRIMARY KEY ([Id]), CONSTRAINT [FK_JobTemplateItems_CatalogItems_CatalogItemId] FOREIGN KEY ([CatalogItemId]) REFERENCES [CatalogItems] ([Id]), CONSTRAINT [FK_JobTemplateItems_JobTemplates_JobTemplateId] FOREIGN KEY ([JobTemplateId]) REFERENCES [JobTemplates] ([Id]) ON DELETE CASCADE ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE TABLE [JobTemplateItemCoats] ( [Id] int NOT NULL IDENTITY, [JobTemplateItemId] int NOT NULL, [CoatName] nvarchar(max) NOT NULL, [Sequence] int NOT NULL, [InventoryItemId] int NULL, [ColorName] nvarchar(max) NULL, [VendorId] int NULL, [ColorCode] nvarchar(max) NULL, [Finish] nvarchar(max) NULL, [CoverageSqFtPerLb] decimal(18,2) NOT NULL, [TransferEfficiency] decimal(18,2) NOT NULL, [PowderCostPerLb] decimal(18,2) NULL, [Notes] nvarchar(max) NULL, [CompanyId] int 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_JobTemplateItemCoats] PRIMARY KEY ([Id]), CONSTRAINT [FK_JobTemplateItemCoats_InventoryItems_InventoryItemId] FOREIGN KEY ([InventoryItemId]) REFERENCES [InventoryItems] ([Id]), CONSTRAINT [FK_JobTemplateItemCoats_JobTemplateItems_JobTemplateItemId] FOREIGN KEY ([JobTemplateItemId]) REFERENCES [JobTemplateItems] ([Id]) ON DELETE CASCADE, CONSTRAINT [FK_JobTemplateItemCoats_Vendors_VendorId] FOREIGN KEY ([VendorId]) REFERENCES [Vendors] ([Id]) ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE TABLE [JobTemplateItemPrepServices] ( [Id] int NOT NULL IDENTITY, [JobTemplateItemId] int NOT NULL, [PrepServiceId] int NOT NULL, [EstimatedMinutes] int NOT NULL, [CompanyId] int 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_JobTemplateItemPrepServices] PRIMARY KEY ([Id]), CONSTRAINT [FK_JobTemplateItemPrepServices_JobTemplateItems_JobTemplateItemId] FOREIGN KEY ([JobTemplateItemId]) REFERENCES [JobTemplateItems] ([Id]) ON DELETE CASCADE, CONSTRAINT [FK_JobTemplateItemPrepServices_PrepServices_PrepServiceId] FOREIGN KEY ([PrepServiceId]) REFERENCES [PrepServices] ([Id]) ON DELETE CASCADE ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-19T02:38:23.4195291Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-19T02:38:23.4195296Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-19T02:38:23.4195298Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE INDEX [IX_JobTemplateItemCoats_InventoryItemId] ON [JobTemplateItemCoats] ([InventoryItemId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE INDEX [IX_JobTemplateItemCoats_JobTemplateItemId] ON [JobTemplateItemCoats] ([JobTemplateItemId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE INDEX [IX_JobTemplateItemCoats_VendorId] ON [JobTemplateItemCoats] ([VendorId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE INDEX [IX_JobTemplateItemPrepServices_JobTemplateItemId] ON [JobTemplateItemPrepServices] ([JobTemplateItemId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE INDEX [IX_JobTemplateItemPrepServices_PrepServiceId] ON [JobTemplateItemPrepServices] ([PrepServiceId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE INDEX [IX_JobTemplateItems_CatalogItemId] ON [JobTemplateItems] ([CatalogItemId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE INDEX [IX_JobTemplateItems_JobTemplateId] ON [JobTemplateItems] ([JobTemplateId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN CREATE INDEX [IX_JobTemplates_CustomerId] ON [JobTemplates] ([CustomerId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319023827_AddJobTemplates' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260319023827_AddJobTemplates', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN ALTER TABLE [Invoices] ADD [GiftCertificateRedeemed] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN CREATE TABLE [GiftCertificates] ( [Id] int NOT NULL IDENTITY, [CertificateCode] nvarchar(max) NOT NULL, [OriginalAmount] decimal(18,2) NOT NULL, [RedeemedAmount] decimal(18,2) NOT NULL, [RecipientCustomerId] int NULL, [RecipientName] nvarchar(max) NULL, [RecipientEmail] nvarchar(max) NULL, [IssuedReason] int NOT NULL, [PurchasePrice] decimal(18,2) NULL, [PurchasingCustomerId] int NULL, [Status] int NOT NULL, [IssueDate] datetime2 NOT NULL, [ExpiryDate] datetime2 NULL, [Notes] nvarchar(max) NULL, [IssuedById] nvarchar(450) NULL, [CompanyId] int 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_GiftCertificates] PRIMARY KEY ([Id]), CONSTRAINT [FK_GiftCertificates_AspNetUsers_IssuedById] FOREIGN KEY ([IssuedById]) REFERENCES [AspNetUsers] ([Id]), CONSTRAINT [FK_GiftCertificates_Customers_PurchasingCustomerId] FOREIGN KEY ([PurchasingCustomerId]) REFERENCES [Customers] ([Id]), CONSTRAINT [FK_GiftCertificates_Customers_RecipientCustomerId] FOREIGN KEY ([RecipientCustomerId]) REFERENCES [Customers] ([Id]) ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN CREATE TABLE [GiftCertificateRedemptions] ( [Id] int NOT NULL IDENTITY, [GiftCertificateId] int NOT NULL, [InvoiceId] int NOT NULL, [AmountRedeemed] decimal(18,2) NOT NULL, [RedeemedDate] datetime2 NOT NULL, [RedeemedById] nvarchar(450) NULL, [CompanyId] int 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_GiftCertificateRedemptions] PRIMARY KEY ([Id]), CONSTRAINT [FK_GiftCertificateRedemptions_AspNetUsers_RedeemedById] FOREIGN KEY ([RedeemedById]) REFERENCES [AspNetUsers] ([Id]), CONSTRAINT [FK_GiftCertificateRedemptions_GiftCertificates_GiftCertificateId] FOREIGN KEY ([GiftCertificateId]) REFERENCES [GiftCertificates] ([Id]) ON DELETE CASCADE, CONSTRAINT [FK_GiftCertificateRedemptions_Invoices_InvoiceId] FOREIGN KEY ([InvoiceId]) REFERENCES [Invoices] ([Id]) ON DELETE CASCADE ); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-19T15:45:03.1454465Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-19T15:45:03.1454472Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-19T15:45:03.1454474Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN CREATE INDEX [IX_GiftCertificateRedemptions_GiftCertificateId] ON [GiftCertificateRedemptions] ([GiftCertificateId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN CREATE INDEX [IX_GiftCertificateRedemptions_InvoiceId] ON [GiftCertificateRedemptions] ([InvoiceId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN CREATE INDEX [IX_GiftCertificateRedemptions_RedeemedById] ON [GiftCertificateRedemptions] ([RedeemedById]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN CREATE INDEX [IX_GiftCertificates_IssuedById] ON [GiftCertificates] ([IssuedById]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN CREATE INDEX [IX_GiftCertificates_PurchasingCustomerId] ON [GiftCertificates] ([PurchasingCustomerId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN CREATE INDEX [IX_GiftCertificates_RecipientCustomerId] ON [GiftCertificates] ([RecipientCustomerId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260319154506_AddGiftCertificates' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260319154506_AddGiftCertificates', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320002450_AddRefundStoreCreditLink' ) BEGIN ALTER TABLE [Refunds] ADD [CreditMemoId] int NULL; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320002450_AddRefundStoreCreditLink' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T00:24:47.3611509Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320002450_AddRefundStoreCreditLink' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T00:24:47.3611518Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320002450_AddRefundStoreCreditLink' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T00:24:47.3611521Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320002450_AddRefundStoreCreditLink' ) BEGIN CREATE INDEX [IX_Refunds_CreditMemoId] ON [Refunds] ([CreditMemoId]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320002450_AddRefundStoreCreditLink' ) BEGIN ALTER TABLE [Refunds] ADD CONSTRAINT [FK_Refunds_CreditMemos_CreditMemoId] FOREIGN KEY ([CreditMemoId]) REFERENCES [CreditMemos] ([Id]); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320002450_AddRefundStoreCreditLink' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260320002450_AddRefundStoreCreditLink', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320005106_AddQuoteItemIsAiItem' ) BEGIN ALTER TABLE [QuoteItems] ADD [IsAiItem] bit NOT NULL DEFAULT CAST(0 AS bit); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320005106_AddQuoteItemIsAiItem' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T00:51:03.2423766Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320005106_AddQuoteItemIsAiItem' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T00:51:03.2423772Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320005106_AddQuoteItemIsAiItem' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T00:51:03.2423774Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320005106_AddQuoteItemIsAiItem' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260320005106_AddQuoteItemIsAiItem', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN ALTER TABLE [Quotes] ADD [ItemsSubtotal] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN ALTER TABLE [Quotes] ADD [OvenBatchCost] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN ALTER TABLE [Quotes] ADD [OverheadAmount] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN ALTER TABLE [Quotes] ADD [OverheadPercent] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN ALTER TABLE [Quotes] ADD [ProfitMargin] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN ALTER TABLE [Quotes] ADD [ProfitPercent] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN ALTER TABLE [Quotes] ADD [ShopSuppliesAmount] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN ALTER TABLE [Quotes] ADD [ShopSuppliesPercent] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T01:10:54.1468159Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T01:10:54.1468166Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T01:10:54.1468176Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320011057_AddQuotePricingSnapshot' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260320011057_AddQuotePricingSnapshot', N'8.0.11'); END; GO COMMIT; GO BEGIN TRANSACTION; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [SubscriptionPlanConfigs] ADD [AllowOnlinePayments] bit NOT NULL DEFAULT CAST(0 AS bit); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Quotes] ADD [DepositPercent] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Quotes] ADD [RequiresDeposit] bit NOT NULL DEFAULT CAST(0 AS bit); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Invoices] ADD [OnlineAmountPaid] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Invoices] ADD [OnlinePaymentStatus] int NOT NULL DEFAULT 0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Invoices] ADD [OnlineSurchargeCollected] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Invoices] ADD [PaymentLinkExpiresAt] datetime2 NULL; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Invoices] ADD [PaymentLinkToken] nvarchar(max) NULL; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Invoices] ADD [StripePaymentIntentId] nvarchar(max) NULL; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Companies] ADD [OnlinePaymentSurchargeType] int NOT NULL DEFAULT 0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Companies] ADD [OnlinePaymentSurchargeValue] decimal(18,2) NOT NULL DEFAULT 0.0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Companies] ADD [OnlineSurchargeAcknowledged] bit NOT NULL DEFAULT CAST(0 AS bit); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Companies] ADD [StripeAccountId] nvarchar(max) NULL; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN ALTER TABLE [Companies] ADD [StripeConnectStatus] int NOT NULL DEFAULT 0; END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T23:15:05.6886302Z'' WHERE [Id] = 1; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T23:15:05.6886308Z'' WHERE [Id] = 2; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-20T23:15:05.6886310Z'' WHERE [Id] = 3; SELECT @@ROWCOUNT'); END; GO IF NOT EXISTS ( SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20260320231509_AddStripeConnectAndOnlinePayments' ) BEGIN INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion]) VALUES (N'20260320231509_AddStripeConnectAndOnlinePayments', N'8.0.11'); END; GO COMMIT; GO