using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace PowderCoating.Infrastructure.Migrations { /// public partial class AddCustomItemTemplates : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( name: "CustomItemTemplateId", table: "QuoteItems", type: "int", nullable: true); migrationBuilder.AddColumn( name: "FormulaFieldValuesJson", table: "QuoteItems", type: "nvarchar(max)", nullable: true); migrationBuilder.AddColumn( name: "IsCustomFormulaItem", table: "QuoteItems", type: "bit", nullable: false, defaultValue: false); migrationBuilder.AddColumn( name: "CustomItemTemplateId", table: "JobItems", type: "int", nullable: true); migrationBuilder.AddColumn( name: "FormulaFieldValuesJson", table: "JobItems", type: "nvarchar(max)", nullable: true); migrationBuilder.AddColumn( name: "IsCustomFormulaItem", table: "JobItems", type: "bit", nullable: false, defaultValue: false); migrationBuilder.CreateTable( name: "CustomItemTemplates", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Name = table.Column(type: "nvarchar(max)", nullable: false), Description = table.Column(type: "nvarchar(max)", nullable: true), OutputMode = table.Column(type: "nvarchar(max)", nullable: false), FieldsJson = table.Column(type: "nvarchar(max)", nullable: false), Formula = table.Column(type: "nvarchar(max)", nullable: false), DefaultRate = table.Column(type: "decimal(18,2)", nullable: true), RateLabel = table.Column(type: "nvarchar(max)", nullable: true), Notes = table.Column(type: "nvarchar(max)", nullable: true), DisplayOrder = table.Column(type: "int", nullable: false), IsActive = table.Column(type: "bit", nullable: false), DiagramImagePath = table.Column(type: "nvarchar(max)", nullable: true), CompanyId = table.Column(type: "int", nullable: false), CreatedAt = table.Column(type: "datetime2", nullable: false), UpdatedAt = table.Column(type: "datetime2", nullable: true), CreatedBy = table.Column(type: "nvarchar(max)", nullable: true), UpdatedBy = table.Column(type: "nvarchar(max)", nullable: true), IsDeleted = table.Column(type: "bit", nullable: false), DeletedAt = table.Column(type: "datetime2", nullable: true), DeletedBy = table.Column(type: "nvarchar(max)", nullable: true) }, constraints: table => { table.PrimaryKey("PK_CustomItemTemplates", x => x.Id); }); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 1, column: "CreatedAt", value: new DateTime(2026, 5, 23, 15, 30, 51, 760, DateTimeKind.Utc).AddTicks(9869)); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 2, column: "CreatedAt", value: new DateTime(2026, 5, 23, 15, 30, 51, 760, DateTimeKind.Utc).AddTicks(9876)); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 3, column: "CreatedAt", value: new DateTime(2026, 5, 23, 15, 30, 51, 760, DateTimeKind.Utc).AddTicks(9878)); migrationBuilder.CreateIndex( name: "IX_QuoteItems_CustomItemTemplateId", table: "QuoteItems", column: "CustomItemTemplateId"); migrationBuilder.CreateIndex( name: "IX_JobItems_CustomItemTemplateId", table: "JobItems", column: "CustomItemTemplateId"); migrationBuilder.AddForeignKey( name: "FK_JobItems_CustomItemTemplates_CustomItemTemplateId", table: "JobItems", column: "CustomItemTemplateId", principalTable: "CustomItemTemplates", principalColumn: "Id"); migrationBuilder.AddForeignKey( name: "FK_QuoteItems_CustomItemTemplates_CustomItemTemplateId", table: "QuoteItems", column: "CustomItemTemplateId", principalTable: "CustomItemTemplates", principalColumn: "Id"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( name: "FK_JobItems_CustomItemTemplates_CustomItemTemplateId", table: "JobItems"); migrationBuilder.DropForeignKey( name: "FK_QuoteItems_CustomItemTemplates_CustomItemTemplateId", table: "QuoteItems"); migrationBuilder.DropTable( name: "CustomItemTemplates"); migrationBuilder.DropIndex( name: "IX_QuoteItems_CustomItemTemplateId", table: "QuoteItems"); migrationBuilder.DropIndex( name: "IX_JobItems_CustomItemTemplateId", table: "JobItems"); migrationBuilder.DropColumn( name: "CustomItemTemplateId", table: "QuoteItems"); migrationBuilder.DropColumn( name: "FormulaFieldValuesJson", table: "QuoteItems"); migrationBuilder.DropColumn( name: "IsCustomFormulaItem", table: "QuoteItems"); migrationBuilder.DropColumn( name: "CustomItemTemplateId", table: "JobItems"); migrationBuilder.DropColumn( name: "FormulaFieldValuesJson", table: "JobItems"); migrationBuilder.DropColumn( name: "IsCustomFormulaItem", table: "JobItems"); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 1, column: "CreatedAt", value: new DateTime(2026, 5, 23, 13, 51, 6, 293, DateTimeKind.Utc).AddTicks(4300)); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 2, column: "CreatedAt", value: new DateTime(2026, 5, 23, 13, 51, 6, 293, DateTimeKind.Utc).AddTicks(4313)); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 3, column: "CreatedAt", value: new DateTime(2026, 5, 23, 13, 51, 6, 293, DateTimeKind.Utc).AddTicks(4315)); } } }