3852 lines
102 KiB
Transact-SQL
3852 lines
102 KiB
Transact-SQL
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
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260326230438_AddQuotePhotoSubscriptionLimits'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [SubscriptionPlanConfigs] ADD [MaxQuotePhotos] int NOT NULL DEFAULT 0;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260326230438_AddQuotePhotoSubscriptionLimits'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Companies] ADD [MaxQuotePhotosOverride] int NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260326230438_AddQuotePhotoSubscriptionLimits'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-26T23:04:35.1353265Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260326230438_AddQuotePhotoSubscriptionLimits'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-26T23:04:35.1353273Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260326230438_AddQuotePhotoSubscriptionLimits'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-26T23:04:35.1353275Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260326230438_AddQuotePhotoSubscriptionLimits'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260326230438_AddQuotePhotoSubscriptionLimits', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260328133627_AddJobPhotoIsAiAnalysisPhoto'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-28T13:36:24.1548411Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260328133627_AddJobPhotoIsAiAnalysisPhoto'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-28T13:36:24.1548419Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260328133627_AddJobPhotoIsAiAnalysisPhoto'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-28T13:36:24.1548421Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260328133627_AddJobPhotoIsAiAnalysisPhoto'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260328133627_AddJobPhotoIsAiAnalysisPhoto', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329003300_AddJobDiscountRushFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Jobs] ADD [DiscountReason] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329003300_AddJobDiscountRushFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Jobs] ADD [DiscountType] int NOT NULL DEFAULT 0;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329003300_AddJobDiscountRushFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Jobs] ADD [DiscountValue] decimal(18,2) NOT NULL DEFAULT 0.0;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329003300_AddJobDiscountRushFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Jobs] ADD [IsRushJob] bit NOT NULL DEFAULT CAST(0 AS bit);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329003300_AddJobDiscountRushFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [JobPhotos] ADD [IsAiAnalysisPhoto] bit NOT NULL DEFAULT CAST(0 AS bit);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329003300_AddJobDiscountRushFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T00:32:56.7368710Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329003300_AddJobDiscountRushFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T00:32:56.7368717Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329003300_AddJobDiscountRushFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T00:32:56.7368718Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329003300_AddJobDiscountRushFields'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260329003300_AddJobDiscountRushFields', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
CREATE TABLE [Deposits] (
|
|
[Id] int NOT NULL IDENTITY,
|
|
[ReceiptNumber] nvarchar(max) NOT NULL,
|
|
[CustomerId] int NOT NULL,
|
|
[JobId] int NULL,
|
|
[QuoteId] int NULL,
|
|
[Amount] decimal(18,2) NOT NULL,
|
|
[PaymentMethod] int NOT NULL,
|
|
[ReceivedDate] datetime2 NOT NULL,
|
|
[Reference] nvarchar(max) NULL,
|
|
[Notes] nvarchar(max) NULL,
|
|
[RecordedById] nvarchar(450) NULL,
|
|
[AppliedToInvoiceId] int NULL,
|
|
[AppliedDate] datetime2 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_Deposits] PRIMARY KEY ([Id]),
|
|
CONSTRAINT [FK_Deposits_AspNetUsers_RecordedById] FOREIGN KEY ([RecordedById]) REFERENCES [AspNetUsers] ([Id]),
|
|
CONSTRAINT [FK_Deposits_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]) ON DELETE CASCADE,
|
|
CONSTRAINT [FK_Deposits_Invoices_AppliedToInvoiceId] FOREIGN KEY ([AppliedToInvoiceId]) REFERENCES [Invoices] ([Id]) ON DELETE SET NULL,
|
|
CONSTRAINT [FK_Deposits_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]),
|
|
CONSTRAINT [FK_Deposits_Quotes_QuoteId] FOREIGN KEY ([QuoteId]) REFERENCES [Quotes] ([Id])
|
|
);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T00:58:35.7576949Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T00:58:35.7576955Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T00:58:35.7576957Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Deposits_AppliedToInvoiceId] ON [Deposits] ([AppliedToInvoiceId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Deposits_CustomerId] ON [Deposits] ([CustomerId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Deposits_JobId] ON [Deposits] ([JobId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Deposits_QuoteId] ON [Deposits] ([QuoteId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Deposits_RecordedById] ON [Deposits] ([RecordedById]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329005838_AddDeposits'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260329005838_AddDeposits', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
DROP INDEX [IX_Invoices_CompanyId_JobId] ON [Invoices];
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
DROP INDEX [IX_Invoices_JobId] ON [Invoices];
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
DECLARE @var2 sysname;
|
|
SELECT @var2 = [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'[Invoices]') AND [c].[name] = N'JobId');
|
|
IF @var2 IS NOT NULL EXEC(N'ALTER TABLE [Invoices] DROP CONSTRAINT [' + @var2 + '];');
|
|
ALTER TABLE [Invoices] ALTER COLUMN [JobId] int NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [InvoiceItems] ADD [CatalogItemId] int NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [CatalogItems] ADD [InventoryItemId] int NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [CatalogItems] ADD [IsMerchandise] bit NOT NULL DEFAULT CAST(0 AS bit);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [CatalogCategories] ADD [IsMerchandise] bit NOT NULL DEFAULT CAST(0 AS bit);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T13:47:49.4176542Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T13:47:49.4176549Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T13:47:49.4176551Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
EXEC(N'CREATE UNIQUE INDEX [IX_Invoices_CompanyId_JobId] ON [Invoices] ([CompanyId], [JobId]) WHERE [JobId] IS NOT NULL');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
EXEC(N'CREATE UNIQUE INDEX [IX_Invoices_JobId] ON [Invoices] ([JobId]) WHERE [JobId] IS NOT NULL');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_InvoiceItems_CatalogItemId] ON [InvoiceItems] ([CatalogItemId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_CatalogItems_InventoryItemId] ON [CatalogItems] ([InventoryItemId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [CatalogItems] ADD CONSTRAINT [FK_CatalogItems_InventoryItems_InventoryItemId] FOREIGN KEY ([InventoryItemId]) REFERENCES [InventoryItems] ([Id]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [InvoiceItems] ADD CONSTRAINT [FK_InvoiceItems_CatalogItems_CatalogItemId] FOREIGN KEY ([CatalogItemId]) REFERENCES [CatalogItems] ([Id]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329134753_AddMerchandise'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260329134753_AddMerchandise', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [InvoiceItems] ADD [GcExpiryDate] datetime2 NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [InvoiceItems] ADD [GcRecipientEmail] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [InvoiceItems] ADD [GcRecipientName] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [InvoiceItems] ADD [GeneratedGiftCertificateId] int NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [InvoiceItems] ADD [IsGiftCertificate] bit NOT NULL DEFAULT CAST(0 AS bit);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [GiftCertificates] ADD [SourceInvoiceItemId] int NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T14:11:34.2305437Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T14:11:34.2305443Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-29T14:11:34.2305445Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_InvoiceItems_GeneratedGiftCertificateId] ON [InvoiceItems] ([GeneratedGiftCertificateId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [InvoiceItems] ADD CONSTRAINT [FK_InvoiceItems_GiftCertificates_GeneratedGiftCertificateId] FOREIGN KEY ([GeneratedGiftCertificateId]) REFERENCES [GiftCertificates] ([Id]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260329141137_AddGiftCertificateInvoiceItems'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260329141137_AddGiftCertificateInvoiceItems', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260330234034_AddSalesItemFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [QuoteItems] ADD [IsSalesItem] bit NOT NULL DEFAULT CAST(0 AS bit);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260330234034_AddSalesItemFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [QuoteItems] ADD [Sku] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260330234034_AddSalesItemFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [JobItems] ADD [IsSalesItem] bit NOT NULL DEFAULT CAST(0 AS bit);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260330234034_AddSalesItemFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [JobItems] ADD [Sku] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260330234034_AddSalesItemFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-30T23:40:30.1483162Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260330234034_AddSalesItemFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-30T23:40:30.1483168Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260330234034_AddSalesItemFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-30T23:40:30.1483170Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260330234034_AddSalesItemFields'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260330234034_AddSalesItemFields', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401125630_AddQuoteDepositPaymentFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Quotes] ADD [DepositAmountPaid] decimal(18,2) NOT NULL DEFAULT 0.0;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401125630_AddQuoteDepositPaymentFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Quotes] ADD [DepositPaymentIntentId] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401125630_AddQuoteDepositPaymentFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Quotes] ADD [DepositPaymentLinkExpiresAt] datetime2 NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401125630_AddQuoteDepositPaymentFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Quotes] ADD [DepositPaymentLinkToken] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401125630_AddQuoteDepositPaymentFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-01T12:56:27.1808248Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401125630_AddQuoteDepositPaymentFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-01T12:56:27.1808254Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401125630_AddQuoteDepositPaymentFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-01T12:56:27.1808255Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401125630_AddQuoteDepositPaymentFields'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260401125630_AddQuoteDepositPaymentFields', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401131724_AddUniqueDocumentNumberConstraints'
|
|
)
|
|
BEGIN
|
|
DECLARE @var3 sysname;
|
|
SELECT @var3 = [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'[Bills]') AND [c].[name] = N'BalanceDue');
|
|
IF @var3 IS NOT NULL EXEC(N'ALTER TABLE [Bills] DROP CONSTRAINT [' + @var3 + '];');
|
|
ALTER TABLE [Bills] DROP COLUMN [BalanceDue];
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401131724_AddUniqueDocumentNumberConstraints'
|
|
)
|
|
BEGIN
|
|
DECLARE @var4 sysname;
|
|
SELECT @var4 = [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'[GiftCertificates]') AND [c].[name] = N'CertificateCode');
|
|
IF @var4 IS NOT NULL EXEC(N'ALTER TABLE [GiftCertificates] DROP CONSTRAINT [' + @var4 + '];');
|
|
ALTER TABLE [GiftCertificates] ALTER COLUMN [CertificateCode] nvarchar(450) NOT NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401131724_AddUniqueDocumentNumberConstraints'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-01T13:17:21.8121883Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401131724_AddUniqueDocumentNumberConstraints'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-01T13:17:21.8121891Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401131724_AddUniqueDocumentNumberConstraints'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-01T13:17:21.8121893Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401131724_AddUniqueDocumentNumberConstraints'
|
|
)
|
|
BEGIN
|
|
CREATE UNIQUE INDEX [IX_GiftCertificates_CertificateCode] ON [GiftCertificates] ([CertificateCode]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401131724_AddUniqueDocumentNumberConstraints'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260401131724_AddUniqueDocumentNumberConstraints', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401141653_FixGiftCertificateUniqueIndexPerCompany'
|
|
)
|
|
BEGIN
|
|
DROP INDEX [IX_GiftCertificates_CertificateCode] ON [GiftCertificates];
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401141653_FixGiftCertificateUniqueIndexPerCompany'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-01T14:16:49.2887180Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401141653_FixGiftCertificateUniqueIndexPerCompany'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-01T14:16:49.2887185Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401141653_FixGiftCertificateUniqueIndexPerCompany'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-01T14:16:49.2887186Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401141653_FixGiftCertificateUniqueIndexPerCompany'
|
|
)
|
|
BEGIN
|
|
CREATE UNIQUE INDEX [IX_GiftCertificates_CompanyId_CertificateCode] ON [GiftCertificates] ([CompanyId], [CertificateCode]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260401141653_FixGiftCertificateUniqueIndexPerCompany'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260401141653_FixGiftCertificateUniqueIndexPerCompany', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402015422_AddInvoiceExternalReference'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Invoices] ADD [ExternalReference] nvarchar(450) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402015422_AddInvoiceExternalReference'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T01:54:18.8649199Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402015422_AddInvoiceExternalReference'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T01:54:18.8649205Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402015422_AddInvoiceExternalReference'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T01:54:18.8649206Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402015422_AddInvoiceExternalReference'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Invoices_CompanyId_ExternalReference] ON [Invoices] ([CompanyId], [ExternalReference]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402015422_AddInvoiceExternalReference'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260402015422_AddInvoiceExternalReference', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402032156_AddMigratingFromQuickBooks'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [CompanyPreferences] ADD [MigratingFromQuickBooks] bit NOT NULL DEFAULT CAST(0 AS bit);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402032156_AddMigratingFromQuickBooks'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T03:21:53.0005398Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402032156_AddMigratingFromQuickBooks'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T03:21:53.0005405Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402032156_AddMigratingFromQuickBooks'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T03:21:53.0005406Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402032156_AddMigratingFromQuickBooks'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260402032156_AddMigratingFromQuickBooks', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402165758_AddQbMigrationStateJson'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [CompanyPreferences] ADD [QbMigrationStateJson] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402165758_AddQbMigrationStateJson'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T16:57:55.0246999Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402165758_AddQbMigrationStateJson'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T16:57:55.0247004Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402165758_AddQbMigrationStateJson'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T16:57:55.0247006Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402165758_AddQbMigrationStateJson'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260402165758_AddQbMigrationStateJson', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402184721_FixInventorySkuUniqueIndex'
|
|
)
|
|
BEGIN
|
|
DROP INDEX [IX_InventoryItems_SKU] ON [InventoryItems];
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402184721_FixInventorySkuUniqueIndex'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T18:47:18.8788284Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402184721_FixInventorySkuUniqueIndex'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T18:47:18.8788291Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402184721_FixInventorySkuUniqueIndex'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T18:47:18.8788292Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402184721_FixInventorySkuUniqueIndex'
|
|
)
|
|
BEGIN
|
|
CREATE UNIQUE INDEX [IX_InventoryItems_CompanyId_SKU] ON [InventoryItems] ([CompanyId], [SKU]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402184721_FixInventorySkuUniqueIndex'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260402184721_FixInventorySkuUniqueIndex', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402185216_FixJobShopAccessCodeUniqueIndex'
|
|
)
|
|
BEGIN
|
|
DROP INDEX [IX_Jobs_ShopAccessCode] ON [Jobs];
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402185216_FixJobShopAccessCodeUniqueIndex'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T18:52:13.7857008Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402185216_FixJobShopAccessCodeUniqueIndex'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T18:52:13.7857015Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402185216_FixJobShopAccessCodeUniqueIndex'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T18:52:13.7857016Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402185216_FixJobShopAccessCodeUniqueIndex'
|
|
)
|
|
BEGIN
|
|
CREATE UNIQUE INDEX [IX_Jobs_CompanyId_ShopAccessCode] ON [Jobs] ([CompanyId], [ShopAccessCode]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402185216_FixJobShopAccessCodeUniqueIndex'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260402185216_FixJobShopAccessCodeUniqueIndex', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402224949_AddDashboardTips'
|
|
)
|
|
BEGIN
|
|
CREATE TABLE [DashboardTips] (
|
|
[Id] int NOT NULL IDENTITY,
|
|
[TipText] nvarchar(max) NOT NULL,
|
|
[IsActive] bit NOT NULL,
|
|
[CreatedAt] datetime2 NOT NULL,
|
|
CONSTRAINT [PK_DashboardTips] PRIMARY KEY ([Id])
|
|
);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402224949_AddDashboardTips'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T22:49:46.0354841Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402224949_AddDashboardTips'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T22:49:46.0354847Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402224949_AddDashboardTips'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-02T22:49:46.0354849Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260402224949_AddDashboardTips'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260402224949_AddDashboardTips', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260403000650_AddStripeWebhookEvents'
|
|
)
|
|
BEGIN
|
|
CREATE TABLE [StripeWebhookEvents] (
|
|
[Id] bigint NOT NULL IDENTITY,
|
|
[EventId] nvarchar(max) NOT NULL,
|
|
[EventType] nvarchar(max) NOT NULL,
|
|
[CompanyId] int NULL,
|
|
[RawJson] nvarchar(max) NOT NULL,
|
|
[Status] int NOT NULL,
|
|
[ErrorMessage] nvarchar(max) NULL,
|
|
[ReceivedAt] datetime2 NOT NULL,
|
|
[ProcessedAt] datetime2 NULL,
|
|
CONSTRAINT [PK_StripeWebhookEvents] PRIMARY KEY ([Id])
|
|
);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260403000650_AddStripeWebhookEvents'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-03T00:06:46.7783905Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260403000650_AddStripeWebhookEvents'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-03T00:06:46.7783912Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260403000650_AddStripeWebhookEvents'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-03T00:06:46.7783913Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260403000650_AddStripeWebhookEvents'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260403000650_AddStripeWebhookEvents', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404151636_AddAllowAccountingToPlan'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [SubscriptionPlanConfigs] ADD [AllowAccounting] bit NOT NULL DEFAULT CAST(0 AS bit);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404151636_AddAllowAccountingToPlan'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-04T15:16:32.2541952Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404151636_AddAllowAccountingToPlan'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-04T15:16:32.2541958Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404151636_AddAllowAccountingToPlan'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-04T15:16:32.2541968Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404151636_AddAllowAccountingToPlan'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260404151636_AddAllowAccountingToPlan', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404194126_AddBillReceiptFilePath'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Bills] ADD [ReceiptFilePath] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404194126_AddBillReceiptFilePath'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-04T19:41:22.8540290Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404194126_AddBillReceiptFilePath'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-04T19:41:22.8540296Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404194126_AddBillReceiptFilePath'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-04T19:41:22.8540297Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260404194126_AddBillReceiptFilePath'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260404194126_AddBillReceiptFilePath', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T00:33:47.2862744Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T00:33:47.2862750Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T00:33:47.2862752Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_InventoryTransactions_TransactionType_TransactionDate] ON [InventoryTransactions] ([TransactionType], [TransactionDate]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_InventoryItems_CompanyId_IsActive] ON [InventoryItems] ([CompanyId], [IsActive]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_InventoryItems_IsActive] ON [InventoryItems] ([IsActive]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Bills_CompanyId_Status] ON [Bills] ([CompanyId], [Status]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Bills_DueDate] ON [Bills] ([DueDate]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Bills_Status] ON [Bills] ([Status]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Appointments_ScheduledStartTime] ON [Appointments] ([ScheduledStartTime]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405003350_AddPerformanceIndexes'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260405003350_AddPerformanceIndexes', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405155653_AddPlatformSettings'
|
|
)
|
|
BEGIN
|
|
CREATE TABLE [PlatformSettings] (
|
|
[Id] int NOT NULL IDENTITY,
|
|
[Key] nvarchar(200) NOT NULL,
|
|
[Value] nvarchar(max) NULL,
|
|
[Label] nvarchar(max) NULL,
|
|
[Description] nvarchar(max) NULL,
|
|
[GroupName] nvarchar(max) NULL,
|
|
[UpdatedAt] datetime2 NULL,
|
|
[UpdatedBy] nvarchar(max) NULL,
|
|
CONSTRAINT [PK_PlatformSettings] PRIMARY KEY ([Id])
|
|
);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405155653_AddPlatformSettings'
|
|
)
|
|
BEGIN
|
|
CREATE UNIQUE INDEX [IX_PlatformSettings_Key] ON [PlatformSettings] ([Key]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405155653_AddPlatformSettings'
|
|
)
|
|
BEGIN
|
|
IF EXISTS (SELECT * FROM [sys].[identity_columns] WHERE [name] IN (N'Id', N'Key', N'Value', N'Label', N'Description', N'GroupName') AND [object_id] = OBJECT_ID(N'[PlatformSettings]'))
|
|
SET IDENTITY_INSERT [PlatformSettings] ON;
|
|
EXEC(N'INSERT INTO [PlatformSettings] ([Id], [Key], [Value], [Label], [Description], [GroupName])
|
|
VALUES (1, N''AdminNotificationEmail'', NULL, N''Admin Notification Email'', N''Email address that receives platform event notifications (new signups, bug reports, subscription events). Leave blank to disable.'', N''Notifications'')');
|
|
IF EXISTS (SELECT * FROM [sys].[identity_columns] WHERE [name] IN (N'Id', N'Key', N'Value', N'Label', N'Description', N'GroupName') AND [object_id] = OBJECT_ID(N'[PlatformSettings]'))
|
|
SET IDENTITY_INSERT [PlatformSettings] OFF;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405155653_AddPlatformSettings'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T15:56:49.8180443Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405155653_AddPlatformSettings'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T15:56:49.8180449Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405155653_AddPlatformSettings'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T15:56:49.8180450Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405155653_AddPlatformSettings'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260405155653_AddPlatformSettings', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405161241_AddPlatformSettingsV2'
|
|
)
|
|
BEGIN
|
|
DECLARE @var5 sysname;
|
|
SELECT @var5 = [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'[PlatformSettings]') AND [c].[name] = N'Key');
|
|
IF @var5 IS NOT NULL EXEC(N'ALTER TABLE [PlatformSettings] DROP CONSTRAINT [' + @var5 + '];');
|
|
ALTER TABLE [PlatformSettings] ALTER COLUMN [Key] nvarchar(200) NOT NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405161241_AddPlatformSettingsV2'
|
|
)
|
|
BEGIN
|
|
IF EXISTS (SELECT * FROM [sys].[identity_columns] WHERE [name] IN (N'Id', N'Key', N'Value', N'Label', N'Description', N'GroupName') AND [object_id] = OBJECT_ID(N'[PlatformSettings]'))
|
|
SET IDENTITY_INSERT [PlatformSettings] ON;
|
|
EXEC(N'INSERT INTO [PlatformSettings] ([Id], [Key], [Value], [Label], [Description], [GroupName])
|
|
VALUES (2, N''BaseUrl'', NULL, N''Base URL'', N''Public URL of this application (e.g. https://app.powdercoatinglogix.com). Used in email links. Falls back to the current request URL if blank.'', N''General''),
|
|
(3, N''TrialPeriodDays'', N''7'', N''Trial Period (days)'', N''Number of days a new company gets on the free trial before their subscription expires.'', N''Subscriptions''),
|
|
(4, N''QuoteApprovalTokenDays'', N''30'', N''Quote Approval Token Validity (days)'', N''How many days a customer quote-approval link remains valid before expiring.'', N''Quotes''),
|
|
(5, N''AuditLogRetentionDays'', N''365'', N''Audit Log Retention (days)'', N''Audit log entries older than this many days are automatically purged by the nightly job.'', N''Data Retention''),
|
|
(6, N''StripeWebhookRetentionDays'', N''90'', N''Stripe Webhook Retention (days)'', N''Processed Stripe webhook events older than this many days are automatically purged.'', N''Data Retention'')');
|
|
IF EXISTS (SELECT * FROM [sys].[identity_columns] WHERE [name] IN (N'Id', N'Key', N'Value', N'Label', N'Description', N'GroupName') AND [object_id] = OBJECT_ID(N'[PlatformSettings]'))
|
|
SET IDENTITY_INSERT [PlatformSettings] OFF;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405161241_AddPlatformSettingsV2'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T16:12:38.5900904Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405161241_AddPlatformSettingsV2'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T16:12:38.5900913Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405161241_AddPlatformSettingsV2'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T16:12:38.5900914Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405161241_AddPlatformSettingsV2'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260405161241_AddPlatformSettingsV2', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405162137_UpdateAdminEmailDescription'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PlatformSettings] SET [Description] = N''Email address(es) that receive platform event notifications (new signups, bug reports, subscription events). Separate multiple addresses with commas. Leave blank to disable.''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405162137_UpdateAdminEmailDescription'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T16:21:34.4700837Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405162137_UpdateAdminEmailDescription'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T16:21:34.4700844Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405162137_UpdateAdminEmailDescription'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-05T16:21:34.4700846Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260405162137_UpdateAdminEmailDescription'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260405162137_UpdateAdminEmailDescription', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260406191501_MakeBillLineItemAccountIdNullable'
|
|
)
|
|
BEGIN
|
|
DECLARE @var6 sysname;
|
|
SELECT @var6 = [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'[BillLineItems]') AND [c].[name] = N'AccountId');
|
|
IF @var6 IS NOT NULL EXEC(N'ALTER TABLE [BillLineItems] DROP CONSTRAINT [' + @var6 + '];');
|
|
ALTER TABLE [BillLineItems] ALTER COLUMN [AccountId] int NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260406191501_MakeBillLineItemAccountIdNullable'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-06T19:14:56.7157942Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260406191501_MakeBillLineItemAccountIdNullable'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-06T19:14:56.7157953Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260406191501_MakeBillLineItemAccountIdNullable'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-06T19:14:56.7157955Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260406191501_MakeBillLineItemAccountIdNullable'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260406191501_MakeBillLineItemAccountIdNullable', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Jobs] ADD [IntakeCheckedByUserId] nvarchar(450) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Jobs] ADD [IntakeConditionNotes] nvarchar(max) NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Jobs] ADD [IntakeDate] datetime2 NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Jobs] ADD [IntakePartCount] int NULL;
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-08T20:53:42.2947842Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-08T20:53:42.2947847Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-08T20:53:42.2947849Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_Jobs_IntakeCheckedByUserId] ON [Jobs] ([IntakeCheckedByUserId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
ALTER TABLE [Jobs] ADD CONSTRAINT [FK_Jobs_AspNetUsers_IntakeCheckedByUserId] FOREIGN KEY ([IntakeCheckedByUserId]) REFERENCES [AspNetUsers] ([Id]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260408205345_AddJobIntakeFields'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260408205345_AddJobIntakeFields', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260409013822_AddInAppNotifications'
|
|
)
|
|
BEGIN
|
|
CREATE TABLE [InAppNotifications] (
|
|
[Id] int NOT NULL IDENTITY,
|
|
[Title] nvarchar(max) NOT NULL,
|
|
[Message] nvarchar(max) NOT NULL,
|
|
[Link] nvarchar(max) NULL,
|
|
[NotificationType] nvarchar(max) NOT NULL,
|
|
[IsRead] bit NOT NULL,
|
|
[ReadAt] datetime2 NULL,
|
|
[QuoteId] int NULL,
|
|
[InvoiceId] int NULL,
|
|
[CustomerId] int 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_InAppNotifications] PRIMARY KEY ([Id]),
|
|
CONSTRAINT [FK_InAppNotifications_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]),
|
|
CONSTRAINT [FK_InAppNotifications_Invoices_InvoiceId] FOREIGN KEY ([InvoiceId]) REFERENCES [Invoices] ([Id]),
|
|
CONSTRAINT [FK_InAppNotifications_Quotes_QuoteId] FOREIGN KEY ([QuoteId]) REFERENCES [Quotes] ([Id])
|
|
);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260409013822_AddInAppNotifications'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-09T01:38:18.3630787Z''
|
|
WHERE [Id] = 1;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260409013822_AddInAppNotifications'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-09T01:38:18.3630794Z''
|
|
WHERE [Id] = 2;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260409013822_AddInAppNotifications'
|
|
)
|
|
BEGIN
|
|
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-04-09T01:38:18.3630795Z''
|
|
WHERE [Id] = 3;
|
|
SELECT @@ROWCOUNT');
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260409013822_AddInAppNotifications'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_InAppNotifications_CustomerId] ON [InAppNotifications] ([CustomerId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260409013822_AddInAppNotifications'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_InAppNotifications_InvoiceId] ON [InAppNotifications] ([InvoiceId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260409013822_AddInAppNotifications'
|
|
)
|
|
BEGIN
|
|
CREATE INDEX [IX_InAppNotifications_QuoteId] ON [InAppNotifications] ([QuoteId]);
|
|
END;
|
|
GO
|
|
|
|
IF NOT EXISTS (
|
|
SELECT * FROM [__EFMigrationsHistory]
|
|
WHERE [MigrationId] = N'20260409013822_AddInAppNotifications'
|
|
)
|
|
BEGIN
|
|
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
|
VALUES (N'20260409013822_AddInAppNotifications', N'8.0.11');
|
|
END;
|
|
GO
|
|
|
|
COMMIT;
|
|
GO
|
|
|