using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace PowderCoating.Infrastructure.Migrations { /// public partial class AddVendorCredits : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "VendorCredits", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), CreditNumber = table.Column(type: "nvarchar(max)", nullable: false), VendorId = table.Column(type: "int", nullable: false), APAccountId = table.Column(type: "int", nullable: false), CreditDate = table.Column(type: "datetime2", nullable: false), Status = table.Column(type: "int", nullable: false), Total = table.Column(type: "decimal(18,2)", nullable: false), RemainingAmount = table.Column(type: "decimal(18,2)", nullable: false), Memo = 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_VendorCredits", x => x.Id); table.ForeignKey( name: "FK_VendorCredits_Accounts_APAccountId", column: x => x.APAccountId, principalTable: "Accounts", principalColumn: "Id", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_VendorCredits_Vendors_VendorId", column: x => x.VendorId, principalTable: "Vendors", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "VendorCreditApplications", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), VendorCreditId = table.Column(type: "int", nullable: false), BillId = table.Column(type: "int", nullable: false), Amount = table.Column(type: "decimal(18,2)", nullable: false), AppliedDate = table.Column(type: "datetime2", nullable: false), 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_VendorCreditApplications", x => x.Id); table.ForeignKey( name: "FK_VendorCreditApplications_Bills_BillId", column: x => x.BillId, principalTable: "Bills", principalColumn: "Id", onDelete: ReferentialAction.NoAction); table.ForeignKey( name: "FK_VendorCreditApplications_VendorCredits_VendorCreditId", column: x => x.VendorCreditId, principalTable: "VendorCredits", principalColumn: "Id", onDelete: ReferentialAction.NoAction); }); migrationBuilder.CreateTable( name: "VendorCreditLineItems", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), VendorCreditId = table.Column(type: "int", nullable: false), AccountId = table.Column(type: "int", nullable: true), Description = table.Column(type: "nvarchar(max)", nullable: false), Amount = table.Column(type: "decimal(18,2)", nullable: false), 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_VendorCreditLineItems", x => x.Id); table.ForeignKey( name: "FK_VendorCreditLineItems_Accounts_AccountId", column: x => x.AccountId, principalTable: "Accounts", principalColumn: "Id", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_VendorCreditLineItems_VendorCredits_VendorCreditId", column: x => x.VendorCreditId, principalTable: "VendorCredits", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 1, column: "CreatedAt", value: new DateTime(2026, 5, 10, 3, 58, 27, 360, DateTimeKind.Utc).AddTicks(6994)); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 2, column: "CreatedAt", value: new DateTime(2026, 5, 10, 3, 58, 27, 360, DateTimeKind.Utc).AddTicks(7001)); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 3, column: "CreatedAt", value: new DateTime(2026, 5, 10, 3, 58, 27, 360, DateTimeKind.Utc).AddTicks(7003)); migrationBuilder.CreateIndex( name: "IX_VendorCreditApplications_BillId", table: "VendorCreditApplications", column: "BillId"); migrationBuilder.CreateIndex( name: "IX_VendorCreditApplications_VendorCreditId", table: "VendorCreditApplications", column: "VendorCreditId"); migrationBuilder.CreateIndex( name: "IX_VendorCreditLineItems_AccountId", table: "VendorCreditLineItems", column: "AccountId"); migrationBuilder.CreateIndex( name: "IX_VendorCreditLineItems_VendorCreditId", table: "VendorCreditLineItems", column: "VendorCreditId"); migrationBuilder.CreateIndex( name: "IX_VendorCredits_APAccountId", table: "VendorCredits", column: "APAccountId"); migrationBuilder.CreateIndex( name: "IX_VendorCredits_VendorId", table: "VendorCredits", column: "VendorId"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "VendorCreditApplications"); migrationBuilder.DropTable( name: "VendorCreditLineItems"); migrationBuilder.DropTable( name: "VendorCredits"); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 1, column: "CreatedAt", value: new DateTime(2026, 5, 10, 3, 45, 31, 524, DateTimeKind.Utc).AddTicks(9350)); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 2, column: "CreatedAt", value: new DateTime(2026, 5, 10, 3, 45, 31, 524, DateTimeKind.Utc).AddTicks(9357)); migrationBuilder.UpdateData( table: "PricingTiers", keyColumn: "Id", keyValue: 3, column: "CreatedAt", value: new DateTime(2026, 5, 10, 3, 45, 31, 524, DateTimeKind.Utc).AddTicks(9359)); } } }