Files
PowderCoatingLogix/src/PowderCoating.Web/LatestMigrations_03082026.sql
T
2026-04-23 21:38:24 -04:00

10970 lines
311 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'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [AspNetRoles] (
[Id] nvarchar(450) NOT NULL,
[Name] nvarchar(256) NULL,
[NormalizedName] nvarchar(256) NULL,
[ConcurrencyStamp] nvarchar(max) NULL,
CONSTRAINT [PK_AspNetRoles] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [AspNetUsers] (
[Id] nvarchar(450) NOT NULL,
[FirstName] nvarchar(max) NOT NULL,
[LastName] nvarchar(max) NOT NULL,
[EmployeeNumber] nvarchar(max) NULL,
[DateOfBirth] datetime2 NULL,
[HireDate] datetime2 NOT NULL,
[TerminationDate] datetime2 NULL,
[Address] nvarchar(max) NULL,
[City] nvarchar(max) NULL,
[State] nvarchar(max) NULL,
[ZipCode] nvarchar(max) NULL,
[Department] nvarchar(max) NULL,
[Position] nvarchar(max) NULL,
[HourlyRate] decimal(18,2) NOT NULL,
[Theme] nvarchar(max) NULL,
[DateFormat] nvarchar(max) NULL,
[TimeZone] nvarchar(max) NULL,
[DashboardLayout] int NULL,
[IsActive] bit NOT NULL,
[CanViewShopFloor] bit NOT NULL,
[CanManageJobs] bit NOT NULL,
[CanManageInventory] bit NOT NULL,
[CanManageCustomers] bit NOT NULL,
[CanCreateQuotes] bit NOT NULL,
[CanApproveQuotes] bit NOT NULL,
[ProfilePicturePath] nvarchar(max) NULL,
[Notes] nvarchar(max) NULL,
[CreatedAt] datetime2 NOT NULL,
[UpdatedAt] datetime2 NULL,
[LastLoginDate] datetime2 NULL,
[UserName] nvarchar(256) NULL,
[NormalizedUserName] nvarchar(256) NULL,
[Email] nvarchar(256) NULL,
[NormalizedEmail] nvarchar(256) NULL,
[EmailConfirmed] bit NOT NULL,
[PasswordHash] nvarchar(max) NULL,
[SecurityStamp] nvarchar(max) NULL,
[ConcurrencyStamp] nvarchar(max) NULL,
[PhoneNumber] nvarchar(max) NULL,
[PhoneNumberConfirmed] bit NOT NULL,
[TwoFactorEnabled] bit NOT NULL,
[LockoutEnd] datetimeoffset NULL,
[LockoutEnabled] bit NOT NULL,
[AccessFailedCount] int NOT NULL,
CONSTRAINT [PK_AspNetUsers] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [Equipment] (
[Id] int NOT NULL IDENTITY,
[EquipmentName] nvarchar(max) NOT NULL,
[EquipmentNumber] nvarchar(max) NULL,
[EquipmentType] nvarchar(max) NOT NULL,
[Manufacturer] nvarchar(max) NULL,
[Model] nvarchar(max) NULL,
[SerialNumber] nvarchar(max) NULL,
[PurchaseDate] datetime2 NULL,
[PurchasePrice] decimal(18,2) NOT NULL,
[WarrantyExpiration] datetime2 NULL,
[Status] int NOT NULL,
[Location] nvarchar(max) NULL,
[RecommendedMaintenanceIntervalDays] int NOT NULL,
[LastMaintenanceDate] datetime2 NULL,
[NextScheduledMaintenance] datetime2 NULL,
[Notes] nvarchar(max) NULL,
[IsActive] bit 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_Equipment] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [PricingTiers] (
[Id] int NOT NULL IDENTITY,
[TierName] nvarchar(max) NOT NULL,
[Description] nvarchar(max) NULL,
[DiscountPercent] decimal(18,2) NOT NULL,
[IsActive] bit 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_PricingTiers] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [Suppliers] (
[Id] int NOT NULL IDENTITY,
[CompanyName] nvarchar(max) NOT NULL,
[ContactName] nvarchar(max) NULL,
[Email] nvarchar(max) NULL,
[Phone] nvarchar(max) NULL,
[Address] nvarchar(max) NULL,
[City] nvarchar(max) NULL,
[State] nvarchar(max) NULL,
[ZipCode] nvarchar(max) NULL,
[Country] nvarchar(max) NULL,
[Website] nvarchar(max) NULL,
[Notes] nvarchar(max) NULL,
[IsActive] bit 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_Suppliers] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [AspNetRoleClaims] (
[Id] int NOT NULL IDENTITY,
[RoleId] nvarchar(450) NOT NULL,
[ClaimType] nvarchar(max) NULL,
[ClaimValue] nvarchar(max) NULL,
CONSTRAINT [PK_AspNetRoleClaims] PRIMARY KEY ([Id]),
CONSTRAINT [FK_AspNetRoleClaims_AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [AspNetRoles] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [AspNetUserClaims] (
[Id] int NOT NULL IDENTITY,
[UserId] nvarchar(450) NOT NULL,
[ClaimType] nvarchar(max) NULL,
[ClaimValue] nvarchar(max) NULL,
CONSTRAINT [PK_AspNetUserClaims] PRIMARY KEY ([Id]),
CONSTRAINT [FK_AspNetUserClaims_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [AspNetUserLogins] (
[LoginProvider] nvarchar(450) NOT NULL,
[ProviderKey] nvarchar(450) NOT NULL,
[ProviderDisplayName] nvarchar(max) NULL,
[UserId] nvarchar(450) NOT NULL,
CONSTRAINT [PK_AspNetUserLogins] PRIMARY KEY ([LoginProvider], [ProviderKey]),
CONSTRAINT [FK_AspNetUserLogins_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [AspNetUserRoles] (
[UserId] nvarchar(450) NOT NULL,
[RoleId] nvarchar(450) NOT NULL,
CONSTRAINT [PK_AspNetUserRoles] PRIMARY KEY ([UserId], [RoleId]),
CONSTRAINT [FK_AspNetUserRoles_AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [AspNetRoles] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_AspNetUserRoles_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [AspNetUserTokens] (
[UserId] nvarchar(450) NOT NULL,
[LoginProvider] nvarchar(450) NOT NULL,
[Name] nvarchar(450) NOT NULL,
[Value] nvarchar(max) NULL,
CONSTRAINT [PK_AspNetUserTokens] PRIMARY KEY ([UserId], [LoginProvider], [Name]),
CONSTRAINT [FK_AspNetUserTokens_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [MaintenanceRecords] (
[Id] int NOT NULL IDENTITY,
[EquipmentId] int NOT NULL,
[MaintenanceType] nvarchar(max) NOT NULL,
[Status] int NOT NULL,
[Priority] int NOT NULL,
[ScheduledDate] datetime2 NOT NULL,
[CompletedDate] datetime2 NULL,
[PerformedById] nvarchar(450) NULL,
[Description] nvarchar(max) NOT NULL,
[WorkPerformed] nvarchar(max) NULL,
[PartsReplaced] nvarchar(max) NULL,
[LaborCost] decimal(18,2) NOT NULL,
[PartsCost] decimal(18,2) NOT NULL,
[TotalCost] decimal(18,2) NOT NULL,
[DowntimeHours] decimal(18,2) NOT NULL,
[Notes] nvarchar(max) NULL,
[TechnicianNotes] nvarchar(max) 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_MaintenanceRecords] PRIMARY KEY ([Id]),
CONSTRAINT [FK_MaintenanceRecords_AspNetUsers_PerformedById] FOREIGN KEY ([PerformedById]) REFERENCES [AspNetUsers] ([Id]) ON DELETE SET NULL,
CONSTRAINT [FK_MaintenanceRecords_Equipment_EquipmentId] FOREIGN KEY ([EquipmentId]) REFERENCES [Equipment] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [Customers] (
[Id] int NOT NULL IDENTITY,
[CompanyName] nvarchar(450) NOT NULL,
[ContactFirstName] nvarchar(max) NULL,
[ContactLastName] nvarchar(max) NULL,
[Email] nvarchar(450) NOT NULL,
[Phone] nvarchar(max) NULL,
[MobilePhone] nvarchar(max) NULL,
[Address] nvarchar(max) NULL,
[City] nvarchar(max) NULL,
[State] nvarchar(max) NULL,
[ZipCode] nvarchar(max) NULL,
[Country] nvarchar(max) NULL,
[IsCommercial] bit NOT NULL,
[TaxId] nvarchar(max) NULL,
[CreditLimit] decimal(18,2) NOT NULL,
[CurrentBalance] decimal(18,2) NOT NULL,
[PaymentTerms] nvarchar(max) NULL,
[PricingTierId] int NULL,
[GeneralNotes] nvarchar(max) NULL,
[IsActive] bit NOT NULL,
[LastContactDate] datetime2 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_Customers] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Customers_PricingTiers_PricingTierId] FOREIGN KEY ([PricingTierId]) REFERENCES [PricingTiers] ([Id]) ON DELETE SET NULL
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [InventoryItems] (
[Id] int NOT NULL IDENTITY,
[SKU] nvarchar(450) NOT NULL,
[Name] nvarchar(max) NOT NULL,
[Description] nvarchar(max) NULL,
[Category] nvarchar(max) NOT NULL,
[ColorName] nvarchar(max) NULL,
[ColorCode] nvarchar(max) NULL,
[Finish] nvarchar(max) NULL,
[Manufacturer] nvarchar(max) NULL,
[ManufacturerPartNumber] nvarchar(max) NULL,
[QuantityOnHand] decimal(18,2) NOT NULL,
[UnitOfMeasure] nvarchar(max) NOT NULL,
[ReorderPoint] decimal(18,2) NOT NULL,
[ReorderQuantity] decimal(18,2) NOT NULL,
[MinimumStock] decimal(18,2) NOT NULL,
[MaximumStock] decimal(18,2) NOT NULL,
[UnitCost] decimal(18,2) NOT NULL,
[AverageCost] decimal(18,2) NOT NULL,
[LastPurchasePrice] decimal(18,2) NOT NULL,
[LastPurchaseDate] datetime2 NULL,
[PrimarySupplierId] int NULL,
[SupplierPartNumber] nvarchar(max) NULL,
[Location] nvarchar(max) NULL,
[Notes] nvarchar(max) NULL,
[IsActive] bit NOT NULL,
[DiscontinuedDate] datetime2 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_InventoryItems] PRIMARY KEY ([Id]),
CONSTRAINT [FK_InventoryItems_Suppliers_PrimarySupplierId] FOREIGN KEY ([PrimarySupplierId]) REFERENCES [Suppliers] ([Id]) ON DELETE SET NULL
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [CustomerNotes] (
[Id] int NOT NULL IDENTITY,
[CustomerId] int NOT NULL,
[Note] nvarchar(max) NOT NULL,
[IsImportant] bit 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_CustomerNotes] PRIMARY KEY ([Id]),
CONSTRAINT [FK_CustomerNotes_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [Quotes] (
[Id] int NOT NULL IDENTITY,
[QuoteNumber] nvarchar(450) NOT NULL,
[CustomerId] int NOT NULL,
[PreparedById] nvarchar(450) NULL,
[Status] int NOT NULL,
[IsCommercial] bit NOT NULL,
[QuoteDate] datetime2 NOT NULL,
[ExpirationDate] datetime2 NULL,
[SentDate] datetime2 NULL,
[ApprovedDate] datetime2 NULL,
[SubTotal] decimal(18,2) NOT NULL,
[DiscountPercent] decimal(18,2) NOT NULL,
[DiscountAmount] decimal(18,2) NOT NULL,
[TaxPercent] decimal(18,2) NOT NULL,
[TaxAmount] decimal(18,2) NOT NULL,
[Total] decimal(18,2) NOT NULL,
[Description] nvarchar(max) NULL,
[Terms] nvarchar(max) NULL,
[Notes] nvarchar(max) NULL,
[CustomerPO] nvarchar(max) NULL,
[AISuggestedPrice] decimal(18,2) NULL,
[AIPriceRationale] nvarchar(max) NULL,
[UsedAISuggestion] bit NOT NULL,
[ConvertedToJobId] int NULL,
[ConvertedDate] datetime2 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_Quotes] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Quotes_AspNetUsers_PreparedById] FOREIGN KEY ([PreparedById]) REFERENCES [AspNetUsers] ([Id]) ON DELETE SET NULL,
CONSTRAINT [FK_Quotes_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [InventoryTransactions] (
[Id] int NOT NULL IDENTITY,
[InventoryItemId] int NOT NULL,
[TransactionType] int NOT NULL,
[Quantity] decimal(18,2) NOT NULL,
[UnitCost] decimal(18,2) NOT NULL,
[TotalCost] decimal(18,2) NOT NULL,
[TransactionDate] datetime2 NOT NULL,
[Reference] nvarchar(max) NULL,
[Notes] nvarchar(max) NULL,
[BalanceAfter] decimal(18,2) 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_InventoryTransactions] PRIMARY KEY ([Id]),
CONSTRAINT [FK_InventoryTransactions_InventoryItems_InventoryItemId] FOREIGN KEY ([InventoryItemId]) REFERENCES [InventoryItems] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [Jobs] (
[Id] int NOT NULL IDENTITY,
[JobNumber] nvarchar(450) NOT NULL,
[CustomerId] int NOT NULL,
[QuoteId] int NULL,
[AssignedEmployeeId] nvarchar(450) NULL,
[Description] nvarchar(max) NOT NULL,
[Status] int NOT NULL,
[Priority] int NOT NULL,
[ScheduledDate] datetime2 NULL,
[StartedDate] datetime2 NULL,
[CompletedDate] datetime2 NULL,
[DueDate] datetime2 NULL,
[EstimatedCost] decimal(18,2) NOT NULL,
[ActualCost] decimal(18,2) NOT NULL,
[QuotedPrice] decimal(18,2) NOT NULL,
[FinalPrice] decimal(18,2) NOT NULL,
[CustomerPO] nvarchar(max) NULL,
[SpecialInstructions] nvarchar(max) NULL,
[RequiresCustomerApproval] bit NOT NULL,
[IsCustomerApproved] bit NOT NULL,
[CustomerApprovedDate] datetime2 NULL,
[EstimatedHours] int NOT NULL,
[ActualHours] 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_Jobs] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Jobs_AspNetUsers_AssignedEmployeeId] FOREIGN KEY ([AssignedEmployeeId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE SET NULL,
CONSTRAINT [FK_Jobs_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_Jobs_Quotes_QuoteId] FOREIGN KEY ([QuoteId]) REFERENCES [Quotes] ([Id]) ON DELETE SET NULL
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [QuoteItems] (
[Id] int NOT NULL IDENTITY,
[QuoteId] int NOT NULL,
[Description] nvarchar(max) NOT NULL,
[Quantity] int NOT NULL,
[ColorName] nvarchar(max) NULL,
[ColorCode] nvarchar(max) NULL,
[Finish] nvarchar(max) NULL,
[Length] decimal(18,2) NULL,
[Width] decimal(18,2) NULL,
[Height] decimal(18,2) NULL,
[SurfaceArea] decimal(18,2) NULL,
[MeasurementUnit] nvarchar(max) NULL,
[UnitPrice] decimal(18,2) NOT NULL,
[TotalPrice] decimal(18,2) NOT NULL,
[RequiresSandblasting] bit NOT NULL,
[RequiresMasking] bit NOT NULL,
[EstimatedMinutes] int NOT NULL,
[Notes] nvarchar(max) 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_QuoteItems] PRIMARY KEY ([Id]),
CONSTRAINT [FK_QuoteItems_Quotes_QuoteId] FOREIGN KEY ([QuoteId]) REFERENCES [Quotes] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [JobItems] (
[Id] int NOT NULL IDENTITY,
[JobId] int NOT NULL,
[Description] nvarchar(max) NOT NULL,
[Quantity] int NOT NULL,
[PowderInventoryId] int NULL,
[ColorName] nvarchar(max) NULL,
[ColorCode] nvarchar(max) NULL,
[Finish] nvarchar(max) NULL,
[Length] decimal(18,2) NULL,
[Width] decimal(18,2) NULL,
[Height] decimal(18,2) NULL,
[Weight] decimal(18,2) NULL,
[SurfaceArea] decimal(18,2) NULL,
[MeasurementUnit] nvarchar(max) NULL,
[UnitPrice] decimal(18,2) NOT NULL,
[TotalPrice] decimal(18,2) NOT NULL,
[MaterialCost] decimal(18,2) NOT NULL,
[LaborCost] decimal(18,2) NOT NULL,
[RequiresSandblasting] bit NOT NULL,
[RequiresMasking] bit NOT NULL,
[EstimatedMinutes] int NOT NULL,
[ActualMinutes] int NOT NULL,
[Notes] nvarchar(max) 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_JobItems] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobItems_InventoryItems_PowderInventoryId] FOREIGN KEY ([PowderInventoryId]) REFERENCES [InventoryItems] ([Id]),
CONSTRAINT [FK_JobItems_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [JobNotes] (
[Id] int NOT NULL IDENTITY,
[JobId] int NOT NULL,
[Note] nvarchar(max) NOT NULL,
[IsImportant] bit NOT NULL,
[IsInternal] bit 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_JobNotes] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobNotes_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [JobPhotos] (
[Id] int NOT NULL IDENTITY,
[JobId] int NOT NULL,
[FileName] nvarchar(max) NOT NULL,
[FilePath] nvarchar(max) NOT NULL,
[Description] nvarchar(max) NULL,
[PhotoType] nvarchar(max) NOT NULL,
[PhotoDate] datetime2 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_JobPhotos] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobPhotos_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE TABLE [JobStatusHistory] (
[Id] int NOT NULL IDENTITY,
[JobId] int NOT NULL,
[FromStatus] int NOT NULL,
[ToStatus] int NOT NULL,
[ChangedDate] datetime2 NOT NULL,
[Notes] nvarchar(max) 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_JobStatusHistory] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobStatusHistory_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
IF EXISTS (SELECT * FROM [sys].[identity_columns] WHERE [name] IN (N'Id', N'CreatedAt', N'CreatedBy', N'DeletedAt', N'DeletedBy', N'Description', N'DiscountPercent', N'IsActive', N'IsDeleted', N'TierName', N'UpdatedAt', N'UpdatedBy') AND [object_id] = OBJECT_ID(N'[PricingTiers]'))
SET IDENTITY_INSERT [PricingTiers] ON;
EXEC(N'INSERT INTO [PricingTiers] ([Id], [CreatedAt], [CreatedBy], [DeletedAt], [DeletedBy], [Description], [DiscountPercent], [IsActive], [IsDeleted], [TierName], [UpdatedAt], [UpdatedBy])
VALUES (1, ''2026-02-05T16:37:50.1751418Z'', NULL, NULL, NULL, N''Standard pricing for regular customers'', 0.0, CAST(1 AS bit), CAST(0 AS bit), N''Standard'', NULL, NULL),
(2, ''2026-02-05T16:37:50.1751424Z'', NULL, NULL, NULL, N''5% discount for preferred customers'', 5.0, CAST(1 AS bit), CAST(0 AS bit), N''Preferred'', NULL, NULL),
(3, ''2026-02-05T16:37:50.1751426Z'', NULL, NULL, NULL, N''10% discount for premium customers'', 10.0, CAST(1 AS bit), CAST(0 AS bit), N''Premium'', NULL, NULL)');
IF EXISTS (SELECT * FROM [sys].[identity_columns] WHERE [name] IN (N'Id', N'CreatedAt', N'CreatedBy', N'DeletedAt', N'DeletedBy', N'Description', N'DiscountPercent', N'IsActive', N'IsDeleted', N'TierName', N'UpdatedAt', N'UpdatedBy') AND [object_id] = OBJECT_ID(N'[PricingTiers]'))
SET IDENTITY_INSERT [PricingTiers] OFF;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_AspNetRoleClaims_RoleId] ON [AspNetRoleClaims] ([RoleId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
EXEC(N'CREATE UNIQUE INDEX [RoleNameIndex] ON [AspNetRoles] ([NormalizedName]) WHERE [NormalizedName] IS NOT NULL');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_AspNetUserClaims_UserId] ON [AspNetUserClaims] ([UserId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_AspNetUserLogins_UserId] ON [AspNetUserLogins] ([UserId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_AspNetUserRoles_RoleId] ON [AspNetUserRoles] ([RoleId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [EmailIndex] ON [AspNetUsers] ([NormalizedEmail]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
EXEC(N'CREATE UNIQUE INDEX [UserNameIndex] ON [AspNetUsers] ([NormalizedUserName]) WHERE [NormalizedUserName] IS NOT NULL');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_CustomerNotes_CustomerId] ON [CustomerNotes] ([CustomerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Customers_CompanyName] ON [Customers] ([CompanyName]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_Customers_Email] ON [Customers] ([Email]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Customers_PricingTierId] ON [Customers] ([PricingTierId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_InventoryItems_PrimarySupplierId] ON [InventoryItems] ([PrimarySupplierId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_InventoryItems_SKU] ON [InventoryItems] ([SKU]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_InventoryTransactions_InventoryItemId] ON [InventoryTransactions] ([InventoryItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_JobItems_JobId] ON [JobItems] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_JobItems_PowderInventoryId] ON [JobItems] ([PowderInventoryId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_JobNotes_JobId] ON [JobNotes] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_JobPhotos_JobId] ON [JobPhotos] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Jobs_AssignedEmployeeId] ON [Jobs] ([AssignedEmployeeId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Jobs_CustomerId] ON [Jobs] ([CustomerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_Jobs_JobNumber] ON [Jobs] ([JobNumber]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
EXEC(N'CREATE UNIQUE INDEX [IX_Jobs_QuoteId] ON [Jobs] ([QuoteId]) WHERE [QuoteId] IS NOT NULL');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_JobStatusHistory_JobId] ON [JobStatusHistory] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_MaintenanceRecords_EquipmentId] ON [MaintenanceRecords] ([EquipmentId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_MaintenanceRecords_PerformedById] ON [MaintenanceRecords] ([PerformedById]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_QuoteItems_QuoteId] ON [QuoteItems] ([QuoteId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Quotes_CustomerId] ON [Quotes] ([CustomerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Quotes_PreparedById] ON [Quotes] ([PreparedById]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_Quotes_QuoteNumber] ON [Quotes] ([QuoteNumber]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260205163837_InitialCreate'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260205163837_InitialCreate', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
CREATE TABLE [Companies] (
[Id] int NOT NULL IDENTITY,
[CompanyName] nvarchar(max) NOT NULL,
[CompanyCode] nvarchar(450) NULL,
[PrimaryContactName] nvarchar(max) NOT NULL,
[PrimaryContactEmail] nvarchar(max) NOT NULL,
[Phone] nvarchar(max) NULL,
[Address] nvarchar(max) NULL,
[City] nvarchar(max) NULL,
[State] nvarchar(max) NULL,
[ZipCode] nvarchar(max) NULL,
[IsActive] bit NOT NULL,
[SubscriptionStartDate] datetime2 NOT NULL,
[SubscriptionEndDate] datetime2 NULL,
[SubscriptionPlan] nvarchar(max) NULL,
[TimeZone] nvarchar(max) NULL,
[LogoPath] nvarchar(max) NULL,
[Settings] 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_Companies] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
EXEC(N'CREATE UNIQUE INDEX [IX_Companies_CompanyCode] ON [Companies] ([CompanyCode]) WHERE [CompanyCode] IS NOT NULL');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
SET IDENTITY_INSERT Companies ON;
INSERT INTO Companies (Id, CompanyName, CompanyCode, PrimaryContactName, PrimaryContactEmail, Phone, Address, City, State, ZipCode, IsActive, SubscriptionStartDate, SubscriptionPlan, TimeZone, CompanyId, CreatedAt, IsDeleted)
VALUES (1, 'Demo Company', 'DEMO', 'Admin User', 'admin@demo.com', '(555) 123-4567', '123 Demo Street', 'Demo City', 'CA', '90210', 1, GETUTCDATE(), 'Enterprise', 'America/New_York', 1, GETUTCDATE(), 0);
SET IDENTITY_INSERT Companies OFF;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Suppliers] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Quotes] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [QuoteItems] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [PricingTiers] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [MaintenanceRecords] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [JobStatusHistory] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Jobs] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [JobPhotos] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [JobNotes] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [JobItems] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [InventoryTransactions] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [InventoryItems] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Equipment] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Customers] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [CustomerNotes] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CompanyId] int NOT NULL DEFAULT 1;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CompanyRole] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CompanyId] = 1, [CreatedAt] = ''2026-02-06T01:20:42.5015235Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CompanyId] = 1, [CreatedAt] = ''2026-02-06T01:20:42.5015242Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CompanyId] = 1, [CreatedAt] = ''2026-02-06T01:20:42.5015243Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
CREATE INDEX [IX_Suppliers_CompanyId] ON [Suppliers] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
CREATE INDEX [IX_Quotes_CompanyId] ON [Quotes] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
CREATE INDEX [IX_PricingTiers_CompanyId] ON [PricingTiers] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
CREATE INDEX [IX_Jobs_CompanyId] ON [Jobs] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
CREATE INDEX [IX_InventoryItems_CompanyId] ON [InventoryItems] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
CREATE INDEX [IX_Equipment_CompanyId] ON [Equipment] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
CREATE INDEX [IX_Customers_CompanyId] ON [Customers] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
CREATE INDEX [IX_AspNetUsers_CompanyId] ON [AspNetUsers] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD CONSTRAINT [FK_AspNetUsers_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Customers] ADD CONSTRAINT [FK_Customers_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Equipment] ADD CONSTRAINT [FK_Equipment_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [InventoryItems] ADD CONSTRAINT [FK_InventoryItems_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Jobs] ADD CONSTRAINT [FK_Jobs_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [PricingTiers] ADD CONSTRAINT [FK_PricingTiers_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Quotes] ADD CONSTRAINT [FK_Quotes_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
ALTER TABLE [Suppliers] ADD CONSTRAINT [FK_Suppliers_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206012125_AddMultiTenancy'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260206012125_AddMultiTenancy', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206150138_MakeCompanyNameOptional'
)
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'[Customers]') AND [c].[name] = N'CompanyName');
IF @var0 IS NOT NULL EXEC(N'ALTER TABLE [Customers] DROP CONSTRAINT [' + @var0 + '];');
ALTER TABLE [Customers] ALTER COLUMN [CompanyName] nvarchar(450) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206150138_MakeCompanyNameOptional'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-06T15:00:38.8151700Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206150138_MakeCompanyNameOptional'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-06T15:00:38.8151704Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206150138_MakeCompanyNameOptional'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-06T15:00:38.8151706Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206150138_MakeCompanyNameOptional'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260206150138_MakeCompanyNameOptional', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206174417_AddCompanyOperatingCosts'
)
BEGIN
CREATE TABLE [CompanyOperatingCosts] (
[Id] int NOT NULL IDENTITY,
[CompanyId] int NOT NULL,
[StandardLaborRate] decimal(18,2) NOT NULL,
[OvertimeLaborRate] decimal(18,2) NOT NULL,
[SpecializedLaborRate] decimal(18,2) NOT NULL,
[ElectricityRatePerKwh] decimal(18,2) NOT NULL,
[GasRatePerUnit] decimal(18,2) NOT NULL,
[WaterRatePerUnit] decimal(18,2) NOT NULL,
[OvenOperatingCostPerHour] decimal(18,2) NOT NULL,
[SandblasterCostPerHour] decimal(18,2) NOT NULL,
[CoatingBoothCostPerHour] decimal(18,2) NOT NULL,
[GeneralMarkupPercentage] decimal(18,2) NOT NULL,
[AdminOverheadPercentage] decimal(18,2) NOT NULL,
[FacilityCostPercentage] decimal(18,2) 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_CompanyOperatingCosts] PRIMARY KEY ([Id]),
CONSTRAINT [FK_CompanyOperatingCosts_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206174417_AddCompanyOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-06T17:43:30.0415021Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206174417_AddCompanyOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-06T17:43:30.0415026Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206174417_AddCompanyOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-06T17:43:30.0415028Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206174417_AddCompanyOperatingCosts'
)
BEGIN
CREATE UNIQUE INDEX [IX_CompanyOperatingCosts_CompanyId] ON [CompanyOperatingCosts] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206174417_AddCompanyOperatingCosts'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260206174417_AddCompanyOperatingCosts', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206213627_MakeCustomerEmailOptional'
)
BEGIN
DROP INDEX [IX_Customers_Email] ON [Customers];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206213627_MakeCustomerEmailOptional'
)
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'[Customers]') AND [c].[name] = N'Email');
IF @var1 IS NOT NULL EXEC(N'ALTER TABLE [Customers] DROP CONSTRAINT [' + @var1 + '];');
ALTER TABLE [Customers] ALTER COLUMN [Email] nvarchar(450) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206213627_MakeCustomerEmailOptional'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-06T21:35:23.2581715Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206213627_MakeCustomerEmailOptional'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-06T21:35:23.2581722Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206213627_MakeCustomerEmailOptional'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-06T21:35:23.2581724Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206213627_MakeCustomerEmailOptional'
)
BEGIN
EXEC(N'CREATE UNIQUE INDEX [IX_Customers_Email] ON [Customers] ([Email]) WHERE [Email] IS NOT NULL');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260206213627_MakeCustomerEmailOptional'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260206213627_MakeCustomerEmailOptional', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
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'[Quotes]') AND [c].[name] = N'CustomerId');
IF @var2 IS NOT NULL EXEC(N'ALTER TABLE [Quotes] DROP CONSTRAINT [' + @var2 + '];');
ALTER TABLE [Quotes] ALTER COLUMN [CustomerId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
ALTER TABLE [Quotes] ADD [ProspectAddress] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
ALTER TABLE [Quotes] ADD [ProspectCity] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
ALTER TABLE [Quotes] ADD [ProspectCompanyName] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
ALTER TABLE [Quotes] ADD [ProspectContactName] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
ALTER TABLE [Quotes] ADD [ProspectEmail] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
ALTER TABLE [Quotes] ADD [ProspectPhone] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
ALTER TABLE [Quotes] ADD [ProspectState] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
ALTER TABLE [Quotes] ADD [ProspectZipCode] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T03:42:43.2794915Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T03:42:43.2794919Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T03:42:43.2794921Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207034246_UpdateQuoteForProspects'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260207034246_UpdateQuoteForProspects', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207035534_AddPowderCoatingCostAndTaxToOperatingCosts'
)
BEGIN
ALTER TABLE [CompanyOperatingCosts] ADD [PowderCoatingCostPerSqFt] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207035534_AddPowderCoatingCostAndTaxToOperatingCosts'
)
BEGIN
ALTER TABLE [CompanyOperatingCosts] ADD [TaxPercent] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207035534_AddPowderCoatingCostAndTaxToOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T03:55:32.3427640Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207035534_AddPowderCoatingCostAndTaxToOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T03:55:32.3427647Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207035534_AddPowderCoatingCostAndTaxToOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T03:55:32.3427649Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207035534_AddPowderCoatingCostAndTaxToOperatingCosts'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260207035534_AddPowderCoatingCostAndTaxToOperatingCosts', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207043212_AddPowderCostFieldsToQuoteItems'
)
BEGIN
ALTER TABLE [QuoteItems] ADD [InventoryItemId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207043212_AddPowderCostFieldsToQuoteItems'
)
BEGIN
ALTER TABLE [QuoteItems] ADD [PowderCostOverride] decimal(18,2) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207043212_AddPowderCostFieldsToQuoteItems'
)
BEGIN
ALTER TABLE [QuoteItems] ADD [SurfaceAreaSqFt] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207043212_AddPowderCostFieldsToQuoteItems'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T04:32:10.0998342Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207043212_AddPowderCostFieldsToQuoteItems'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T04:32:10.0998349Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207043212_AddPowderCostFieldsToQuoteItems'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T04:32:10.0998351Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207043212_AddPowderCostFieldsToQuoteItems'
)
BEGIN
CREATE INDEX [IX_QuoteItems_InventoryItemId] ON [QuoteItems] ([InventoryItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207043212_AddPowderCostFieldsToQuoteItems'
)
BEGIN
ALTER TABLE [QuoteItems] ADD CONSTRAINT [FK_QuoteItems_InventoryItems_InventoryItemId] FOREIGN KEY ([InventoryItemId]) REFERENCES [InventoryItems] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207043212_AddPowderCostFieldsToQuoteItems'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260207043212_AddPowderCostFieldsToQuoteItems', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207152856_AddCoverageSqFtPerLbToInventoryItem'
)
BEGIN
ALTER TABLE [InventoryItems] ADD [CoverageSqFtPerLb] decimal(18,2) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207152856_AddCoverageSqFtPerLbToInventoryItem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T15:28:54.4593675Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207152856_AddCoverageSqFtPerLbToInventoryItem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T15:28:54.4593680Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207152856_AddCoverageSqFtPerLbToInventoryItem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T15:28:54.4593682Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207152856_AddCoverageSqFtPerLbToInventoryItem'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260207152856_AddCoverageSqFtPerLbToInventoryItem', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207153545_AddTransferEfficiencyToInventoryItem'
)
BEGIN
ALTER TABLE [InventoryItems] ADD [TransferEfficiency] decimal(18,2) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207153545_AddTransferEfficiencyToInventoryItem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T15:35:42.9455847Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207153545_AddTransferEfficiencyToInventoryItem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T15:35:42.9455851Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207153545_AddTransferEfficiencyToInventoryItem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T15:35:42.9455853Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207153545_AddTransferEfficiencyToInventoryItem'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260207153545_AddTransferEfficiencyToInventoryItem', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
ALTER TABLE [MaintenanceRecords] ADD [AssignedWorkerId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
ALTER TABLE [Jobs] ADD [AssignedWorkerId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
CREATE TABLE [ShopWorkers] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(max) NOT NULL,
[Role] int NOT NULL,
[Phone] nvarchar(max) NULL,
[Email] nvarchar(max) NULL,
[IsActive] bit NOT 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_ShopWorkers] PRIMARY KEY ([Id]),
CONSTRAINT [FK_ShopWorkers_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T20:06:23.0605718Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T20:06:23.0605725Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-07T20:06:23.0605728Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
CREATE INDEX [IX_MaintenanceRecords_AssignedWorkerId] ON [MaintenanceRecords] ([AssignedWorkerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
CREATE INDEX [IX_Jobs_AssignedWorkerId] ON [Jobs] ([AssignedWorkerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
CREATE INDEX [IX_ShopWorkers_CompanyId] ON [ShopWorkers] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
ALTER TABLE [Jobs] ADD CONSTRAINT [FK_Jobs_ShopWorkers_AssignedWorkerId] FOREIGN KEY ([AssignedWorkerId]) REFERENCES [ShopWorkers] ([Id]) ON DELETE SET NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
ALTER TABLE [MaintenanceRecords] ADD CONSTRAINT [FK_MaintenanceRecords_ShopWorkers_AssignedWorkerId] FOREIGN KEY ([AssignedWorkerId]) REFERENCES [ShopWorkers] ([Id]) ON DELETE SET NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260207200633_AddShopWorkers'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260207200633_AddShopWorkers', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208160017_StoreLogoInDatabase'
)
BEGIN
EXEC sp_rename N'[Companies].[LogoPath]', N'LogoContentType', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208160017_StoreLogoInDatabase'
)
BEGIN
ALTER TABLE [Companies] ADD [LogoData] varbinary(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208160017_StoreLogoInDatabase'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T16:00:14.7529664Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208160017_StoreLogoInDatabase'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T16:00:14.7529711Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208160017_StoreLogoInDatabase'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T16:00:14.7529713Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208160017_StoreLogoInDatabase'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260208160017_StoreLogoInDatabase', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208164341_AddProfilePictureAndSidebarColor'
)
BEGIN
EXEC sp_rename N'[AspNetUsers].[ProfilePicturePath]', N'SidebarColor', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208164341_AddProfilePictureAndSidebarColor'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [ProfilePictureContentType] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208164341_AddProfilePictureAndSidebarColor'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [ProfilePictureData] varbinary(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208164341_AddProfilePictureAndSidebarColor'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T16:43:39.0977992Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208164341_AddProfilePictureAndSidebarColor'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T16:43:39.0978000Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208164341_AddProfilePictureAndSidebarColor'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T16:43:39.0978002Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208164341_AddProfilePictureAndSidebarColor'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260208164341_AddProfilePictureAndSidebarColor', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208181438_AddCompanyPreferences'
)
BEGIN
CREATE TABLE [CompanyPreferences] (
[Id] int NOT NULL IDENTITY,
[CompanyId] int NOT NULL,
[DefaultCurrency] nvarchar(max) NOT NULL,
[DefaultDateFormat] nvarchar(max) NOT NULL,
[DefaultTimeFormat] nvarchar(max) NOT NULL,
[DefaultPaymentTerms] nvarchar(max) NOT NULL,
[DefaultQuoteValidityDays] int NOT NULL,
[QuoteNumberPrefix] nvarchar(max) NOT NULL,
[JobNumberPrefix] nvarchar(max) NOT NULL,
[DefaultJobPriority] nvarchar(max) NOT NULL,
[RequireCustomerPO] bit NOT NULL,
[AllowCustomerApproval] bit NOT NULL,
[DefaultTurnaroundDays] int NOT NULL,
[EnableSandblastingStep] bit NOT NULL,
[EnableMaskingStep] bit NOT NULL,
[EmailNotificationsEnabled] bit NOT NULL,
[NotifyOnNewJob] bit NOT NULL,
[NotifyOnJobStatusChange] bit NOT NULL,
[NotifyOnQuoteApproval] bit NOT NULL,
[NotifyOnPaymentReceived] bit NOT NULL,
[QuoteExpiryWarningDays] int NOT NULL,
[DueDateWarningDays] int NOT NULL,
[MaintenanceAlertDays] int NOT NULL,
[QuoteRetentionYears] int NOT NULL,
[JobRetentionYears] int NOT NULL,
[LogRetentionDays] int NOT NULL,
[AutoArchiveJobsDays] int NOT NULL,
[DeletedRecordRetentionDays] 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_CompanyPreferences] PRIMARY KEY ([Id]),
CONSTRAINT [FK_CompanyPreferences_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208181438_AddCompanyPreferences'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T18:14:35.8493756Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208181438_AddCompanyPreferences'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T18:14:35.8493760Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208181438_AddCompanyPreferences'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T18:14:35.8493762Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208181438_AddCompanyPreferences'
)
BEGIN
CREATE UNIQUE INDEX [IX_CompanyPreferences_CompanyId] ON [CompanyPreferences] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208181438_AddCompanyPreferences'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260208181438_AddCompanyPreferences', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208224426_AddTaxExemptionToCustomer'
)
BEGIN
ALTER TABLE [Customers] ADD [IsTaxExempt] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208224426_AddTaxExemptionToCustomer'
)
BEGIN
ALTER TABLE [Customers] ADD [TaxExemptCertificateContentType] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208224426_AddTaxExemptionToCustomer'
)
BEGIN
ALTER TABLE [Customers] ADD [TaxExemptCertificateData] varbinary(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208224426_AddTaxExemptionToCustomer'
)
BEGIN
ALTER TABLE [Customers] ADD [TaxExemptCertificateFileName] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208224426_AddTaxExemptionToCustomer'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T22:44:23.0992986Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208224426_AddTaxExemptionToCustomer'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T22:44:23.0992993Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208224426_AddTaxExemptionToCustomer'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T22:44:23.0992995Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208224426_AddTaxExemptionToCustomer'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260208224426_AddTaxExemptionToCustomer', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208230323_AddRushChargePercentage'
)
BEGIN
ALTER TABLE [CompanyOperatingCosts] ADD [RushChargePercentage] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208230323_AddRushChargePercentage'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T23:03:20.9733994Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208230323_AddRushChargePercentage'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T23:03:20.9733999Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208230323_AddRushChargePercentage'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T23:03:20.9734001Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208230323_AddRushChargePercentage'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260208230323_AddRushChargePercentage', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208231408_AddShopMinimumCharge'
)
BEGIN
ALTER TABLE [CompanyOperatingCosts] ADD [ShopMinimumCharge] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208231408_AddShopMinimumCharge'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T23:14:05.6375506Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208231408_AddShopMinimumCharge'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T23:14:05.6375510Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208231408_AddShopMinimumCharge'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-08T23:14:05.6375512Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260208231408_AddShopMinimumCharge'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260208231408_AddShopMinimumCharge', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211002823_AddProfilePictureFilePath'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [ProfilePictureFilePath] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211002823_AddProfilePictureFilePath'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T00:28:19.8975461Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211002823_AddProfilePictureFilePath'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T00:28:19.8975466Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211002823_AddProfilePictureFilePath'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T00:28:19.8975469Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211002823_AddProfilePictureFilePath'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260211002823_AddProfilePictureFilePath', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
EXEC sp_rename N'[JobPhotos].[PhotoDate]', N'UploadedDate', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
EXEC sp_rename N'[JobPhotos].[Description]', N'Caption', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
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'[JobPhotos]') AND [c].[name] = N'PhotoType');
IF @var3 IS NOT NULL EXEC(N'ALTER TABLE [JobPhotos] DROP CONSTRAINT [' + @var3 + '];');
ALTER TABLE [JobPhotos] ALTER COLUMN [PhotoType] int NOT NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
ALTER TABLE [JobPhotos] ADD [ContentType] nvarchar(max) NOT NULL DEFAULT N'';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
ALTER TABLE [JobPhotos] ADD [DisplayOrder] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
ALTER TABLE [JobPhotos] ADD [FileSize] bigint NOT NULL DEFAULT CAST(0 AS bigint);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
ALTER TABLE [JobPhotos] ADD [UploadedById] nvarchar(450) NOT NULL DEFAULT N'';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T00:54:54.2629259Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T00:54:54.2629263Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T00:54:54.2629265Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
CREATE INDEX [IX_JobPhotos_UploadedById] ON [JobPhotos] ([UploadedById]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
ALTER TABLE [JobPhotos] ADD CONSTRAINT [FK_JobPhotos_AspNetUsers_UploadedById] FOREIGN KEY ([UploadedById]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211005456_UpdateJobPhotoEntity'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260211005456_UpdateJobPhotoEntity', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
ALTER TABLE [Equipment] ADD [ManualContentType] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
ALTER TABLE [Equipment] ADD [ManualFileName] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
ALTER TABLE [Equipment] ADD [ManualFilePath] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
ALTER TABLE [Equipment] ADD [ManualFileSize] bigint NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
ALTER TABLE [Equipment] ADD [ManualUploadedDate] datetime2 NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
ALTER TABLE [Companies] ADD [LogoFilePath] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T02:06:13.9839041Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T02:06:13.9839046Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T02:06:13.9839048Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211020617_AddFileSystemStorageForLogosAndManuals'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260211020617_AddFileSystemStorageForLogosAndManuals', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
CREATE TABLE [CatalogCategories] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(max) NOT NULL,
[Description] nvarchar(max) NULL,
[ParentCategoryId] int NULL,
[DisplayOrder] int NOT NULL,
[IsActive] bit 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_CatalogCategories] PRIMARY KEY ([Id]),
CONSTRAINT [FK_CatalogCategories_CatalogCategories_ParentCategoryId] FOREIGN KEY ([ParentCategoryId]) REFERENCES [CatalogCategories] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_CatalogCategories_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
CREATE TABLE [CatalogItems] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(max) NOT NULL,
[Description] nvarchar(max) NULL,
[SKU] nvarchar(max) NULL,
[CategoryId] int NOT NULL,
[DefaultPrice] decimal(18,2) NOT NULL,
[DefaultRequiresSandblasting] bit NOT NULL,
[DefaultRequiresMasking] bit NOT NULL,
[DefaultEstimatedMinutes] int NULL,
[DisplayOrder] int NOT NULL,
[IsActive] bit 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_CatalogItems] PRIMARY KEY ([Id]),
CONSTRAINT [FK_CatalogItems_CatalogCategories_CategoryId] FOREIGN KEY ([CategoryId]) REFERENCES [CatalogCategories] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_CatalogItems_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T02:47:52.8155540Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T02:47:52.8155546Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T02:47:52.8155548Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
CREATE INDEX [IX_CatalogCategories_CompanyId] ON [CatalogCategories] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
CREATE INDEX [IX_CatalogCategories_ParentCategoryId] ON [CatalogCategories] ([ParentCategoryId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
CREATE INDEX [IX_CatalogItems_CategoryId] ON [CatalogItems] ([CategoryId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
CREATE INDEX [IX_CatalogItems_CompanyId] ON [CatalogItems] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211024755_AddProductCatalog'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260211024755_AddProductCatalog', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211043819_AddCatalogItemIdToQuoteItems'
)
BEGIN
ALTER TABLE [QuoteItems] ADD [CatalogItemId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211043819_AddCatalogItemIdToQuoteItems'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T04:38:17.1662142Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211043819_AddCatalogItemIdToQuoteItems'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T04:38:17.1662149Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211043819_AddCatalogItemIdToQuoteItems'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T04:38:17.1662151Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211043819_AddCatalogItemIdToQuoteItems'
)
BEGIN
CREATE INDEX [IX_QuoteItems_CatalogItemId] ON [QuoteItems] ([CatalogItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211043819_AddCatalogItemIdToQuoteItems'
)
BEGIN
ALTER TABLE [QuoteItems] ADD CONSTRAINT [FK_QuoteItems_CatalogItems_CatalogItemId] FOREIGN KEY ([CatalogItemId]) REFERENCES [CatalogItems] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211043819_AddCatalogItemIdToQuoteItems'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260211043819_AddCatalogItemIdToQuoteItems', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
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'[CompanyOperatingCosts]') AND [c].[name] = N'AdminOverheadPercentage');
IF @var4 IS NOT NULL EXEC(N'ALTER TABLE [CompanyOperatingCosts] DROP CONSTRAINT [' + @var4 + '];');
ALTER TABLE [CompanyOperatingCosts] DROP COLUMN [AdminOverheadPercentage];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
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'[CompanyOperatingCosts]') AND [c].[name] = N'ElectricityRatePerKwh');
IF @var5 IS NOT NULL EXEC(N'ALTER TABLE [CompanyOperatingCosts] DROP CONSTRAINT [' + @var5 + '];');
ALTER TABLE [CompanyOperatingCosts] DROP COLUMN [ElectricityRatePerKwh];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
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'[CompanyOperatingCosts]') AND [c].[name] = N'FacilityCostPercentage');
IF @var6 IS NOT NULL EXEC(N'ALTER TABLE [CompanyOperatingCosts] DROP CONSTRAINT [' + @var6 + '];');
ALTER TABLE [CompanyOperatingCosts] DROP COLUMN [FacilityCostPercentage];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
BEGIN
DECLARE @var7 sysname;
SELECT @var7 = [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'[CompanyOperatingCosts]') AND [c].[name] = N'GasRatePerUnit');
IF @var7 IS NOT NULL EXEC(N'ALTER TABLE [CompanyOperatingCosts] DROP CONSTRAINT [' + @var7 + '];');
ALTER TABLE [CompanyOperatingCosts] DROP COLUMN [GasRatePerUnit];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
BEGIN
DECLARE @var8 sysname;
SELECT @var8 = [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'[CompanyOperatingCosts]') AND [c].[name] = N'OvertimeLaborRate');
IF @var8 IS NOT NULL EXEC(N'ALTER TABLE [CompanyOperatingCosts] DROP CONSTRAINT [' + @var8 + '];');
ALTER TABLE [CompanyOperatingCosts] DROP COLUMN [OvertimeLaborRate];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
BEGIN
DECLARE @var9 sysname;
SELECT @var9 = [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'[CompanyOperatingCosts]') AND [c].[name] = N'SpecializedLaborRate');
IF @var9 IS NOT NULL EXEC(N'ALTER TABLE [CompanyOperatingCosts] DROP CONSTRAINT [' + @var9 + '];');
ALTER TABLE [CompanyOperatingCosts] DROP COLUMN [SpecializedLaborRate];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
BEGIN
EXEC sp_rename N'[CompanyOperatingCosts].[WaterRatePerUnit]', N'RushChargeFixedAmount', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
BEGIN
ALTER TABLE [CompanyOperatingCosts] ADD [RushChargeType] nvarchar(20) NOT NULL DEFAULT N'Percentage';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T19:55:20.0897507Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T19:55:20.0897511Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-11T19:55:20.0897513Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260211195523_UpdateOperatingCostsRushCharge'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260211195523_UpdateOperatingCostsRushCharge', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
ALTER TABLE [Jobs] DROP CONSTRAINT [FK_Jobs_AspNetUsers_AssignedEmployeeId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DROP INDEX [IX_Jobs_AssignedEmployeeId] ON [Jobs];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var10 sysname;
SELECT @var10 = [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'[Quotes]') AND [c].[name] = N'AIPriceRationale');
IF @var10 IS NOT NULL EXEC(N'ALTER TABLE [Quotes] DROP CONSTRAINT [' + @var10 + '];');
ALTER TABLE [Quotes] DROP COLUMN [AIPriceRationale];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var11 sysname;
SELECT @var11 = [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'[Quotes]') AND [c].[name] = N'AISuggestedPrice');
IF @var11 IS NOT NULL EXEC(N'ALTER TABLE [Quotes] DROP CONSTRAINT [' + @var11 + '];');
ALTER TABLE [Quotes] DROP COLUMN [AISuggestedPrice];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var12 sysname;
SELECT @var12 = [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'[Quotes]') AND [c].[name] = N'UsedAISuggestion');
IF @var12 IS NOT NULL EXEC(N'ALTER TABLE [Quotes] DROP CONSTRAINT [' + @var12 + '];');
ALTER TABLE [Quotes] DROP COLUMN [UsedAISuggestion];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var13 sysname;
SELECT @var13 = [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'Height');
IF @var13 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var13 + '];');
ALTER TABLE [QuoteItems] DROP COLUMN [Height];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var14 sysname;
SELECT @var14 = [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'Length');
IF @var14 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var14 + '];');
ALTER TABLE [QuoteItems] DROP COLUMN [Length];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var15 sysname;
SELECT @var15 = [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'MeasurementUnit');
IF @var15 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var15 + '];');
ALTER TABLE [QuoteItems] DROP COLUMN [MeasurementUnit];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var16 sysname;
SELECT @var16 = [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'Width');
IF @var16 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var16 + '];');
ALTER TABLE [QuoteItems] DROP COLUMN [Width];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var17 sysname;
SELECT @var17 = [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'[Jobs]') AND [c].[name] = N'ActualCost');
IF @var17 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var17 + '];');
ALTER TABLE [Jobs] DROP COLUMN [ActualCost];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var18 sysname;
SELECT @var18 = [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'[Jobs]') AND [c].[name] = N'ActualHours');
IF @var18 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var18 + '];');
ALTER TABLE [Jobs] DROP COLUMN [ActualHours];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var19 sysname;
SELECT @var19 = [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'[Jobs]') AND [c].[name] = N'AssignedEmployeeId');
IF @var19 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var19 + '];');
ALTER TABLE [Jobs] DROP COLUMN [AssignedEmployeeId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var20 sysname;
SELECT @var20 = [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'[Jobs]') AND [c].[name] = N'CustomerApprovedDate');
IF @var20 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var20 + '];');
ALTER TABLE [Jobs] DROP COLUMN [CustomerApprovedDate];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var21 sysname;
SELECT @var21 = [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'[Jobs]') AND [c].[name] = N'EstimatedCost');
IF @var21 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var21 + '];');
ALTER TABLE [Jobs] DROP COLUMN [EstimatedCost];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var22 sysname;
SELECT @var22 = [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'[Jobs]') AND [c].[name] = N'EstimatedHours');
IF @var22 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var22 + '];');
ALTER TABLE [Jobs] DROP COLUMN [EstimatedHours];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var23 sysname;
SELECT @var23 = [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'ActualMinutes');
IF @var23 IS NOT NULL EXEC(N'ALTER TABLE [JobItems] DROP CONSTRAINT [' + @var23 + '];');
ALTER TABLE [JobItems] DROP COLUMN [ActualMinutes];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var24 sysname;
SELECT @var24 = [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'Height');
IF @var24 IS NOT NULL EXEC(N'ALTER TABLE [JobItems] DROP CONSTRAINT [' + @var24 + '];');
ALTER TABLE [JobItems] DROP COLUMN [Height];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var25 sysname;
SELECT @var25 = [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'Length');
IF @var25 IS NOT NULL EXEC(N'ALTER TABLE [JobItems] DROP CONSTRAINT [' + @var25 + '];');
ALTER TABLE [JobItems] DROP COLUMN [Length];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var26 sysname;
SELECT @var26 = [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'MaterialCost');
IF @var26 IS NOT NULL EXEC(N'ALTER TABLE [JobItems] DROP CONSTRAINT [' + @var26 + '];');
ALTER TABLE [JobItems] DROP COLUMN [MaterialCost];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var27 sysname;
SELECT @var27 = [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'MeasurementUnit');
IF @var27 IS NOT NULL EXEC(N'ALTER TABLE [JobItems] DROP CONSTRAINT [' + @var27 + '];');
ALTER TABLE [JobItems] DROP COLUMN [MeasurementUnit];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var28 sysname;
SELECT @var28 = [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'Weight');
IF @var28 IS NOT NULL EXEC(N'ALTER TABLE [JobItems] DROP CONSTRAINT [' + @var28 + '];');
ALTER TABLE [JobItems] DROP COLUMN [Weight];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
DECLARE @var29 sysname;
SELECT @var29 = [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'Width');
IF @var29 IS NOT NULL EXEC(N'ALTER TABLE [JobItems] DROP CONSTRAINT [' + @var29 + '];');
ALTER TABLE [JobItems] DROP COLUMN [Width];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-13T13:50:54.4827815Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-13T13:50:54.4827821Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-13T13:50:54.4827822Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213135057_RemoveUnusedFields'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260213135057_RemoveUnusedFields', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213162512_AddSupplierEnhancements'
)
BEGIN
ALTER TABLE [Suppliers] ADD [AccountNumber] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213162512_AddSupplierEnhancements'
)
BEGIN
ALTER TABLE [Suppliers] ADD [CreditLimit] decimal(18,2) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213162512_AddSupplierEnhancements'
)
BEGIN
ALTER TABLE [Suppliers] ADD [IsPreferred] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213162512_AddSupplierEnhancements'
)
BEGIN
ALTER TABLE [Suppliers] ADD [PaymentTerms] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213162512_AddSupplierEnhancements'
)
BEGIN
ALTER TABLE [Suppliers] ADD [TaxId] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213162512_AddSupplierEnhancements'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-13T16:25:10.0855660Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213162512_AddSupplierEnhancements'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-13T16:25:10.0855668Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213162512_AddSupplierEnhancements'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-13T16:25:10.0855669Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213162512_AddSupplierEnhancements'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260213162512_AddSupplierEnhancements', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [Jobs] ADD [OldStatus] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [Jobs] ADD [OldPriority] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [Quotes] ADD [OldStatus] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [JobStatusHistory] ADD [OldFromStatus] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [JobStatusHistory] ADD [OldToStatus] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
UPDATE Jobs SET OldStatus = Status, OldPriority = Priority
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
UPDATE Quotes SET OldStatus = Status
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
UPDATE JobStatusHistory SET OldFromStatus = FromStatus, OldToStatus = ToStatus
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE TABLE [JobStatusLookups] (
[Id] int NOT NULL IDENTITY,
[StatusCode] nvarchar(450) NOT NULL,
[DisplayName] nvarchar(max) NOT NULL,
[DisplayOrder] int NOT NULL,
[ColorClass] nvarchar(max) NOT NULL,
[IconClass] nvarchar(max) NULL,
[IsActive] bit NOT NULL,
[IsSystemDefined] bit NOT NULL,
[IsTerminalStatus] bit NOT NULL,
[IsWorkInProgressStatus] bit NOT NULL,
[Description] nvarchar(max) NULL,
[WorkflowCategory] 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_JobStatusLookups] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobStatusLookups_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE TABLE [JobPriorityLookups] (
[Id] int NOT NULL IDENTITY,
[PriorityCode] nvarchar(450) NOT NULL,
[DisplayName] nvarchar(max) NOT NULL,
[DisplayOrder] int NOT NULL,
[ColorClass] nvarchar(max) NOT NULL,
[IconClass] nvarchar(max) NULL,
[IsActive] bit NOT NULL,
[IsSystemDefined] bit NOT NULL,
[Description] 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_JobPriorityLookups] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobPriorityLookups_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE TABLE [QuoteStatusLookups] (
[Id] int NOT NULL IDENTITY,
[StatusCode] nvarchar(450) NOT NULL,
[DisplayName] nvarchar(max) NOT NULL,
[DisplayOrder] int NOT NULL,
[ColorClass] nvarchar(max) NOT NULL,
[IconClass] nvarchar(max) NULL,
[IsActive] bit NOT NULL,
[IsSystemDefined] bit NOT NULL,
[IsApprovedStatus] bit NOT NULL,
[IsConvertedStatus] bit NOT NULL,
[IsDraftStatus] bit NOT NULL,
[Description] 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_QuoteStatusLookups] PRIMARY KEY ([Id]),
CONSTRAINT [FK_QuoteStatusLookups_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
INSERT INTO JobStatusLookups (StatusCode, DisplayName, DisplayOrder, ColorClass, IconClass, IsActive, IsSystemDefined, IsTerminalStatus, IsWorkInProgressStatus, Description, WorkflowCategory, CompanyId, CreatedAt, IsDeleted)
SELECT
s.StatusCode, s.DisplayName, s.DisplayOrder, s.ColorClass, s.IconClass, s.IsActive, s.IsSystemDefined, s.IsTerminalStatus, s.IsWorkInProgressStatus, s.Description, s.WorkflowCategory, c.Id, GETUTCDATE(), 0
FROM Companies c
CROSS JOIN (VALUES
('PENDING', 'Pending', 1, 'secondary', 'bi-clock', 1, 1, 0, 0, 'Job is pending approval or scheduling', 'Pre-Production'),
('QUOTED', 'Quoted', 2, 'info', 'bi-file-earmark-text', 1, 0, 0, 0, 'Quote has been generated', 'Pre-Production'),
('APPROVED', 'Approved', 3, 'primary', 'bi-check-circle', 1, 0, 0, 0, 'Job has been approved', 'Pre-Production'),
('IN_PREPARATION', 'In Preparation', 4, 'warning', 'bi-tools', 1, 0, 0, 1, 'Job is being prepared', 'Production'),
('SANDBLASTING', 'Sandblasting', 5, 'warning', 'bi-hurricane', 1, 0, 0, 1, 'Surface preparation in progress', 'Production'),
('MASKING_TAPING', 'Masking/Taping', 6, 'warning', 'bi-scissors', 1, 0, 0, 1, 'Masking areas for coating', 'Production'),
('CLEANING', 'Cleaning', 7, 'warning', 'bi-droplet', 1, 0, 0, 1, 'Pre-coat cleaning', 'Production'),
('IN_OVEN', 'In Oven', 8, 'warning', 'bi-thermometer-half', 1, 0, 0, 1, 'Pre-heating in oven', 'Production'),
('COATING', 'Coating', 9, 'warning', 'bi-paint-bucket', 1, 0, 0, 1, 'Applying powder coating', 'Production'),
('CURING', 'Curing', 10, 'warning', 'bi-thermometer-sun', 1, 0, 0, 1, 'Heat curing the coating', 'Production'),
('QUALITY_CHECK', 'Quality Check', 11, 'info', 'bi-search', 1, 0, 0, 1, 'Quality inspection', 'Production'),
('COMPLETED', 'Completed', 12, 'success', 'bi-check-all', 1, 1, 1, 0, 'Job is completed', 'Post-Production'),
('READY_FOR_PICKUP', 'Ready for Pickup', 13, 'success', 'bi-box-seam', 1, 0, 0, 0, 'Ready for customer pickup', 'Post-Production'),
('DELIVERED', 'Delivered', 14, 'success', 'bi-truck', 1, 0, 1, 0, 'Delivered to customer', 'Post-Production'),
('ON_HOLD', 'On Hold', 15, 'dark', 'bi-pause-circle', 1, 0, 0, 0, 'Job is temporarily on hold', 'Other'),
('CANCELLED', 'Cancelled', 16, 'danger', 'bi-x-circle', 1, 1, 1, 0, 'Job has been cancelled', 'Other')
) AS s(StatusCode, DisplayName, DisplayOrder, ColorClass, IconClass, IsActive, IsSystemDefined, IsTerminalStatus, IsWorkInProgressStatus, Description, WorkflowCategory)
WHERE c.IsDeleted = 0
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
INSERT INTO JobPriorityLookups (PriorityCode, DisplayName, DisplayOrder, ColorClass, IconClass, IsActive, IsSystemDefined, Description, CompanyId, CreatedAt, IsDeleted)
SELECT
p.PriorityCode, p.DisplayName, p.DisplayOrder, p.ColorClass, p.IconClass, p.IsActive, p.IsSystemDefined, p.Description, c.Id, GETUTCDATE(), 0
FROM Companies c
CROSS JOIN (VALUES
('LOW', 'Low', 1, 'secondary', 'bi-arrow-down', 1, 0, 'Low priority job'),
('NORMAL', 'Normal', 2, 'primary', NULL, 1, 1, 'Standard priority job'),
('HIGH', 'High', 3, 'info', 'bi-arrow-up', 1, 0, 'High priority job'),
('URGENT', 'Urgent', 4, 'warning', 'bi-exclamation-triangle', 1, 0, 'Urgent job - expedited processing'),
('RUSH', 'Rush', 5, 'danger', 'bi-lightning', 1, 0, 'Rush job - immediate processing required')
) AS p(PriorityCode, DisplayName, DisplayOrder, ColorClass, IconClass, IsActive, IsSystemDefined, Description)
WHERE c.IsDeleted = 0
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
INSERT INTO QuoteStatusLookups (StatusCode, DisplayName, DisplayOrder, ColorClass, IconClass, IsActive, IsSystemDefined, IsApprovedStatus, IsConvertedStatus, IsDraftStatus, Description, CompanyId, CreatedAt, IsDeleted)
SELECT
qs.StatusCode, qs.DisplayName, qs.DisplayOrder, qs.ColorClass, qs.IconClass, qs.IsActive, qs.IsSystemDefined, qs.IsApprovedStatus, qs.IsConvertedStatus, qs.IsDraftStatus, qs.Description, c.Id, GETUTCDATE(), 0
FROM Companies c
CROSS JOIN (VALUES
('DRAFT', 'Draft', 1, 'secondary', 'bi-pencil', 1, 1, 0, 0, 1, 'Quote is being drafted'),
('SENT', 'Sent', 2, 'info', 'bi-send', 1, 0, 0, 0, 0, 'Quote has been sent to customer'),
('APPROVED', 'Approved', 3, 'success', 'bi-check-circle', 1, 1, 1, 0, 0, 'Quote has been approved by customer'),
('REJECTED', 'Rejected', 4, 'danger', 'bi-x-circle', 1, 0, 0, 0, 0, 'Quote was rejected by customer'),
('EXPIRED', 'Expired', 5, 'dark', 'bi-clock-history', 1, 0, 0, 0, 0, 'Quote has expired'),
('CONVERTED', 'Converted', 6, 'primary', 'bi-arrow-right-circle', 1, 1, 0, 1, 0, 'Quote has been converted to job'),
('REVISED', 'Revised', 7, 'warning', 'bi-arrow-clockwise', 1, 0, 0, 0, 0, 'Quote is being revised')
) AS qs(StatusCode, DisplayName, DisplayOrder, ColorClass, IconClass, IsActive, IsSystemDefined, IsApprovedStatus, IsConvertedStatus, IsDraftStatus, Description)
WHERE c.IsDeleted = 0
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
EXEC sp_rename N'[Jobs].[Status]', N'JobStatusId_OLD', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
EXEC sp_rename N'[Jobs].[Priority]', N'JobPriorityId_OLD', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
EXEC sp_rename N'[Quotes].[Status]', N'QuoteStatusId_OLD', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
EXEC sp_rename N'[JobStatusHistory].[FromStatus]', N'FromStatusId_OLD', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
EXEC sp_rename N'[JobStatusHistory].[ToStatus]', N'ToStatusId_OLD', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [Jobs] ADD [JobStatusId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [Jobs] ADD [JobPriorityId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [Quotes] ADD [QuoteStatusId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [JobStatusHistory] ADD [FromStatusId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [JobStatusHistory] ADD [ToStatusId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
UPDATE j
SET j.JobStatusId = s.Id
FROM Jobs j
INNER JOIN JobStatusLookups s ON j.CompanyId = s.CompanyId
WHERE s.StatusCode = CASE j.OldStatus
WHEN 0 THEN 'PENDING'
WHEN 1 THEN 'QUOTED'
WHEN 2 THEN 'APPROVED'
WHEN 3 THEN 'IN_PREPARATION'
WHEN 4 THEN 'SANDBLASTING'
WHEN 5 THEN 'MASKING_TAPING'
WHEN 6 THEN 'CLEANING'
WHEN 7 THEN 'IN_OVEN'
WHEN 8 THEN 'COATING'
WHEN 9 THEN 'CURING'
WHEN 10 THEN 'QUALITY_CHECK'
WHEN 11 THEN 'COMPLETED'
WHEN 12 THEN 'READY_FOR_PICKUP'
WHEN 13 THEN 'DELIVERED'
WHEN 14 THEN 'ON_HOLD'
WHEN 15 THEN 'CANCELLED'
END
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
UPDATE j
SET j.JobPriorityId = p.Id
FROM Jobs j
INNER JOIN JobPriorityLookups p ON j.CompanyId = p.CompanyId
WHERE p.PriorityCode = CASE j.OldPriority
WHEN 0 THEN 'LOW'
WHEN 1 THEN 'NORMAL'
WHEN 2 THEN 'HIGH'
WHEN 3 THEN 'URGENT'
WHEN 4 THEN 'RUSH'
END
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
UPDATE q
SET q.QuoteStatusId = s.Id
FROM Quotes q
INNER JOIN QuoteStatusLookups s ON q.CompanyId = s.CompanyId
WHERE s.StatusCode = CASE q.OldStatus
WHEN 0 THEN 'DRAFT'
WHEN 1 THEN 'SENT'
WHEN 2 THEN 'APPROVED'
WHEN 3 THEN 'REJECTED'
WHEN 4 THEN 'EXPIRED'
WHEN 5 THEN 'CONVERTED'
WHEN 6 THEN 'REVISED'
END
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
UPDATE h
SET h.FromStatusId = s.Id
FROM JobStatusHistory h
INNER JOIN Jobs j ON h.JobId = j.Id
INNER JOIN JobStatusLookups s ON j.CompanyId = s.CompanyId
WHERE s.StatusCode = CASE h.OldFromStatus
WHEN 0 THEN 'PENDING'
WHEN 1 THEN 'QUOTED'
WHEN 2 THEN 'APPROVED'
WHEN 3 THEN 'IN_PREPARATION'
WHEN 4 THEN 'SANDBLASTING'
WHEN 5 THEN 'MASKING_TAPING'
WHEN 6 THEN 'CLEANING'
WHEN 7 THEN 'IN_OVEN'
WHEN 8 THEN 'COATING'
WHEN 9 THEN 'CURING'
WHEN 10 THEN 'QUALITY_CHECK'
WHEN 11 THEN 'COMPLETED'
WHEN 12 THEN 'READY_FOR_PICKUP'
WHEN 13 THEN 'DELIVERED'
WHEN 14 THEN 'ON_HOLD'
WHEN 15 THEN 'CANCELLED'
END
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
UPDATE h
SET h.ToStatusId = s.Id
FROM JobStatusHistory h
INNER JOIN Jobs j ON h.JobId = j.Id
INNER JOIN JobStatusLookups s ON j.CompanyId = s.CompanyId
WHERE s.StatusCode = CASE h.OldToStatus
WHEN 0 THEN 'PENDING'
WHEN 1 THEN 'QUOTED'
WHEN 2 THEN 'APPROVED'
WHEN 3 THEN 'IN_PREPARATION'
WHEN 4 THEN 'SANDBLASTING'
WHEN 5 THEN 'MASKING_TAPING'
WHEN 6 THEN 'CLEANING'
WHEN 7 THEN 'IN_OVEN'
WHEN 8 THEN 'COATING'
WHEN 9 THEN 'CURING'
WHEN 10 THEN 'QUALITY_CHECK'
WHEN 11 THEN 'COMPLETED'
WHEN 12 THEN 'READY_FOR_PICKUP'
WHEN 13 THEN 'DELIVERED'
WHEN 14 THEN 'ON_HOLD'
WHEN 15 THEN 'CANCELLED'
END
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var30 sysname;
SELECT @var30 = [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'[Jobs]') AND [c].[name] = N'JobStatusId');
IF @var30 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var30 + '];');
ALTER TABLE [Jobs] ALTER COLUMN [JobStatusId] int NOT NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var31 sysname;
SELECT @var31 = [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'[Jobs]') AND [c].[name] = N'JobPriorityId');
IF @var31 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var31 + '];');
ALTER TABLE [Jobs] ALTER COLUMN [JobPriorityId] int NOT NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var32 sysname;
SELECT @var32 = [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'[Quotes]') AND [c].[name] = N'QuoteStatusId');
IF @var32 IS NOT NULL EXEC(N'ALTER TABLE [Quotes] DROP CONSTRAINT [' + @var32 + '];');
ALTER TABLE [Quotes] ALTER COLUMN [QuoteStatusId] int NOT NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var33 sysname;
SELECT @var33 = [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'[JobStatusHistory]') AND [c].[name] = N'FromStatusId');
IF @var33 IS NOT NULL EXEC(N'ALTER TABLE [JobStatusHistory] DROP CONSTRAINT [' + @var33 + '];');
ALTER TABLE [JobStatusHistory] ALTER COLUMN [FromStatusId] int NOT NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var34 sysname;
SELECT @var34 = [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'[JobStatusHistory]') AND [c].[name] = N'ToStatusId');
IF @var34 IS NOT NULL EXEC(N'ALTER TABLE [JobStatusHistory] DROP CONSTRAINT [' + @var34 + '];');
ALTER TABLE [JobStatusHistory] ALTER COLUMN [ToStatusId] int NOT NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE INDEX [IX_Jobs_JobStatusId] ON [Jobs] ([JobStatusId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE INDEX [IX_Jobs_JobPriorityId] ON [Jobs] ([JobPriorityId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE INDEX [IX_Quotes_QuoteStatusId] ON [Quotes] ([QuoteStatusId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE INDEX [IX_JobStatusHistory_FromStatusId] ON [JobStatusHistory] ([FromStatusId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE INDEX [IX_JobStatusHistory_ToStatusId] ON [JobStatusHistory] ([ToStatusId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE INDEX [IX_JobStatusLookups_CompanyId] ON [JobStatusLookups] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE UNIQUE INDEX [IX_JobStatusLookups_CompanyId_StatusCode] ON [JobStatusLookups] ([CompanyId], [StatusCode]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE INDEX [IX_JobPriorityLookups_CompanyId] ON [JobPriorityLookups] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE UNIQUE INDEX [IX_JobPriorityLookups_CompanyId_PriorityCode] ON [JobPriorityLookups] ([CompanyId], [PriorityCode]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE INDEX [IX_QuoteStatusLookups_CompanyId] ON [QuoteStatusLookups] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
CREATE UNIQUE INDEX [IX_QuoteStatusLookups_CompanyId_StatusCode] ON [QuoteStatusLookups] ([CompanyId], [StatusCode]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [Jobs] ADD CONSTRAINT [FK_Jobs_JobStatusLookups_JobStatusId] FOREIGN KEY ([JobStatusId]) REFERENCES [JobStatusLookups] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [Jobs] ADD CONSTRAINT [FK_Jobs_JobPriorityLookups_JobPriorityId] FOREIGN KEY ([JobPriorityId]) REFERENCES [JobPriorityLookups] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [Quotes] ADD CONSTRAINT [FK_Quotes_QuoteStatusLookups_QuoteStatusId] FOREIGN KEY ([QuoteStatusId]) REFERENCES [QuoteStatusLookups] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [JobStatusHistory] ADD CONSTRAINT [FK_JobStatusHistory_JobStatusLookups_FromStatusId] FOREIGN KEY ([FromStatusId]) REFERENCES [JobStatusLookups] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
ALTER TABLE [JobStatusHistory] ADD CONSTRAINT [FK_JobStatusHistory_JobStatusLookups_ToStatusId] FOREIGN KEY ([ToStatusId]) REFERENCES [JobStatusLookups] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var35 sysname;
SELECT @var35 = [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'[Jobs]') AND [c].[name] = N'OldStatus');
IF @var35 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var35 + '];');
ALTER TABLE [Jobs] DROP COLUMN [OldStatus];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var36 sysname;
SELECT @var36 = [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'[Jobs]') AND [c].[name] = N'OldPriority');
IF @var36 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var36 + '];');
ALTER TABLE [Jobs] DROP COLUMN [OldPriority];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var37 sysname;
SELECT @var37 = [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'[Quotes]') AND [c].[name] = N'OldStatus');
IF @var37 IS NOT NULL EXEC(N'ALTER TABLE [Quotes] DROP CONSTRAINT [' + @var37 + '];');
ALTER TABLE [Quotes] DROP COLUMN [OldStatus];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var38 sysname;
SELECT @var38 = [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'[JobStatusHistory]') AND [c].[name] = N'OldFromStatus');
IF @var38 IS NOT NULL EXEC(N'ALTER TABLE [JobStatusHistory] DROP CONSTRAINT [' + @var38 + '];');
ALTER TABLE [JobStatusHistory] DROP COLUMN [OldFromStatus];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var39 sysname;
SELECT @var39 = [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'[JobStatusHistory]') AND [c].[name] = N'OldToStatus');
IF @var39 IS NOT NULL EXEC(N'ALTER TABLE [JobStatusHistory] DROP CONSTRAINT [' + @var39 + '];');
ALTER TABLE [JobStatusHistory] DROP COLUMN [OldToStatus];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var40 sysname;
SELECT @var40 = [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'[Jobs]') AND [c].[name] = N'JobStatusId_OLD');
IF @var40 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var40 + '];');
ALTER TABLE [Jobs] DROP COLUMN [JobStatusId_OLD];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var41 sysname;
SELECT @var41 = [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'[Jobs]') AND [c].[name] = N'JobPriorityId_OLD');
IF @var41 IS NOT NULL EXEC(N'ALTER TABLE [Jobs] DROP CONSTRAINT [' + @var41 + '];');
ALTER TABLE [Jobs] DROP COLUMN [JobPriorityId_OLD];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var42 sysname;
SELECT @var42 = [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'[Quotes]') AND [c].[name] = N'QuoteStatusId_OLD');
IF @var42 IS NOT NULL EXEC(N'ALTER TABLE [Quotes] DROP CONSTRAINT [' + @var42 + '];');
ALTER TABLE [Quotes] DROP COLUMN [QuoteStatusId_OLD];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var43 sysname;
SELECT @var43 = [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'[JobStatusHistory]') AND [c].[name] = N'FromStatusId_OLD');
IF @var43 IS NOT NULL EXEC(N'ALTER TABLE [JobStatusHistory] DROP CONSTRAINT [' + @var43 + '];');
ALTER TABLE [JobStatusHistory] DROP COLUMN [FromStatusId_OLD];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
DECLARE @var44 sysname;
SELECT @var44 = [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'[JobStatusHistory]') AND [c].[name] = N'ToStatusId_OLD');
IF @var44 IS NOT NULL EXEC(N'ALTER TABLE [JobStatusHistory] DROP CONSTRAINT [' + @var44 + '];');
ALTER TABLE [JobStatusHistory] DROP COLUMN [ToStatusId_OLD];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-13T18:39:09.9091116Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-13T18:39:09.9091124Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-13T18:39:09.9091127Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260213183913_ConvertEnumsToLookupTables'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260213183913_ConvertEnumsToLookupTables', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214023832_AddShopSuppliesRateToOperatingCosts'
)
BEGIN
ALTER TABLE [CompanyOperatingCosts] ADD [ShopSuppliesRate] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214023832_AddShopSuppliesRateToOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T02:38:28.7266427Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214023832_AddShopSuppliesRateToOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T02:38:28.7266433Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214023832_AddShopSuppliesRateToOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T02:38:28.7266437Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214023832_AddShopSuppliesRateToOperatingCosts'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260214023832_AddShopSuppliesRateToOperatingCosts', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
ALTER TABLE [InventoryItems] ADD [InventoryCategoryId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
CREATE TABLE [InventoryCategoryLookups] (
[Id] int NOT NULL IDENTITY,
[CategoryCode] nvarchar(450) NOT NULL,
[DisplayName] nvarchar(max) NOT NULL,
[DisplayOrder] int NOT NULL,
[Description] nvarchar(max) NULL,
[IsActive] bit NOT NULL,
[IsSystemDefined] bit 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_InventoryCategoryLookups] PRIMARY KEY ([Id]),
CONSTRAINT [FK_InventoryCategoryLookups_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T04:18:25.8821520Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T04:18:25.8821525Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T04:18:25.8821527Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
INSERT INTO InventoryCategoryLookups (CategoryCode, DisplayName, DisplayOrder, IsActive, IsSystemDefined, CompanyId, CreatedAt, IsDeleted)
SELECT 'POWDER', 'Powder', 1, 1, 1, c.Id, GETUTCDATE(), 0 FROM Companies c
UNION ALL
SELECT 'PRIMER', 'Primer', 2, 1, 1, c.Id, GETUTCDATE(), 0 FROM Companies c
UNION ALL
SELECT 'CLEANER', 'Cleaner', 3, 1, 1, c.Id, GETUTCDATE(), 0 FROM Companies c
UNION ALL
SELECT 'MASKING', 'Masking Supplies', 4, 1, 1, c.Id, GETUTCDATE(), 0 FROM Companies c
UNION ALL
SELECT 'ABRASIVE', 'Abrasive Media', 5, 1, 1, c.Id, GETUTCDATE(), 0 FROM Companies c
UNION ALL
SELECT 'CHEMICAL', 'Chemicals', 6, 1, 1, c.Id, GETUTCDATE(), 0 FROM Companies c
UNION ALL
SELECT 'CONSUMABLE', 'Consumables', 7, 1, 1, c.Id, GETUTCDATE(), 0 FROM Companies c
UNION ALL
SELECT 'TOOL', 'Tools', 8, 1, 1, c.Id, GETUTCDATE(), 0 FROM Companies c
UNION ALL
SELECT 'OTHER', 'Other', 9, 1, 1, c.Id, GETUTCDATE(), 0 FROM Companies c
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
UPDATE i
SET i.InventoryCategoryId = c.Id
FROM InventoryItems i
INNER JOIN InventoryCategoryLookups c ON i.CompanyId = c.CompanyId
WHERE i.Category = 'Powder' AND c.CategoryCode = 'POWDER'
OR i.Category = 'Primer' AND c.CategoryCode = 'PRIMER'
OR i.Category = 'Cleaner' AND c.CategoryCode = 'CLEANER'
OR i.Category = 'Masking' AND c.CategoryCode = 'MASKING'
OR i.Category = 'Abrasive' AND c.CategoryCode = 'ABRASIVE'
OR i.Category = 'Chemical' AND c.CategoryCode = 'CHEMICAL'
OR i.Category = 'Consumable' AND c.CategoryCode = 'CONSUMABLE'
OR i.Category = 'Tool' AND c.CategoryCode = 'TOOL'
OR i.Category = 'Other' AND c.CategoryCode = 'OTHER'
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
CREATE INDEX [IX_InventoryItems_InventoryCategoryId] ON [InventoryItems] ([InventoryCategoryId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
CREATE INDEX [IX_InventoryCategoryLookups_CompanyId] ON [InventoryCategoryLookups] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
CREATE UNIQUE INDEX [IX_InventoryCategoryLookups_CompanyId_CategoryCode] ON [InventoryCategoryLookups] ([CompanyId], [CategoryCode]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
ALTER TABLE [InventoryItems] ADD CONSTRAINT [FK_InventoryItems_InventoryCategoryLookups_InventoryCategoryId] FOREIGN KEY ([InventoryCategoryId]) REFERENCES [InventoryCategoryLookups] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214041829_AddInventoryCategoryLookup'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260214041829_AddInventoryCategoryLookup', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214044605_AddIsCoatingToInventoryCategory'
)
BEGIN
ALTER TABLE [InventoryCategoryLookups] ADD [IsCoating] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214044605_AddIsCoatingToInventoryCategory'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T04:46:02.4897150Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214044605_AddIsCoatingToInventoryCategory'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T04:46:02.4897155Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214044605_AddIsCoatingToInventoryCategory'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T04:46:02.4897157Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214044605_AddIsCoatingToInventoryCategory'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260214044605_AddIsCoatingToInventoryCategory', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214163415_AddQuoteChangeHistory'
)
BEGIN
CREATE TABLE [QuoteChangeHistories] (
[Id] int NOT NULL IDENTITY,
[QuoteId] int NOT NULL,
[ChangedByUserId] nvarchar(450) NOT NULL,
[ChangedAt] datetime2 NOT NULL,
[FieldName] nvarchar(max) NOT NULL,
[OldValue] nvarchar(max) NULL,
[NewValue] nvarchar(max) NULL,
[ChangeDescription] nvarchar(max) 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_QuoteChangeHistories] PRIMARY KEY ([Id]),
CONSTRAINT [FK_QuoteChangeHistories_AspNetUsers_ChangedByUserId] FOREIGN KEY ([ChangedByUserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_QuoteChangeHistories_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_QuoteChangeHistories_Quotes_QuoteId] FOREIGN KEY ([QuoteId]) REFERENCES [Quotes] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214163415_AddQuoteChangeHistory'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T16:34:11.9752246Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214163415_AddQuoteChangeHistory'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T16:34:11.9752252Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214163415_AddQuoteChangeHistory'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T16:34:11.9752254Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214163415_AddQuoteChangeHistory'
)
BEGIN
CREATE INDEX [IX_QuoteChangeHistories_ChangedByUserId] ON [QuoteChangeHistories] ([ChangedByUserId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214163415_AddQuoteChangeHistory'
)
BEGIN
CREATE INDEX [IX_QuoteChangeHistories_CompanyId] ON [QuoteChangeHistories] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214163415_AddQuoteChangeHistory'
)
BEGIN
CREATE INDEX [IX_QuoteChangeHistories_QuoteId] ON [QuoteChangeHistories] ([QuoteId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214163415_AddQuoteChangeHistory'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260214163415_AddQuoteChangeHistory', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214170954_AddJobChangeHistory'
)
BEGIN
CREATE TABLE [JobChangeHistories] (
[Id] int NOT NULL IDENTITY,
[JobId] int NOT NULL,
[ChangedByUserId] nvarchar(450) NOT NULL,
[ChangedAt] datetime2 NOT NULL,
[FieldName] nvarchar(max) NOT NULL,
[OldValue] nvarchar(max) NULL,
[NewValue] nvarchar(max) NULL,
[ChangeDescription] nvarchar(max) 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_JobChangeHistories] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobChangeHistories_AspNetUsers_ChangedByUserId] FOREIGN KEY ([ChangedByUserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_JobChangeHistories_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_JobChangeHistories_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214170954_AddJobChangeHistory'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T17:09:52.0923949Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214170954_AddJobChangeHistory'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T17:09:52.0923957Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214170954_AddJobChangeHistory'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T17:09:52.0923959Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214170954_AddJobChangeHistory'
)
BEGIN
CREATE INDEX [IX_JobChangeHistories_ChangedByUserId] ON [JobChangeHistories] ([ChangedByUserId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214170954_AddJobChangeHistory'
)
BEGIN
CREATE INDEX [IX_JobChangeHistories_CompanyId] ON [JobChangeHistories] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214170954_AddJobChangeHistory'
)
BEGIN
CREATE INDEX [IX_JobChangeHistories_JobId] ON [JobChangeHistories] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214170954_AddJobChangeHistory'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260214170954_AddJobChangeHistory', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214182904_AddMetricSystemPreference'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [UseMetricSystem] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214182904_AddMetricSystemPreference'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T18:29:01.4505899Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214182904_AddMetricSystemPreference'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T18:29:01.4505906Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214182904_AddMetricSystemPreference'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T18:29:01.4505907Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214182904_AddMetricSystemPreference'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260214182904_AddMetricSystemPreference', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
CREATE TABLE [AppointmentStatusLookups] (
[Id] int NOT NULL IDENTITY,
[StatusCode] nvarchar(max) NOT NULL,
[DisplayName] nvarchar(max) NOT NULL,
[DisplayOrder] int NOT NULL,
[ColorClass] nvarchar(max) NOT NULL,
[IconClass] nvarchar(max) NULL,
[IsActive] bit NOT NULL,
[IsSystemDefined] bit NOT NULL,
[IsTerminalStatus] bit NOT NULL,
[Description] 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_AppointmentStatusLookups] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
CREATE TABLE [AppointmentTypeLookups] (
[Id] int NOT NULL IDENTITY,
[TypeCode] nvarchar(max) NOT NULL,
[DisplayName] nvarchar(max) NOT NULL,
[DisplayOrder] int NOT NULL,
[ColorClass] nvarchar(max) NOT NULL,
[IconClass] nvarchar(max) NULL,
[RequiresJobLink] bit NOT NULL,
[IsActive] bit NOT NULL,
[IsSystemDefined] bit NOT NULL,
[Description] 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_AppointmentTypeLookups] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
CREATE TABLE [Appointments] (
[Id] int NOT NULL IDENTITY,
[AppointmentNumber] nvarchar(max) NOT NULL,
[Title] nvarchar(max) NOT NULL,
[Description] nvarchar(max) NULL,
[CustomerId] int NOT NULL,
[JobId] int NULL,
[AppointmentStatusId] int NOT NULL,
[AppointmentTypeId] int NOT NULL,
[AssignedWorkerId] int NULL,
[ScheduledStartTime] datetime2 NOT NULL,
[ScheduledEndTime] datetime2 NOT NULL,
[IsAllDay] bit NOT NULL,
[ActualStartTime] datetime2 NULL,
[ActualEndTime] datetime2 NULL,
[Location] nvarchar(max) NULL,
[Notes] nvarchar(max) NULL,
[IsReminderEnabled] bit NOT NULL,
[ReminderMinutesBefore] 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_Appointments] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Appointments_AppointmentStatusLookups_AppointmentStatusId] FOREIGN KEY ([AppointmentStatusId]) REFERENCES [AppointmentStatusLookups] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_Appointments_AppointmentTypeLookups_AppointmentTypeId] FOREIGN KEY ([AppointmentTypeId]) REFERENCES [AppointmentTypeLookups] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_Appointments_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_Appointments_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]),
CONSTRAINT [FK_Appointments_ShopWorkers_AssignedWorkerId] FOREIGN KEY ([AssignedWorkerId]) REFERENCES [ShopWorkers] ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T22:13:31.2633342Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T22:13:31.2633348Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-14T22:13:31.2633349Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
CREATE INDEX [IX_Appointments_AppointmentStatusId] ON [Appointments] ([AppointmentStatusId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
CREATE INDEX [IX_Appointments_AppointmentTypeId] ON [Appointments] ([AppointmentTypeId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
CREATE INDEX [IX_Appointments_AssignedWorkerId] ON [Appointments] ([AssignedWorkerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
CREATE INDEX [IX_Appointments_CustomerId] ON [Appointments] ([CustomerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
CREATE INDEX [IX_Appointments_JobId] ON [Appointments] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260214221334_AddAppointmentScheduling'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260214221334_AddAppointmentScheduling', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215000528_MakeAppointmentCustomerIdOptional'
)
BEGIN
ALTER TABLE [Appointments] DROP CONSTRAINT [FK_Appointments_Customers_CustomerId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215000528_MakeAppointmentCustomerIdOptional'
)
BEGIN
DECLARE @var45 sysname;
SELECT @var45 = [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'[Appointments]') AND [c].[name] = N'CustomerId');
IF @var45 IS NOT NULL EXEC(N'ALTER TABLE [Appointments] DROP CONSTRAINT [' + @var45 + '];');
ALTER TABLE [Appointments] ALTER COLUMN [CustomerId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215000528_MakeAppointmentCustomerIdOptional'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T00:05:25.6925144Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215000528_MakeAppointmentCustomerIdOptional'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T00:05:25.6925153Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215000528_MakeAppointmentCustomerIdOptional'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T00:05:25.6925155Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215000528_MakeAppointmentCustomerIdOptional'
)
BEGIN
ALTER TABLE [Appointments] ADD CONSTRAINT [FK_Appointments_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215000528_MakeAppointmentCustomerIdOptional'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260215000528_MakeAppointmentCustomerIdOptional', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CanManageCalendar] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CanManageEquipment] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CanManageMaintenance] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CanManageProducts] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CanManageSuppliers] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CanViewCalendar] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CanViewProducts] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T00:34:41.2332987Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T00:34:41.2332995Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T00:34:41.2332997Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215003444_AddAdditionalUserPermissions'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260215003444_AddAdditionalUserPermissions', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
DROP INDEX [IX_JobPhotos_JobId] ON [JobPhotos];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
DROP INDEX [IX_JobNotes_JobId] ON [JobNotes];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
DROP INDEX [IX_CustomerNotes_CustomerId] ON [CustomerNotes];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T05:05:35.3159644Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T05:05:35.3159650Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T05:05:35.3159652Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Quotes_CompanyId_ExpirationDate] ON [Quotes] ([CompanyId], [ExpirationDate]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Quotes_CompanyId_QuoteStatusId] ON [Quotes] ([CompanyId], [QuoteStatusId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_MaintenanceRecords_CompanyId_ScheduledDate] ON [MaintenanceRecords] ([CompanyId], [ScheduledDate]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_MaintenanceRecords_CompanyId_Status] ON [MaintenanceRecords] ([CompanyId], [Status]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Jobs_CompanyId_CustomerId] ON [Jobs] ([CompanyId], [CustomerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Jobs_CompanyId_DueDate] ON [Jobs] ([CompanyId], [DueDate]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Jobs_CompanyId_JobPriorityId] ON [Jobs] ([CompanyId], [JobPriorityId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Jobs_CompanyId_JobStatusId] ON [Jobs] ([CompanyId], [JobStatusId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Jobs_CompanyId_ScheduledDate] ON [Jobs] ([CompanyId], [ScheduledDate]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_JobPhotos_JobId_IsDeleted_DisplayOrder] ON [JobPhotos] ([JobId], [IsDeleted], [DisplayOrder]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_JobNotes_JobId_CreatedAt] ON [JobNotes] ([JobId], [CreatedAt]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_JobItems_JobId_IsDeleted] ON [JobItems] ([JobId], [IsDeleted]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_InventoryItems_CompanyId_Quantity_Reorder] ON [InventoryItems] ([CompanyId], [QuantityOnHand], [ReorderPoint]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Equipment_CompanyId_Status] ON [Equipment] ([CompanyId], [Status]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_CustomerNotes_CustomerId_CreatedAt] ON [CustomerNotes] ([CustomerId], [CreatedAt]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Appointments_CompanyId_AppointmentStatusId] ON [Appointments] ([CompanyId], [AppointmentStatusId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
CREATE INDEX [IX_Appointments_CompanyId_ScheduledStartTime] ON [Appointments] ([CompanyId], [ScheduledStartTime]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215050538_AddPerformanceIndexes'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260215050538_AddPerformanceIndexes', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
ALTER TABLE [QuoteItems] DROP CONSTRAINT [FK_QuoteItems_InventoryItems_InventoryItemId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
DROP INDEX [IX_QuoteItems_InventoryItemId] ON [QuoteItems];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
DECLARE @var46 sysname;
SELECT @var46 = [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'ColorCode');
IF @var46 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var46 + '];');
ALTER TABLE [QuoteItems] DROP COLUMN [ColorCode];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
DECLARE @var47 sysname;
SELECT @var47 = [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'ColorName');
IF @var47 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var47 + '];');
ALTER TABLE [QuoteItems] DROP COLUMN [ColorName];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
DECLARE @var48 sysname;
SELECT @var48 = [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'Finish');
IF @var48 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var48 + '];');
ALTER TABLE [QuoteItems] DROP COLUMN [Finish];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
DECLARE @var49 sysname;
SELECT @var49 = [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'InventoryItemId');
IF @var49 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var49 + '];');
ALTER TABLE [QuoteItems] DROP COLUMN [InventoryItemId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
DECLARE @var50 sysname;
SELECT @var50 = [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'PowderCostOverride');
IF @var50 IS NOT NULL EXEC(N'ALTER TABLE [QuoteItems] DROP CONSTRAINT [' + @var50 + '];');
ALTER TABLE [QuoteItems] DROP COLUMN [PowderCostOverride];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
CREATE TABLE [QuoteItemCoats] (
[Id] int NOT NULL IDENTITY,
[QuoteItemId] int NOT NULL,
[CoatName] nvarchar(max) NOT NULL,
[Sequence] int NOT NULL,
[InventoryItemId] int NULL,
[ColorName] nvarchar(max) 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,
[CoatMaterialCost] decimal(18,2) NOT NULL,
[CoatLaborCost] decimal(18,2) NOT NULL,
[CoatTotalCost] decimal(18,2) NOT 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_QuoteItemCoats] PRIMARY KEY ([Id]),
CONSTRAINT [FK_QuoteItemCoats_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_QuoteItemCoats_InventoryItems_InventoryItemId] FOREIGN KEY ([InventoryItemId]) REFERENCES [InventoryItems] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_QuoteItemCoats_QuoteItems_QuoteItemId] FOREIGN KEY ([QuoteItemId]) REFERENCES [QuoteItems] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T15:49:00.4799039Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T15:49:00.4799044Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T15:49:00.4799046Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
CREATE INDEX [IX_QuoteItemCoats_CompanyId] ON [QuoteItemCoats] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
CREATE INDEX [IX_QuoteItemCoats_InventoryItemId] ON [QuoteItemCoats] ([InventoryItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
CREATE INDEX [IX_QuoteItemCoats_QuoteItemId] ON [QuoteItemCoats] ([QuoteItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215154903_AddQuoteItemCoatsSupport'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260215154903_AddQuoteItemCoatsSupport', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215230641_AddPowderToOrderAndSupplierIdToQuoteItemCoat'
)
BEGIN
ALTER TABLE [QuoteItemCoats] ADD [PowderToOrder] decimal(18,2) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215230641_AddPowderToOrderAndSupplierIdToQuoteItemCoat'
)
BEGIN
ALTER TABLE [QuoteItemCoats] ADD [SupplierId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215230641_AddPowderToOrderAndSupplierIdToQuoteItemCoat'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T23:06:37.5359459Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215230641_AddPowderToOrderAndSupplierIdToQuoteItemCoat'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T23:06:37.5359465Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215230641_AddPowderToOrderAndSupplierIdToQuoteItemCoat'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T23:06:37.5359467Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215230641_AddPowderToOrderAndSupplierIdToQuoteItemCoat'
)
BEGIN
CREATE INDEX [IX_QuoteItemCoats_SupplierId] ON [QuoteItemCoats] ([SupplierId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215230641_AddPowderToOrderAndSupplierIdToQuoteItemCoat'
)
BEGIN
ALTER TABLE [QuoteItemCoats] ADD CONSTRAINT [FK_QuoteItemCoats_Suppliers_SupplierId] FOREIGN KEY ([SupplierId]) REFERENCES [Suppliers] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215230641_AddPowderToOrderAndSupplierIdToQuoteItemCoat'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260215230641_AddPowderToOrderAndSupplierIdToQuoteItemCoat', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215234122_AddAdditionalCoatLaborPercentToOperatingCosts'
)
BEGIN
ALTER TABLE [CompanyOperatingCosts] ADD [AdditionalCoatLaborPercent] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215234122_AddAdditionalCoatLaborPercentToOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T23:41:19.8949787Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215234122_AddAdditionalCoatLaborPercentToOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T23:41:19.8949795Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215234122_AddAdditionalCoatLaborPercentToOperatingCosts'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-15T23:41:19.8949841Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260215234122_AddAdditionalCoatLaborPercentToOperatingCosts'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260215234122_AddAdditionalCoatLaborPercentToOperatingCosts', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260216011141_AddInternalNotesToJob'
)
BEGIN
ALTER TABLE [Jobs] ADD [InternalNotes] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260216011141_AddInternalNotesToJob'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-16T01:11:38.6019819Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260216011141_AddInternalNotesToJob'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-16T01:11:38.6019882Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260216011141_AddInternalNotesToJob'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-16T01:11:38.6019883Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260216011141_AddInternalNotesToJob'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260216011141_AddInternalNotesToJob', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217015314_FixCustomerEmailUniqueIndex'
)
BEGIN
DROP INDEX [IX_Customers_Email] ON [Customers];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217015314_FixCustomerEmailUniqueIndex'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T01:53:11.9190829Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217015314_FixCustomerEmailUniqueIndex'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T01:53:11.9190834Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217015314_FixCustomerEmailUniqueIndex'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T01:53:11.9190836Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217015314_FixCustomerEmailUniqueIndex'
)
BEGIN
EXEC(N'CREATE UNIQUE INDEX [IX_Customers_CompanyId_Email] ON [Customers] ([CompanyId], [Email]) WHERE [Email] IS NOT NULL');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217015314_FixCustomerEmailUniqueIndex'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260217015314_FixCustomerEmailUniqueIndex', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217031754_AddJobItemCoatEntity'
)
BEGIN
ALTER TABLE [Jobs] ADD [ActualTimeSpentHours] decimal(18,2) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217031754_AddJobItemCoatEntity'
)
BEGIN
CREATE TABLE [JobItemCoats] (
[Id] int NOT NULL IDENTITY,
[JobItemId] int NOT NULL,
[CoatName] nvarchar(max) NOT NULL,
[Sequence] int NOT NULL,
[InventoryItemId] int NULL,
[ColorName] nvarchar(max) NULL,
[SupplierId] 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,
[PowderToOrder] decimal(18,2) NULL,
[ActualPowderUsedLbs] 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_JobItemCoats] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobItemCoats_InventoryItems_InventoryItemId] FOREIGN KEY ([InventoryItemId]) REFERENCES [InventoryItems] ([Id]),
CONSTRAINT [FK_JobItemCoats_JobItems_JobItemId] FOREIGN KEY ([JobItemId]) REFERENCES [JobItems] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_JobItemCoats_Suppliers_SupplierId] FOREIGN KEY ([SupplierId]) REFERENCES [Suppliers] ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217031754_AddJobItemCoatEntity'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T03:17:51.7026263Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217031754_AddJobItemCoatEntity'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T03:17:51.7026268Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217031754_AddJobItemCoatEntity'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T03:17:51.7026270Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217031754_AddJobItemCoatEntity'
)
BEGIN
CREATE INDEX [IX_JobItemCoats_InventoryItemId] ON [JobItemCoats] ([InventoryItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217031754_AddJobItemCoatEntity'
)
BEGIN
CREATE INDEX [IX_JobItemCoats_JobItemId] ON [JobItemCoats] ([JobItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217031754_AddJobItemCoatEntity'
)
BEGIN
CREATE INDEX [IX_JobItemCoats_SupplierId] ON [JobItemCoats] ([SupplierId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217031754_AddJobItemCoatEntity'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260217031754_AddJobItemCoatEntity', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217052340_AddQuoteDiscountFields'
)
BEGIN
ALTER TABLE [Quotes] ADD [DiscountReason] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217052340_AddQuoteDiscountFields'
)
BEGIN
ALTER TABLE [Quotes] ADD [DiscountType] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217052340_AddQuoteDiscountFields'
)
BEGIN
ALTER TABLE [Quotes] ADD [DiscountValue] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217052340_AddQuoteDiscountFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T05:23:38.1735311Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217052340_AddQuoteDiscountFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T05:23:38.1735344Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217052340_AddQuoteDiscountFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T05:23:38.1735347Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217052340_AddQuoteDiscountFields'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260217052340_AddQuoteDiscountFields', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217170554_AddJobDailyPriority'
)
BEGIN
CREATE TABLE [JobDailyPriorities] (
[Id] int NOT NULL IDENTITY,
[JobId] int NOT NULL,
[ScheduledDate] datetime2 NOT 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_JobDailyPriorities] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobDailyPriorities_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217170554_AddJobDailyPriority'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T17:05:51.5460473Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217170554_AddJobDailyPriority'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T17:05:51.5460480Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217170554_AddJobDailyPriority'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T17:05:51.5460482Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217170554_AddJobDailyPriority'
)
BEGIN
CREATE INDEX [IX_JobDailyPriorities_JobId] ON [JobDailyPriorities] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217170554_AddJobDailyPriority'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260217170554_AddJobDailyPriority', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217185430_AddRushJobToQuote'
)
BEGIN
ALTER TABLE [Quotes] ADD [IsRushJob] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217185430_AddRushJobToQuote'
)
BEGIN
ALTER TABLE [Quotes] ADD [RushFee] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217185430_AddRushJobToQuote'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T18:54:27.7742836Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217185430_AddRushJobToQuote'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T18:54:27.7742841Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217185430_AddRushJobToQuote'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-17T18:54:27.7742843Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260217185430_AddRushJobToQuote'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260217185430_AddRushJobToQuote', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218004437_AddPrepServicesTable'
)
BEGIN
CREATE TABLE [PrepServices] (
[Id] int NOT NULL IDENTITY,
[ServiceName] nvarchar(max) NOT NULL,
[Description] nvarchar(max) NULL,
[DisplayOrder] int NOT NULL,
[IsActive] bit 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_PrepServices] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218004437_AddPrepServicesTable'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T00:44:34.4266737Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218004437_AddPrepServicesTable'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T00:44:34.4266742Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218004437_AddPrepServicesTable'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T00:44:34.4266788Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218004437_AddPrepServicesTable'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260218004437_AddPrepServicesTable', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218010128_AddQuotePrepServiceRelationship'
)
BEGIN
CREATE TABLE [QuotePrepServices] (
[Id] int NOT NULL IDENTITY,
[QuoteId] int NOT NULL,
[PrepServiceId] 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_QuotePrepServices] PRIMARY KEY ([Id]),
CONSTRAINT [FK_QuotePrepServices_PrepServices_PrepServiceId] FOREIGN KEY ([PrepServiceId]) REFERENCES [PrepServices] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_QuotePrepServices_Quotes_QuoteId] FOREIGN KEY ([QuoteId]) REFERENCES [Quotes] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218010128_AddQuotePrepServiceRelationship'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T01:01:25.3203798Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218010128_AddQuotePrepServiceRelationship'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T01:01:25.3203805Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218010128_AddQuotePrepServiceRelationship'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T01:01:25.3203807Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218010128_AddQuotePrepServiceRelationship'
)
BEGIN
CREATE INDEX [IX_QuotePrepServices_PrepServiceId] ON [QuotePrepServices] ([PrepServiceId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218010128_AddQuotePrepServiceRelationship'
)
BEGIN
CREATE INDEX [IX_QuotePrepServices_QuoteId] ON [QuotePrepServices] ([QuoteId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218010128_AddQuotePrepServiceRelationship'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260218010128_AddQuotePrepServiceRelationship', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218012900_AddJobPrepServices'
)
BEGIN
CREATE TABLE [JobPrepServices] (
[Id] int NOT NULL IDENTITY,
[JobId] int NOT NULL,
[PrepServiceId] 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_JobPrepServices] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobPrepServices_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_JobPrepServices_PrepServices_PrepServiceId] FOREIGN KEY ([PrepServiceId]) REFERENCES [PrepServices] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218012900_AddJobPrepServices'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T01:28:57.6058224Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218012900_AddJobPrepServices'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T01:28:57.6058229Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218012900_AddJobPrepServices'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T01:28:57.6058231Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218012900_AddJobPrepServices'
)
BEGIN
CREATE INDEX [IX_JobPrepServices_JobId] ON [JobPrepServices] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218012900_AddJobPrepServices'
)
BEGIN
CREATE INDEX [IX_JobPrepServices_PrepServiceId] ON [JobPrepServices] ([PrepServiceId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218012900_AddJobPrepServices'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260218012900_AddJobPrepServices', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218023413_AddApproximateAreaToCatalogItem'
)
BEGIN
ALTER TABLE [CatalogItems] ADD [ApproximateArea] decimal(18,2) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218023413_AddApproximateAreaToCatalogItem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T02:34:09.3788277Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218023413_AddApproximateAreaToCatalogItem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T02:34:09.3788282Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218023413_AddApproximateAreaToCatalogItem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-18T02:34:09.3788284Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260218023413_AddApproximateAreaToCatalogItem'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260218023413_AddApproximateAreaToCatalogItem', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
ALTER TABLE [MaintenanceRecords] ADD [IsRecurring] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
ALTER TABLE [MaintenanceRecords] ADD [RecurrenceEndDate] datetime2 NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
ALTER TABLE [MaintenanceRecords] ADD [RecurrenceFrequency] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
ALTER TABLE [MaintenanceRecords] ADD [RecurrenceGroupId] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
ALTER TABLE [MaintenanceRecords] ADD [RecurrenceParentId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-19T14:11:02.7803625Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-19T14:11:02.7803630Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-19T14:11:02.7803632Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
CREATE INDEX [IX_MaintenanceRecords_RecurrenceParentId] ON [MaintenanceRecords] ([RecurrenceParentId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
ALTER TABLE [MaintenanceRecords] ADD CONSTRAINT [FK_MaintenanceRecords_MaintenanceRecords_RecurrenceParentId] FOREIGN KEY ([RecurrenceParentId]) REFERENCES [MaintenanceRecords] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260219141105_AddMaintenanceRecurrence'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260219141105_AddMaintenanceRecurrence', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260220171704_AddOvenCostTable'
)
BEGIN
ALTER TABLE [Quotes] ADD [OvenCostId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260220171704_AddOvenCostTable'
)
BEGIN
CREATE TABLE [OvenCosts] (
[Id] int NOT NULL IDENTITY,
[Label] nvarchar(100) NOT NULL,
[CostPerHour] decimal(18,2) NOT NULL,
[IsActive] bit NOT 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_OvenCosts] PRIMARY KEY ([Id]),
CONSTRAINT [FK_OvenCosts_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260220171704_AddOvenCostTable'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-20T17:17:01.4986759Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260220171704_AddOvenCostTable'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-20T17:17:01.4986764Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260220171704_AddOvenCostTable'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-20T17:17:01.4986765Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260220171704_AddOvenCostTable'
)
BEGIN
CREATE INDEX [IX_Quotes_OvenCostId] ON [Quotes] ([OvenCostId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260220171704_AddOvenCostTable'
)
BEGIN
CREATE INDEX [IX_OvenCosts_CompanyId] ON [OvenCosts] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260220171704_AddOvenCostTable'
)
BEGIN
ALTER TABLE [Quotes] ADD CONSTRAINT [FK_Quotes_OvenCosts_OvenCostId] FOREIGN KEY ([OvenCostId]) REFERENCES [OvenCosts] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260220171704_AddOvenCostTable'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260220171704_AddOvenCostTable', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221001331_AddOvenCostToJobs'
)
BEGIN
ALTER TABLE [Jobs] ADD [OvenCostId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221001331_AddOvenCostToJobs'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T00:13:27.8500454Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221001331_AddOvenCostToJobs'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T00:13:27.8500462Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221001331_AddOvenCostToJobs'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T00:13:27.8500464Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221001331_AddOvenCostToJobs'
)
BEGIN
CREATE INDEX [IX_Jobs_OvenCostId] ON [Jobs] ([OvenCostId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221001331_AddOvenCostToJobs'
)
BEGIN
ALTER TABLE [Jobs] ADD CONSTRAINT [FK_Jobs_OvenCosts_OvenCostId] FOREIGN KEY ([OvenCostId]) REFERENCES [OvenCosts] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221001331_AddOvenCostToJobs'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260221001331_AddOvenCostToJobs', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221003434_RemoveProfilePictureDatabaseFields'
)
BEGIN
DECLARE @var51 sysname;
SELECT @var51 = [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'[AspNetUsers]') AND [c].[name] = N'ProfilePictureContentType');
IF @var51 IS NOT NULL EXEC(N'ALTER TABLE [AspNetUsers] DROP CONSTRAINT [' + @var51 + '];');
ALTER TABLE [AspNetUsers] DROP COLUMN [ProfilePictureContentType];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221003434_RemoveProfilePictureDatabaseFields'
)
BEGIN
DECLARE @var52 sysname;
SELECT @var52 = [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'[AspNetUsers]') AND [c].[name] = N'ProfilePictureData');
IF @var52 IS NOT NULL EXEC(N'ALTER TABLE [AspNetUsers] DROP CONSTRAINT [' + @var52 + '];');
ALTER TABLE [AspNetUsers] DROP COLUMN [ProfilePictureData];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221003434_RemoveProfilePictureDatabaseFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T00:34:31.8544923Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221003434_RemoveProfilePictureDatabaseFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T00:34:31.8544930Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221003434_RemoveProfilePictureDatabaseFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T00:34:31.8544931Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221003434_RemoveProfilePictureDatabaseFields'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260221003434_RemoveProfilePictureDatabaseFields', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
ALTER TABLE [Customers] ADD [NotifyByEmail] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
ALTER TABLE [Customers] ADD [NotifyBySms] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
CREATE TABLE [NotificationLogs] (
[Id] int NOT NULL IDENTITY,
[Channel] int NOT NULL,
[NotificationType] int NOT NULL,
[Status] int NOT NULL,
[RecipientName] nvarchar(max) NOT NULL,
[Recipient] nvarchar(max) NOT NULL,
[Subject] nvarchar(max) NULL,
[Message] nvarchar(max) NOT NULL,
[ErrorMessage] nvarchar(max) NULL,
[SentAt] datetime2 NOT NULL,
[CustomerId] int NULL,
[JobId] int NULL,
[QuoteId] 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_NotificationLogs] PRIMARY KEY ([Id]),
CONSTRAINT [FK_NotificationLogs_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_NotificationLogs_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]) ON DELETE SET NULL,
CONSTRAINT [FK_NotificationLogs_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE SET NULL,
CONSTRAINT [FK_NotificationLogs_Quotes_QuoteId] FOREIGN KEY ([QuoteId]) REFERENCES [Quotes] ([Id]) ON DELETE SET NULL
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T13:55:37.8574079Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T13:55:37.8574086Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T13:55:37.8574088Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
CREATE INDEX [IX_NotificationLogs_CompanyId_SentAt] ON [NotificationLogs] ([CompanyId], [SentAt]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
CREATE INDEX [IX_NotificationLogs_CompanyId_Status] ON [NotificationLogs] ([CompanyId], [Status]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
CREATE INDEX [IX_NotificationLogs_CustomerId] ON [NotificationLogs] ([CustomerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
CREATE INDEX [IX_NotificationLogs_JobId] ON [NotificationLogs] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
CREATE INDEX [IX_NotificationLogs_QuoteId] ON [NotificationLogs] ([QuoteId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221135541_AddNotificationSystem'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260221135541_AddNotificationSystem', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221141834_AddCustomerUnsubscribeToken'
)
BEGIN
ALTER TABLE [Customers] ADD [UnsubscribeToken] nvarchar(450) NOT NULL DEFAULT (REPLACE(NEWID(),'-',''));
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221141834_AddCustomerUnsubscribeToken'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T14:18:31.3321750Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221141834_AddCustomerUnsubscribeToken'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T14:18:31.3321756Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221141834_AddCustomerUnsubscribeToken'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T14:18:31.3321758Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221141834_AddCustomerUnsubscribeToken'
)
BEGIN
CREATE UNIQUE INDEX [IX_Customers_UnsubscribeToken] ON [Customers] ([UnsubscribeToken]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221141834_AddCustomerUnsubscribeToken'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260221141834_AddCustomerUnsubscribeToken', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221232918_AddSmsConsent'
)
BEGIN
ALTER TABLE [Customers] ADD [SmsConsentMethod] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221232918_AddSmsConsent'
)
BEGIN
ALTER TABLE [Customers] ADD [SmsConsentedAt] datetime2 NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221232918_AddSmsConsent'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T23:29:14.2199767Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221232918_AddSmsConsent'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T23:29:14.2199772Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221232918_AddSmsConsent'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-21T23:29:14.2199774Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260221232918_AddSmsConsent'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260221232918_AddSmsConsent', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260222133103_AddNotificationTemplates'
)
BEGIN
CREATE TABLE [NotificationTemplates] (
[Id] int NOT NULL IDENTITY,
[NotificationType] int NOT NULL,
[Channel] int NOT NULL,
[DisplayName] nvarchar(max) NOT NULL,
[Subject] nvarchar(max) NULL,
[Body] nvarchar(max) NOT NULL,
[IsActive] bit 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_NotificationTemplates] PRIMARY KEY ([Id]),
CONSTRAINT [FK_NotificationTemplates_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260222133103_AddNotificationTemplates'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-22T13:30:59.4147610Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260222133103_AddNotificationTemplates'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-22T13:30:59.4147617Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260222133103_AddNotificationTemplates'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-22T13:30:59.4147619Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260222133103_AddNotificationTemplates'
)
BEGIN
CREATE UNIQUE INDEX [IX_NotificationTemplates_Company_Type_Channel] ON [NotificationTemplates] ([CompanyId], [NotificationType], [Channel]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260222133103_AddNotificationTemplates'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260222133103_AddNotificationTemplates', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'CompanyPreferences' AND COLUMN_NAME = 'EmailFromAddress')
ALTER TABLE [CompanyPreferences] ADD [EmailFromAddress] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'CompanyPreferences' AND COLUMN_NAME = 'EmailFromName')
ALTER TABLE [CompanyPreferences] ADD [EmailFromName] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
DECLARE @var53 sysname;
SELECT @var53 = [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'[CompanyPreferences]') AND [c].[name] = N'EmailFromName');
IF @var53 IS NOT NULL EXEC(N'ALTER TABLE [CompanyPreferences] DROP CONSTRAINT [' + @var53 + '];');
ALTER TABLE [CompanyPreferences] ALTER COLUMN [EmailFromName] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
DECLARE @var54 sysname;
SELECT @var54 = [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'[CompanyPreferences]') AND [c].[name] = N'EmailFromAddress');
IF @var54 IS NOT NULL EXEC(N'ALTER TABLE [CompanyPreferences] DROP CONSTRAINT [' + @var54 + '];');
ALTER TABLE [CompanyPreferences] ALTER COLUMN [EmailFromAddress] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
ALTER TABLE [Companies] ADD [SubscriptionPlanNew] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
UPDATE Companies SET SubscriptionPlanNew =
CASE SubscriptionPlan
WHEN 'Enterprise' THEN 2
WHEN 'Pro' THEN 1
WHEN 'Basic' THEN 0
ELSE 0
END
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
DECLARE @var55 sysname;
SELECT @var55 = [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'[Companies]') AND [c].[name] = N'SubscriptionPlan');
IF @var55 IS NOT NULL EXEC(N'ALTER TABLE [Companies] DROP CONSTRAINT [' + @var55 + '];');
ALTER TABLE [Companies] DROP COLUMN [SubscriptionPlan];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
EXEC sp_rename N'[Companies].[SubscriptionPlanNew]', N'SubscriptionPlan', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
ALTER TABLE [Companies] ADD [StripeCustomerId] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
ALTER TABLE [Companies] ADD [StripeSubscriptionId] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
ALTER TABLE [Companies] ADD [SubscriptionStatus] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
CREATE TABLE [SubscriptionPlanConfigs] (
[Id] int NOT NULL IDENTITY,
[Plan] int NOT NULL,
[DisplayName] nvarchar(max) NOT NULL,
[Description] nvarchar(max) NULL,
[MaxUsers] int NOT NULL,
[MaxActiveJobs] int NOT NULL,
[MaxCustomers] int NOT NULL,
[MonthlyPrice] decimal(18,2) NOT NULL,
[AnnualPrice] decimal(18,2) NOT NULL,
[StripePriceIdMonthly] nvarchar(max) NULL,
[StripePriceIdAnnual] nvarchar(max) NULL,
[IsActive] bit NOT NULL,
[SortOrder] 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_SubscriptionPlanConfigs] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-24T01:51:32.2577721Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-24T01:51:32.2577726Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-24T01:51:32.2577728Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224015135_AddSubscriptionEnumAndStripeFields'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260224015135_AddSubscriptionEnumAndStripeFields', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224035934_AddStarterPlanAndQuoteLimit'
)
BEGIN
ALTER TABLE [SubscriptionPlanConfigs] ADD [MaxQuotes] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224035934_AddStarterPlanAndQuoteLimit'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-24T03:59:30.7397881Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224035934_AddStarterPlanAndQuoteLimit'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-24T03:59:30.7397890Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224035934_AddStarterPlanAndQuoteLimit'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-24T03:59:30.7397891Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224035934_AddStarterPlanAndQuoteLimit'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260224035934_AddStarterPlanAndQuoteLimit', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224040916_AddCatalogItemLimit'
)
BEGIN
ALTER TABLE [SubscriptionPlanConfigs] ADD [MaxCatalogItems] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224040916_AddCatalogItemLimit'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-24T04:09:11.4847911Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224040916_AddCatalogItemLimit'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-24T04:09:11.4847917Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224040916_AddCatalogItemLimit'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-24T04:09:11.4847919Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260224040916_AddCatalogItemLimit'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260224040916_AddCatalogItemLimit', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225033952_AddGenericQuoteItemFields'
)
BEGIN
ALTER TABLE [QuoteItems] ADD [IsGenericItem] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225033952_AddGenericQuoteItemFields'
)
BEGIN
ALTER TABLE [QuoteItems] ADD [ManualUnitPrice] decimal(18,2) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225033952_AddGenericQuoteItemFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-25T03:39:48.7901225Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225033952_AddGenericQuoteItemFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-25T03:39:48.7901233Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225033952_AddGenericQuoteItemFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-25T03:39:48.7901234Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225033952_AddGenericQuoteItemFields'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260225033952_AddGenericQuoteItemFields', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225135132_AddQuoteItemPrepServices'
)
BEGIN
ALTER TABLE [QuoteItems] ADD [IsLaborItem] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225135132_AddQuoteItemPrepServices'
)
BEGIN
CREATE TABLE [QuoteItemPrepServices] (
[Id] int NOT NULL IDENTITY,
[QuoteItemId] 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_QuoteItemPrepServices] PRIMARY KEY ([Id]),
CONSTRAINT [FK_QuoteItemPrepServices_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_QuoteItemPrepServices_PrepServices_PrepServiceId] FOREIGN KEY ([PrepServiceId]) REFERENCES [PrepServices] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_QuoteItemPrepServices_QuoteItems_QuoteItemId] FOREIGN KEY ([QuoteItemId]) REFERENCES [QuoteItems] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225135132_AddQuoteItemPrepServices'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-25T13:51:28.7925967Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225135132_AddQuoteItemPrepServices'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-25T13:51:28.7925974Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225135132_AddQuoteItemPrepServices'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-25T13:51:28.7925975Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225135132_AddQuoteItemPrepServices'
)
BEGIN
CREATE INDEX [IX_QuoteItemPrepServices_CompanyId] ON [QuoteItemPrepServices] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225135132_AddQuoteItemPrepServices'
)
BEGIN
CREATE INDEX [IX_QuoteItemPrepServices_PrepServiceId] ON [QuoteItemPrepServices] ([PrepServiceId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225135132_AddQuoteItemPrepServices'
)
BEGIN
CREATE INDEX [IX_QuoteItemPrepServices_QuoteItemId] ON [QuoteItemPrepServices] ([QuoteItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260225135132_AddQuoteItemPrepServices'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260225135132_AddQuoteItemPrepServices', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260226171604_FixJobQuoteNumberUniqueIndexPerCompany'
)
BEGIN
DROP INDEX [IX_Quotes_QuoteNumber] ON [Quotes];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260226171604_FixJobQuoteNumberUniqueIndexPerCompany'
)
BEGIN
DROP INDEX [IX_Jobs_JobNumber] ON [Jobs];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260226171604_FixJobQuoteNumberUniqueIndexPerCompany'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-26T17:16:01.0942463Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260226171604_FixJobQuoteNumberUniqueIndexPerCompany'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-26T17:16:01.0942470Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260226171604_FixJobQuoteNumberUniqueIndexPerCompany'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-26T17:16:01.0942471Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260226171604_FixJobQuoteNumberUniqueIndexPerCompany'
)
BEGIN
CREATE UNIQUE INDEX [IX_Quotes_CompanyId_QuoteNumber] ON [Quotes] ([CompanyId], [QuoteNumber]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260226171604_FixJobQuoteNumberUniqueIndexPerCompany'
)
BEGIN
CREATE UNIQUE INDEX [IX_Jobs_CompanyId_JobNumber] ON [Jobs] ([CompanyId], [JobNumber]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260226171604_FixJobQuoteNumberUniqueIndexPerCompany'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260226171604_FixJobQuoteNumberUniqueIndexPerCompany', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260227020607_RemoveSubscriptionPlanEnum'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-27T02:06:03.2426692Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260227020607_RemoveSubscriptionPlanEnum'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-27T02:06:03.2426696Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260227020607_RemoveSubscriptionPlanEnum'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-27T02:06:03.2426698Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260227020607_RemoveSubscriptionPlanEnum'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260227020607_RemoveSubscriptionPlanEnum', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260227042457_AddBugReports'
)
BEGIN
CREATE TABLE [BugReports] (
[Id] int NOT NULL IDENTITY,
[Title] nvarchar(max) NOT NULL,
[Description] nvarchar(max) NOT NULL,
[SubmittedByUserId] nvarchar(max) NOT NULL,
[SubmittedByUserName] nvarchar(max) NOT NULL,
[Priority] int NOT NULL,
[Status] int NOT NULL,
[ResolutionNotes] nvarchar(max) NULL,
[ResolvedAt] datetime2 NULL,
[ResolvedBy] 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_BugReports] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260227042457_AddBugReports'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-27T04:24:54.3532986Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260227042457_AddBugReports'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-27T04:24:54.3532991Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260227042457_AddBugReports'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-02-27T04:24:54.3532993Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260227042457_AddBugReports'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260227042457_AddBugReports', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260302003433_AddMaxJobPhotosToSubscriptionPlanConfig'
)
BEGIN
ALTER TABLE [SubscriptionPlanConfigs] ADD [MaxJobPhotos] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260302003433_AddMaxJobPhotosToSubscriptionPlanConfig'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-02T00:34:29.7591703Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260302003433_AddMaxJobPhotosToSubscriptionPlanConfig'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-02T00:34:29.7591710Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260302003433_AddMaxJobPhotosToSubscriptionPlanConfig'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-02T00:34:29.7591711Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260302003433_AddMaxJobPhotosToSubscriptionPlanConfig'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260302003433_AddMaxJobPhotosToSubscriptionPlanConfig', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304014125_AddQuoteTemplateToCompanyPreferences'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [QtAccentColor] nvarchar(max) NOT NULL DEFAULT N'';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304014125_AddQuoteTemplateToCompanyPreferences'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [QtDefaultTerms] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304014125_AddQuoteTemplateToCompanyPreferences'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [QtFooterNote] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304014125_AddQuoteTemplateToCompanyPreferences'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [QtShowDetailedBreakdown] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304014125_AddQuoteTemplateToCompanyPreferences'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [QtShowPreparedBy] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304014125_AddQuoteTemplateToCompanyPreferences'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-04T01:41:22.4363124Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304014125_AddQuoteTemplateToCompanyPreferences'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-04T01:41:22.4363129Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304014125_AddQuoteTemplateToCompanyPreferences'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-04T01:41:22.4363130Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304014125_AddQuoteTemplateToCompanyPreferences'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260304014125_AddQuoteTemplateToCompanyPreferences', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304030757_RemoveQuotePdfToggleColumns'
)
BEGIN
DECLARE @var56 sysname;
SELECT @var56 = [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'[CompanyPreferences]') AND [c].[name] = N'QtShowDetailedBreakdown');
IF @var56 IS NOT NULL EXEC(N'ALTER TABLE [CompanyPreferences] DROP CONSTRAINT [' + @var56 + '];');
ALTER TABLE [CompanyPreferences] DROP COLUMN [QtShowDetailedBreakdown];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304030757_RemoveQuotePdfToggleColumns'
)
BEGIN
DECLARE @var57 sysname;
SELECT @var57 = [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'[CompanyPreferences]') AND [c].[name] = N'QtShowPreparedBy');
IF @var57 IS NOT NULL EXEC(N'ALTER TABLE [CompanyPreferences] DROP CONSTRAINT [' + @var57 + '];');
ALTER TABLE [CompanyPreferences] DROP COLUMN [QtShowPreparedBy];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304030757_RemoveQuotePdfToggleColumns'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-04T03:07:54.3122285Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304030757_RemoveQuotePdfToggleColumns'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-04T03:07:54.3122290Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304030757_RemoveQuotePdfToggleColumns'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-04T03:07:54.3122291Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260304030757_RemoveQuotePdfToggleColumns'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260304030757_RemoveQuotePdfToggleColumns', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
CREATE TABLE [Announcements] (
[Id] int NOT NULL IDENTITY,
[Title] nvarchar(max) NOT NULL,
[Message] nvarchar(max) NOT NULL,
[Type] nvarchar(max) NOT NULL,
[Target] nvarchar(max) NOT NULL,
[TargetPlan] int NULL,
[TargetCompanyId] int NULL,
[StartsAt] datetime2 NOT NULL,
[ExpiresAt] datetime2 NULL,
[IsDismissible] bit NOT NULL,
[IsActive] bit NOT NULL,
[CreatedByUserId] nvarchar(max) NOT NULL,
[CreatedByUserName] nvarchar(max) NOT NULL,
[CreatedAt] datetime2 NOT NULL,
[UpdatedAt] datetime2 NULL,
CONSTRAINT [PK_Announcements] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
CREATE TABLE [AuditLogs] (
[Id] bigint NOT NULL IDENTITY,
[UserId] nvarchar(max) NULL,
[UserName] nvarchar(max) NOT NULL,
[CompanyId] int NULL,
[CompanyName] nvarchar(max) NULL,
[Action] nvarchar(max) NOT NULL,
[EntityType] nvarchar(450) NOT NULL,
[EntityId] nvarchar(450) NULL,
[EntityDescription] nvarchar(max) NULL,
[OldValues] nvarchar(max) NULL,
[NewValues] nvarchar(max) NULL,
[IpAddress] nvarchar(max) NULL,
[Timestamp] datetime2 NOT NULL,
CONSTRAINT [PK_AuditLogs] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
CREATE TABLE [AnnouncementDismissals] (
[Id] int NOT NULL IDENTITY,
[AnnouncementId] int NOT NULL,
[UserId] nvarchar(450) NOT NULL,
[DismissedAt] datetime2 NOT NULL,
CONSTRAINT [PK_AnnouncementDismissals] PRIMARY KEY ([Id]),
CONSTRAINT [FK_AnnouncementDismissals_Announcements_AnnouncementId] FOREIGN KEY ([AnnouncementId]) REFERENCES [Announcements] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-05T15:19:18.4239141Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-05T15:19:18.4239145Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-05T15:19:18.4239147Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
CREATE UNIQUE INDEX [IX_AnnouncementDismissals_AnnouncementId_UserId] ON [AnnouncementDismissals] ([AnnouncementId], [UserId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
CREATE INDEX [IX_AuditLogs_CompanyId_Timestamp] ON [AuditLogs] ([CompanyId], [Timestamp]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
CREATE INDEX [IX_AuditLogs_EntityType_EntityId] ON [AuditLogs] ([EntityType], [EntityId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305151921_AddAuditLogsAndAnnouncements'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260305151921_AddAuditLogsAndAnnouncements', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
ALTER TABLE [Companies] ADD [IsComped] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
ALTER TABLE [Companies] ADD [MaxActiveJobsOverride] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
ALTER TABLE [Companies] ADD [MaxCatalogItemsOverride] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
ALTER TABLE [Companies] ADD [MaxCustomersOverride] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
ALTER TABLE [Companies] ADD [MaxJobPhotosOverride] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
ALTER TABLE [Companies] ADD [MaxQuotesOverride] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
ALTER TABLE [Companies] ADD [MaxUsersOverride] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
ALTER TABLE [Companies] ADD [SubscriptionNotes] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-05T15:33:19.1489947Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-05T15:33:19.1489951Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-05T15:33:19.1489953Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305153322_AddCompanyCompedAndOverrides'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260305153322_AddCompanyCompedAndOverrides', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305162820_AddReleaseNotes'
)
BEGIN
CREATE TABLE [ReleaseNotes] (
[Id] int NOT NULL IDENTITY,
[Version] nvarchar(max) NOT NULL,
[Title] nvarchar(max) NOT NULL,
[Body] nvarchar(max) NOT NULL,
[Tag] nvarchar(max) NOT NULL,
[IsPublished] bit NOT NULL,
[ReleasedAt] datetime2 NOT NULL,
[CreatedAt] datetime2 NOT NULL,
[UpdatedAt] datetime2 NULL,
[CreatedByUserId] nvarchar(max) NULL,
[CreatedByUserName] nvarchar(max) NULL,
CONSTRAINT [PK_ReleaseNotes] PRIMARY KEY ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305162820_AddReleaseNotes'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-05T16:28:17.1220446Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305162820_AddReleaseNotes'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-05T16:28:17.1220451Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305162820_AddReleaseNotes'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-05T16:28:17.1220452Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260305162820_AddReleaseNotes'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260305162820_AddReleaseNotes', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306005902_AddNotifyOnNewQuote'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [NotifyOnNewQuote] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306005902_AddNotifyOnNewQuote'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-06T00:58:59.0297641Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306005902_AddNotifyOnNewQuote'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-06T00:58:59.0297648Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306005902_AddNotifyOnNewQuote'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-06T00:58:59.0297650Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306005902_AddNotifyOnNewQuote'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260306005902_AddNotifyOnNewQuote', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
ALTER TABLE [NotificationLogs] ADD [InvoiceId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE TABLE [Invoices] (
[Id] int NOT NULL IDENTITY,
[InvoiceNumber] nvarchar(450) NOT NULL,
[JobId] int NOT NULL,
[CustomerId] int NOT NULL,
[PreparedById] nvarchar(450) NULL,
[Status] int NOT NULL,
[InvoiceDate] datetime2 NOT NULL,
[DueDate] datetime2 NULL,
[SentDate] datetime2 NULL,
[PaidDate] datetime2 NULL,
[SubTotal] decimal(18,2) NOT NULL,
[TaxPercent] decimal(18,2) NOT NULL,
[TaxAmount] decimal(18,2) NOT NULL,
[DiscountAmount] decimal(18,2) NOT NULL,
[Total] decimal(18,2) NOT NULL,
[AmountPaid] decimal(18,2) NOT NULL,
[Notes] nvarchar(max) NULL,
[InternalNotes] nvarchar(max) NULL,
[Terms] nvarchar(max) NULL,
[CustomerPO] 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_Invoices] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Invoices_AspNetUsers_PreparedById] FOREIGN KEY ([PreparedById]) REFERENCES [AspNetUsers] ([Id]) ON DELETE SET NULL,
CONSTRAINT [FK_Invoices_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_Invoices_Customers_CustomerId] FOREIGN KEY ([CustomerId]) REFERENCES [Customers] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_Invoices_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE TABLE [InvoiceItems] (
[Id] int NOT NULL IDENTITY,
[InvoiceId] int NOT NULL,
[SourceJobItemId] int NULL,
[Description] nvarchar(max) NOT NULL,
[Quantity] decimal(18,2) NOT NULL,
[UnitPrice] decimal(18,2) NOT NULL,
[TotalPrice] decimal(18,2) NOT NULL,
[ColorName] 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_InvoiceItems] PRIMARY KEY ([Id]),
CONSTRAINT [FK_InvoiceItems_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_InvoiceItems_Invoices_InvoiceId] FOREIGN KEY ([InvoiceId]) REFERENCES [Invoices] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_InvoiceItems_JobItems_SourceJobItemId] FOREIGN KEY ([SourceJobItemId]) REFERENCES [JobItems] ([Id]) ON DELETE SET NULL
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE TABLE [Payments] (
[Id] int NOT NULL IDENTITY,
[InvoiceId] int NOT NULL,
[Amount] decimal(18,2) NOT NULL,
[PaymentDate] datetime2 NOT NULL,
[PaymentMethod] int NOT NULL,
[Reference] nvarchar(max) NULL,
[Notes] nvarchar(max) NULL,
[RecordedById] 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_Payments] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Payments_AspNetUsers_RecordedById] FOREIGN KEY ([RecordedById]) REFERENCES [AspNetUsers] ([Id]) ON DELETE SET NULL,
CONSTRAINT [FK_Payments_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_Payments_Invoices_InvoiceId] FOREIGN KEY ([InvoiceId]) REFERENCES [Invoices] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-06T01:52:29.1309651Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-06T01:52:29.1309658Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-06T01:52:29.1309659Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_NotificationLogs_InvoiceId] ON [NotificationLogs] ([InvoiceId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_InvoiceItems_CompanyId] ON [InvoiceItems] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_InvoiceItems_InvoiceId] ON [InvoiceItems] ([InvoiceId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_InvoiceItems_SourceJobItemId] ON [InvoiceItems] ([SourceJobItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_Invoices_CompanyId_CustomerId] ON [Invoices] ([CompanyId], [CustomerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_Invoices_CompanyId_DueDate] ON [Invoices] ([CompanyId], [DueDate]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE UNIQUE INDEX [IX_Invoices_CompanyId_InvoiceNumber] ON [Invoices] ([CompanyId], [InvoiceNumber]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE UNIQUE INDEX [IX_Invoices_CompanyId_JobId] ON [Invoices] ([CompanyId], [JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_Invoices_CompanyId_Status] ON [Invoices] ([CompanyId], [Status]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_Invoices_CustomerId] ON [Invoices] ([CustomerId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE UNIQUE INDEX [IX_Invoices_JobId] ON [Invoices] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_Invoices_PreparedById] ON [Invoices] ([PreparedById]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_Payments_CompanyId_PaymentDate] ON [Payments] ([CompanyId], [PaymentDate]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_Payments_InvoiceId] ON [Payments] ([InvoiceId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
CREATE INDEX [IX_Payments_RecordedById] ON [Payments] ([RecordedById]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
ALTER TABLE [NotificationLogs] ADD CONSTRAINT [FK_NotificationLogs_Invoices_InvoiceId] FOREIGN KEY ([InvoiceId]) REFERENCES [Invoices] ([Id]) ON DELETE SET NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306015232_AddInvoicesAndPayments'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260306015232_AddInvoicesAndPayments', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
ALTER TABLE [Suppliers] ADD [CurrentBalance] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
ALTER TABLE [Suppliers] ADD [DefaultExpenseAccountId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
ALTER TABLE [Suppliers] ADD [OpeningBalance] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
ALTER TABLE [Suppliers] ADD [OpeningBalanceDate] datetime2 NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE TABLE [Accounts] (
[Id] int NOT NULL IDENTITY,
[AccountNumber] nvarchar(max) NOT NULL,
[Name] nvarchar(max) NOT NULL,
[AccountType] int NOT NULL,
[AccountSubType] int NOT NULL,
[Description] nvarchar(max) NULL,
[ParentAccountId] int NULL,
[IsSystem] bit NOT NULL,
[IsActive] bit 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_Accounts] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Accounts_Accounts_ParentAccountId] FOREIGN KEY ([ParentAccountId]) REFERENCES [Accounts] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE TABLE [Bills] (
[Id] int NOT NULL IDENTITY,
[BillNumber] nvarchar(max) NOT NULL,
[SupplierInvoiceNumber] nvarchar(max) NULL,
[SupplierId] int NOT NULL,
[APAccountId] int NOT NULL,
[BillDate] datetime2 NOT NULL,
[DueDate] datetime2 NULL,
[Status] int NOT NULL,
[Terms] nvarchar(max) NULL,
[Memo] nvarchar(max) NULL,
[SubTotal] decimal(18,2) NOT NULL,
[TaxPercent] decimal(18,2) NOT NULL,
[TaxAmount] decimal(18,2) NOT NULL,
[Total] decimal(18,2) NOT NULL,
[AmountPaid] decimal(18,2) NOT NULL,
[BalanceDue] 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_Bills] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Bills_Accounts_APAccountId] FOREIGN KEY ([APAccountId]) REFERENCES [Accounts] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_Bills_Suppliers_SupplierId] FOREIGN KEY ([SupplierId]) REFERENCES [Suppliers] ([Id]) ON DELETE CASCADE
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE TABLE [Expenses] (
[Id] int NOT NULL IDENTITY,
[ExpenseNumber] nvarchar(max) NOT NULL,
[Date] datetime2 NOT NULL,
[SupplierId] int NULL,
[ExpenseAccountId] int NOT NULL,
[PaymentAccountId] int NOT NULL,
[JobId] int NULL,
[PaymentMethod] int NOT NULL,
[Amount] decimal(18,2) NOT NULL,
[Memo] nvarchar(max) NULL,
[ReceiptFilePath] 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_Expenses] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Expenses_Accounts_ExpenseAccountId] FOREIGN KEY ([ExpenseAccountId]) REFERENCES [Accounts] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_Expenses_Accounts_PaymentAccountId] FOREIGN KEY ([PaymentAccountId]) REFERENCES [Accounts] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_Expenses_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id]),
CONSTRAINT [FK_Expenses_Suppliers_SupplierId] FOREIGN KEY ([SupplierId]) REFERENCES [Suppliers] ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE TABLE [BillLineItems] (
[Id] int NOT NULL IDENTITY,
[BillId] int NOT NULL,
[AccountId] int NOT NULL,
[JobId] int NULL,
[Description] nvarchar(max) NOT NULL,
[Quantity] decimal(18,2) NOT NULL,
[UnitPrice] decimal(18,2) NOT NULL,
[Amount] decimal(18,2) NOT 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_BillLineItems] PRIMARY KEY ([Id]),
CONSTRAINT [FK_BillLineItems_Accounts_AccountId] FOREIGN KEY ([AccountId]) REFERENCES [Accounts] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_BillLineItems_Bills_BillId] FOREIGN KEY ([BillId]) REFERENCES [Bills] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_BillLineItems_Jobs_JobId] FOREIGN KEY ([JobId]) REFERENCES [Jobs] ([Id])
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE TABLE [BillPayments] (
[Id] int NOT NULL IDENTITY,
[PaymentNumber] nvarchar(max) NOT NULL,
[BillId] int NOT NULL,
[SupplierId] int NOT NULL,
[BankAccountId] int NOT NULL,
[PaymentDate] datetime2 NOT NULL,
[Amount] decimal(18,2) NOT NULL,
[PaymentMethod] int NOT NULL,
[CheckNumber] nvarchar(max) NULL,
[Memo] 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_BillPayments] PRIMARY KEY ([Id]),
CONSTRAINT [FK_BillPayments_Accounts_BankAccountId] FOREIGN KEY ([BankAccountId]) REFERENCES [Accounts] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_BillPayments_Bills_BillId] FOREIGN KEY ([BillId]) REFERENCES [Bills] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_BillPayments_Suppliers_SupplierId] FOREIGN KEY ([SupplierId]) REFERENCES [Suppliers] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-06T14:46:17.1798908Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-06T14:46:17.1798917Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-06T14:46:17.1798919Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_Suppliers_DefaultExpenseAccountId] ON [Suppliers] ([DefaultExpenseAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_Accounts_ParentAccountId] ON [Accounts] ([ParentAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_BillLineItems_AccountId] ON [BillLineItems] ([AccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_BillLineItems_BillId] ON [BillLineItems] ([BillId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_BillLineItems_JobId] ON [BillLineItems] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_BillPayments_BankAccountId] ON [BillPayments] ([BankAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_BillPayments_BillId] ON [BillPayments] ([BillId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_BillPayments_SupplierId] ON [BillPayments] ([SupplierId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_Bills_APAccountId] ON [Bills] ([APAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_Bills_SupplierId] ON [Bills] ([SupplierId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_Expenses_ExpenseAccountId] ON [Expenses] ([ExpenseAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_Expenses_JobId] ON [Expenses] ([JobId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_Expenses_PaymentAccountId] ON [Expenses] ([PaymentAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
CREATE INDEX [IX_Expenses_SupplierId] ON [Expenses] ([SupplierId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
ALTER TABLE [Suppliers] ADD CONSTRAINT [FK_Suppliers_Accounts_DefaultExpenseAccountId] FOREIGN KEY ([DefaultExpenseAccountId]) REFERENCES [Accounts] ([Id]) ON DELETE SET NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260306144620_AddExpenseTracking'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260306144620_AddExpenseTracking', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307025253_AddOvenBatchPricing'
)
BEGIN
ALTER TABLE [Quotes] ADD [OvenBatches] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307025253_AddOvenBatchPricing'
)
BEGIN
ALTER TABLE [Quotes] ADD [OvenCycleMinutes] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307025253_AddOvenBatchPricing'
)
BEGIN
ALTER TABLE [CompanyOperatingCosts] ADD [DefaultOvenCycleMinutes] int NOT NULL DEFAULT 0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307025253_AddOvenBatchPricing'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-07T02:52:50.0213171Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307025253_AddOvenBatchPricing'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-07T02:52:50.0213179Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307025253_AddOvenBatchPricing'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-07T02:52:50.0213180Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307025253_AddOvenBatchPricing'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260307025253_AddOvenBatchPricing', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
ALTER TABLE [JobItems] ADD [CatalogItemId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
ALTER TABLE [JobItems] ADD [IncludePrepCost] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
ALTER TABLE [JobItems] ADD [IsGenericItem] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
ALTER TABLE [JobItems] ADD [IsLaborItem] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
ALTER TABLE [JobItems] ADD [ManualUnitPrice] decimal(18,2) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
ALTER TABLE [JobItems] ADD [SurfaceAreaSqFt] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
CREATE TABLE [JobItemPrepServices] (
[Id] int NOT NULL IDENTITY,
[JobItemId] 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_JobItemPrepServices] PRIMARY KEY ([Id]),
CONSTRAINT [FK_JobItemPrepServices_Companies_CompanyId] FOREIGN KEY ([CompanyId]) REFERENCES [Companies] ([Id]) ON DELETE NO ACTION,
CONSTRAINT [FK_JobItemPrepServices_JobItems_JobItemId] FOREIGN KEY ([JobItemId]) REFERENCES [JobItems] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_JobItemPrepServices_PrepServices_PrepServiceId] FOREIGN KEY ([PrepServiceId]) REFERENCES [PrepServices] ([Id]) ON DELETE NO ACTION
);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-07T04:22:49.7694725Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-07T04:22:49.7694732Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-07T04:22:49.7694733Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
CREATE INDEX [IX_JobItems_CatalogItemId] ON [JobItems] ([CatalogItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
CREATE INDEX [IX_JobItemPrepServices_CompanyId] ON [JobItemPrepServices] ([CompanyId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
CREATE INDEX [IX_JobItemPrepServices_JobItemId] ON [JobItemPrepServices] ([JobItemId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
CREATE INDEX [IX_JobItemPrepServices_PrepServiceId] ON [JobItemPrepServices] ([PrepServiceId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
ALTER TABLE [JobItems] ADD CONSTRAINT [FK_JobItems_CatalogItems_CatalogItemId] FOREIGN KEY ([CatalogItemId]) REFERENCES [CatalogItems] ([Id]) ON DELETE SET NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260307042253_AddJobItemPrepServiceAndFields'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260307042253_AddJobItemPrepServiceAndFields', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
ALTER TABLE [CatalogItems] ADD [CogsAccountId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
ALTER TABLE [CatalogItems] ADD [RevenueAccountId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:25:04.4858995Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:25:04.4859001Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:25:04.4859002Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
CREATE INDEX [IX_CatalogItems_CogsAccountId] ON [CatalogItems] ([CogsAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
CREATE INDEX [IX_CatalogItems_RevenueAccountId] ON [CatalogItems] ([RevenueAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
ALTER TABLE [CatalogItems] ADD CONSTRAINT [FK_CatalogItems_Accounts_CogsAccountId] FOREIGN KEY ([CogsAccountId]) REFERENCES [Accounts] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
ALTER TABLE [CatalogItems] ADD CONSTRAINT [FK_CatalogItems_Accounts_RevenueAccountId] FOREIGN KEY ([RevenueAccountId]) REFERENCES [Accounts] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308032507_AddCatalogItemAccountMapping'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260308032507_AddCatalogItemAccountMapping', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
ALTER TABLE [InventoryItems] ADD [CogsAccountId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
ALTER TABLE [InventoryItems] ADD [InventoryAccountId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:32:08.1164268Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:32:08.1164274Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:32:08.1164275Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
CREATE INDEX [IX_InventoryItems_CogsAccountId] ON [InventoryItems] ([CogsAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
CREATE INDEX [IX_InventoryItems_InventoryAccountId] ON [InventoryItems] ([InventoryAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
ALTER TABLE [InventoryItems] ADD CONSTRAINT [FK_InventoryItems_Accounts_CogsAccountId] FOREIGN KEY ([CogsAccountId]) REFERENCES [Accounts] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
ALTER TABLE [InventoryItems] ADD CONSTRAINT [FK_InventoryItems_Accounts_InventoryAccountId] FOREIGN KEY ([InventoryAccountId]) REFERENCES [Accounts] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033211_AddInventoryItemAccountMapping'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260308033211_AddInventoryItemAccountMapping', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033945_AddInvoiceItemRevenueAccount'
)
BEGIN
ALTER TABLE [InvoiceItems] ADD [RevenueAccountId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033945_AddInvoiceItemRevenueAccount'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:39:41.9745262Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033945_AddInvoiceItemRevenueAccount'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:39:41.9745268Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033945_AddInvoiceItemRevenueAccount'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:39:41.9745293Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033945_AddInvoiceItemRevenueAccount'
)
BEGIN
CREATE INDEX [IX_InvoiceItems_RevenueAccountId] ON [InvoiceItems] ([RevenueAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033945_AddInvoiceItemRevenueAccount'
)
BEGIN
ALTER TABLE [InvoiceItems] ADD CONSTRAINT [FK_InvoiceItems_Accounts_RevenueAccountId] FOREIGN KEY ([RevenueAccountId]) REFERENCES [Accounts] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308033945_AddInvoiceItemRevenueAccount'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260308033945_AddInvoiceItemRevenueAccount', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
ALTER TABLE [Payments] ADD [DepositAccountId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
ALTER TABLE [Invoices] ADD [SalesTaxAccountId] int NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:45:54.4068622Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:45:54.4068628Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T03:45:54.4068630Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
CREATE INDEX [IX_Payments_DepositAccountId] ON [Payments] ([DepositAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
CREATE INDEX [IX_Invoices_SalesTaxAccountId] ON [Invoices] ([SalesTaxAccountId]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
ALTER TABLE [Invoices] ADD CONSTRAINT [FK_Invoices_Accounts_SalesTaxAccountId] FOREIGN KEY ([SalesTaxAccountId]) REFERENCES [Accounts] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
ALTER TABLE [Payments] ADD CONSTRAINT [FK_Payments_Accounts_DepositAccountId] FOREIGN KEY ([DepositAccountId]) REFERENCES [Accounts] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308034557_AddPaymentDepositAndInvoiceSalesTax'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260308034557_AddPaymentDepositAndInvoiceSalesTax', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [BillPayments] DROP CONSTRAINT [FK_BillPayments_Suppliers_SupplierId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [Bills] DROP CONSTRAINT [FK_Bills_Suppliers_SupplierId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [Expenses] DROP CONSTRAINT [FK_Expenses_Suppliers_SupplierId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [InventoryItems] DROP CONSTRAINT [FK_InventoryItems_Suppliers_PrimarySupplierId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [JobItemCoats] DROP CONSTRAINT [FK_JobItemCoats_Suppliers_SupplierId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [QuoteItemCoats] DROP CONSTRAINT [FK_QuoteItemCoats_Suppliers_SupplierId];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[Suppliers]', N'Vendors';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[Vendors].[IX_Suppliers_CompanyId]', N'IX_Vendors_CompanyId', N'INDEX';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[Vendors].[IX_Suppliers_DefaultExpenseAccountId]', N'IX_Vendors_DefaultExpenseAccountId', N'INDEX';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[QuoteItemCoats].[SupplierId]', N'VendorId', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[QuoteItemCoats].[IX_QuoteItemCoats_SupplierId]', N'IX_QuoteItemCoats_VendorId', N'INDEX';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[JobItemCoats].[SupplierId]', N'VendorId', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[JobItemCoats].[IX_JobItemCoats_SupplierId]', N'IX_JobItemCoats_VendorId', N'INDEX';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[InventoryItems].[SupplierPartNumber]', N'VendorPartNumber', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[InventoryItems].[PrimarySupplierId]', N'PrimaryVendorId', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[InventoryItems].[IX_InventoryItems_PrimarySupplierId]', N'IX_InventoryItems_PrimaryVendorId', N'INDEX';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[Expenses].[SupplierId]', N'VendorId', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[Expenses].[IX_Expenses_SupplierId]', N'IX_Expenses_VendorId', N'INDEX';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[Bills].[SupplierInvoiceNumber]', N'VendorInvoiceNumber', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[Bills].[SupplierId]', N'VendorId', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[Bills].[IX_Bills_SupplierId]', N'IX_Bills_VendorId', N'INDEX';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[BillPayments].[SupplierId]', N'VendorId', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[BillPayments].[IX_BillPayments_SupplierId]', N'IX_BillPayments_VendorId', N'INDEX';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC sp_rename N'[AspNetUsers].[CanManageSuppliers]', N'CanManageVendors', N'COLUMN';
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T04:31:35.0987168Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T04:31:35.0987176Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T04:31:35.0987177Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [BillPayments] ADD CONSTRAINT [FK_BillPayments_Vendors_VendorId] FOREIGN KEY ([VendorId]) REFERENCES [Vendors] ([Id]) ON DELETE NO ACTION;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [Bills] ADD CONSTRAINT [FK_Bills_Vendors_VendorId] FOREIGN KEY ([VendorId]) REFERENCES [Vendors] ([Id]) ON DELETE CASCADE;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [Expenses] ADD CONSTRAINT [FK_Expenses_Vendors_VendorId] FOREIGN KEY ([VendorId]) REFERENCES [Vendors] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [InventoryItems] ADD CONSTRAINT [FK_InventoryItems_Vendors_PrimaryVendorId] FOREIGN KEY ([PrimaryVendorId]) REFERENCES [Vendors] ([Id]) ON DELETE SET NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [JobItemCoats] ADD CONSTRAINT [FK_JobItemCoats_Vendors_VendorId] FOREIGN KEY ([VendorId]) REFERENCES [Vendors] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
ALTER TABLE [QuoteItemCoats] ADD CONSTRAINT [FK_QuoteItemCoats_Vendors_VendorId] FOREIGN KEY ([VendorId]) REFERENCES [Vendors] ([Id]);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308043138_RenameSupplierToVendor'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260308043138_RenameSupplierToVendor', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308150847_AddInvoicesAndReportsPermissions'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CanManageInvoices] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308150847_AddInvoicesAndReportsPermissions'
)
BEGIN
ALTER TABLE [AspNetUsers] ADD [CanViewReports] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308150847_AddInvoicesAndReportsPermissions'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T15:08:44.4862369Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308150847_AddInvoicesAndReportsPermissions'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T15:08:44.4862381Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308150847_AddInvoicesAndReportsPermissions'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T15:08:44.4862383Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308150847_AddInvoicesAndReportsPermissions'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260308150847_AddInvoicesAndReportsPermissions', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308155838_AddAccountOpeningBalance'
)
BEGIN
ALTER TABLE [Accounts] ADD [OpeningBalance] decimal(18,2) NOT NULL DEFAULT 0.0;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308155838_AddAccountOpeningBalance'
)
BEGIN
ALTER TABLE [Accounts] ADD [OpeningBalanceDate] datetime2 NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308155838_AddAccountOpeningBalance'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T15:58:34.6413623Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308155838_AddAccountOpeningBalance'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T15:58:34.6413629Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308155838_AddAccountOpeningBalance'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T15:58:34.6413631Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308155838_AddAccountOpeningBalance'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260308155838_AddAccountOpeningBalance', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308195919_AddSetupWizardProgress'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [SetupWizardCompleted] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308195919_AddSetupWizardProgress'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [SetupWizardDoneSteps] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308195919_AddSetupWizardProgress'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [SetupWizardSkippedSteps] nvarchar(max) NULL;
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308195919_AddSetupWizardProgress'
)
BEGIN
ALTER TABLE [CompanyPreferences] ADD [SetupWizardStarted] bit NOT NULL DEFAULT CAST(0 AS bit);
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308195919_AddSetupWizardProgress'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T19:59:16.5982808Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308195919_AddSetupWizardProgress'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T19:59:16.5982817Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308195919_AddSetupWizardProgress'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T19:59:16.5982819Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308195919_AddSetupWizardProgress'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260308195919_AddSetupWizardProgress', N'8.0.11');
END;
GO
COMMIT;
GO
BEGIN TRANSACTION;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308212530_RemoveSandblastingMaskingStepFlags'
)
BEGIN
DECLARE @var58 sysname;
SELECT @var58 = [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'[CompanyPreferences]') AND [c].[name] = N'EnableMaskingStep');
IF @var58 IS NOT NULL EXEC(N'ALTER TABLE [CompanyPreferences] DROP CONSTRAINT [' + @var58 + '];');
ALTER TABLE [CompanyPreferences] DROP COLUMN [EnableMaskingStep];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308212530_RemoveSandblastingMaskingStepFlags'
)
BEGIN
DECLARE @var59 sysname;
SELECT @var59 = [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'[CompanyPreferences]') AND [c].[name] = N'EnableSandblastingStep');
IF @var59 IS NOT NULL EXEC(N'ALTER TABLE [CompanyPreferences] DROP CONSTRAINT [' + @var59 + '];');
ALTER TABLE [CompanyPreferences] DROP COLUMN [EnableSandblastingStep];
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308212530_RemoveSandblastingMaskingStepFlags'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T21:25:27.5883784Z''
WHERE [Id] = 1;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308212530_RemoveSandblastingMaskingStepFlags'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T21:25:27.5883789Z''
WHERE [Id] = 2;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308212530_RemoveSandblastingMaskingStepFlags'
)
BEGIN
EXEC(N'UPDATE [PricingTiers] SET [CreatedAt] = ''2026-03-08T21:25:27.5883791Z''
WHERE [Id] = 3;
SELECT @@ROWCOUNT');
END;
GO
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20260308212530_RemoveSandblastingMaskingStepFlags'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20260308212530_RemoveSandblastingMaskingStepFlags', N'8.0.11');
END;
GO
COMMIT;
GO