using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace PowderCoating.Infrastructure.Migrations
{
///
public partial class RenameSupplierToVendor : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
// Drop all foreign keys that reference the old Suppliers table
migrationBuilder.DropForeignKey(
name: "FK_BillPayments_Suppliers_SupplierId",
table: "BillPayments");
migrationBuilder.DropForeignKey(
name: "FK_Bills_Suppliers_SupplierId",
table: "Bills");
migrationBuilder.DropForeignKey(
name: "FK_Expenses_Suppliers_SupplierId",
table: "Expenses");
migrationBuilder.DropForeignKey(
name: "FK_InventoryItems_Suppliers_PrimarySupplierId",
table: "InventoryItems");
migrationBuilder.DropForeignKey(
name: "FK_JobItemCoats_Suppliers_SupplierId",
table: "JobItemCoats");
migrationBuilder.DropForeignKey(
name: "FK_QuoteItemCoats_Suppliers_SupplierId",
table: "QuoteItemCoats");
// Rename the table (preserves all data)
migrationBuilder.RenameTable(
name: "Suppliers",
newName: "Vendors");
// Rename indexes on the Vendors table
migrationBuilder.RenameIndex(
name: "IX_Suppliers_CompanyId",
table: "Vendors",
newName: "IX_Vendors_CompanyId");
migrationBuilder.RenameIndex(
name: "IX_Suppliers_DefaultExpenseAccountId",
table: "Vendors",
newName: "IX_Vendors_DefaultExpenseAccountId");
// Rename columns on child tables
migrationBuilder.RenameColumn(
name: "SupplierId",
table: "QuoteItemCoats",
newName: "VendorId");
migrationBuilder.RenameIndex(
name: "IX_QuoteItemCoats_SupplierId",
table: "QuoteItemCoats",
newName: "IX_QuoteItemCoats_VendorId");
migrationBuilder.RenameColumn(
name: "SupplierId",
table: "JobItemCoats",
newName: "VendorId");
migrationBuilder.RenameIndex(
name: "IX_JobItemCoats_SupplierId",
table: "JobItemCoats",
newName: "IX_JobItemCoats_VendorId");
migrationBuilder.RenameColumn(
name: "SupplierPartNumber",
table: "InventoryItems",
newName: "VendorPartNumber");
migrationBuilder.RenameColumn(
name: "PrimarySupplierId",
table: "InventoryItems",
newName: "PrimaryVendorId");
migrationBuilder.RenameIndex(
name: "IX_InventoryItems_PrimarySupplierId",
table: "InventoryItems",
newName: "IX_InventoryItems_PrimaryVendorId");
migrationBuilder.RenameColumn(
name: "SupplierId",
table: "Expenses",
newName: "VendorId");
migrationBuilder.RenameIndex(
name: "IX_Expenses_SupplierId",
table: "Expenses",
newName: "IX_Expenses_VendorId");
migrationBuilder.RenameColumn(
name: "SupplierInvoiceNumber",
table: "Bills",
newName: "VendorInvoiceNumber");
migrationBuilder.RenameColumn(
name: "SupplierId",
table: "Bills",
newName: "VendorId");
migrationBuilder.RenameIndex(
name: "IX_Bills_SupplierId",
table: "Bills",
newName: "IX_Bills_VendorId");
migrationBuilder.RenameColumn(
name: "SupplierId",
table: "BillPayments",
newName: "VendorId");
migrationBuilder.RenameIndex(
name: "IX_BillPayments_SupplierId",
table: "BillPayments",
newName: "IX_BillPayments_VendorId");
// Rename the user permission column
migrationBuilder.RenameColumn(
name: "CanManageSuppliers",
table: "AspNetUsers",
newName: "CanManageVendors");
migrationBuilder.UpdateData(
table: "PricingTiers",
keyColumn: "Id",
keyValue: 1,
column: "CreatedAt",
value: new DateTime(2026, 3, 8, 4, 31, 35, 98, DateTimeKind.Utc).AddTicks(7168));
migrationBuilder.UpdateData(
table: "PricingTiers",
keyColumn: "Id",
keyValue: 2,
column: "CreatedAt",
value: new DateTime(2026, 3, 8, 4, 31, 35, 98, DateTimeKind.Utc).AddTicks(7176));
migrationBuilder.UpdateData(
table: "PricingTiers",
keyColumn: "Id",
keyValue: 3,
column: "CreatedAt",
value: new DateTime(2026, 3, 8, 4, 31, 35, 98, DateTimeKind.Utc).AddTicks(7177));
// Re-add foreign keys pointing to the renamed Vendors table
migrationBuilder.AddForeignKey(
name: "FK_BillPayments_Vendors_VendorId",
table: "BillPayments",
column: "VendorId",
principalTable: "Vendors",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Bills_Vendors_VendorId",
table: "Bills",
column: "VendorId",
principalTable: "Vendors",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Expenses_Vendors_VendorId",
table: "Expenses",
column: "VendorId",
principalTable: "Vendors",
principalColumn: "Id");
migrationBuilder.AddForeignKey(
name: "FK_InventoryItems_Vendors_PrimaryVendorId",
table: "InventoryItems",
column: "PrimaryVendorId",
principalTable: "Vendors",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_JobItemCoats_Vendors_VendorId",
table: "JobItemCoats",
column: "VendorId",
principalTable: "Vendors",
principalColumn: "Id");
migrationBuilder.AddForeignKey(
name: "FK_QuoteItemCoats_Vendors_VendorId",
table: "QuoteItemCoats",
column: "VendorId",
principalTable: "Vendors",
principalColumn: "Id");
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
// Drop foreign keys pointing to Vendors
migrationBuilder.DropForeignKey(
name: "FK_BillPayments_Vendors_VendorId",
table: "BillPayments");
migrationBuilder.DropForeignKey(
name: "FK_Bills_Vendors_VendorId",
table: "Bills");
migrationBuilder.DropForeignKey(
name: "FK_Expenses_Vendors_VendorId",
table: "Expenses");
migrationBuilder.DropForeignKey(
name: "FK_InventoryItems_Vendors_PrimaryVendorId",
table: "InventoryItems");
migrationBuilder.DropForeignKey(
name: "FK_JobItemCoats_Vendors_VendorId",
table: "JobItemCoats");
migrationBuilder.DropForeignKey(
name: "FK_QuoteItemCoats_Vendors_VendorId",
table: "QuoteItemCoats");
// Rename Vendors table back to Suppliers
migrationBuilder.RenameTable(
name: "Vendors",
newName: "Suppliers");
migrationBuilder.RenameIndex(
name: "IX_Vendors_CompanyId",
table: "Suppliers",
newName: "IX_Suppliers_CompanyId");
migrationBuilder.RenameIndex(
name: "IX_Vendors_DefaultExpenseAccountId",
table: "Suppliers",
newName: "IX_Suppliers_DefaultExpenseAccountId");
migrationBuilder.RenameColumn(
name: "VendorId",
table: "QuoteItemCoats",
newName: "SupplierId");
migrationBuilder.RenameIndex(
name: "IX_QuoteItemCoats_VendorId",
table: "QuoteItemCoats",
newName: "IX_QuoteItemCoats_SupplierId");
migrationBuilder.RenameColumn(
name: "VendorId",
table: "JobItemCoats",
newName: "SupplierId");
migrationBuilder.RenameIndex(
name: "IX_JobItemCoats_VendorId",
table: "JobItemCoats",
newName: "IX_JobItemCoats_SupplierId");
migrationBuilder.RenameColumn(
name: "VendorPartNumber",
table: "InventoryItems",
newName: "SupplierPartNumber");
migrationBuilder.RenameColumn(
name: "PrimaryVendorId",
table: "InventoryItems",
newName: "PrimarySupplierId");
migrationBuilder.RenameIndex(
name: "IX_InventoryItems_PrimaryVendorId",
table: "InventoryItems",
newName: "IX_InventoryItems_PrimarySupplierId");
migrationBuilder.RenameColumn(
name: "VendorId",
table: "Expenses",
newName: "SupplierId");
migrationBuilder.RenameIndex(
name: "IX_Expenses_VendorId",
table: "Expenses",
newName: "IX_Expenses_SupplierId");
migrationBuilder.RenameColumn(
name: "VendorInvoiceNumber",
table: "Bills",
newName: "SupplierInvoiceNumber");
migrationBuilder.RenameColumn(
name: "VendorId",
table: "Bills",
newName: "SupplierId");
migrationBuilder.RenameIndex(
name: "IX_Bills_VendorId",
table: "Bills",
newName: "IX_Bills_SupplierId");
migrationBuilder.RenameColumn(
name: "VendorId",
table: "BillPayments",
newName: "SupplierId");
migrationBuilder.RenameIndex(
name: "IX_BillPayments_VendorId",
table: "BillPayments",
newName: "IX_BillPayments_SupplierId");
migrationBuilder.RenameColumn(
name: "CanManageVendors",
table: "AspNetUsers",
newName: "CanManageSuppliers");
migrationBuilder.UpdateData(
table: "PricingTiers",
keyColumn: "Id",
keyValue: 1,
column: "CreatedAt",
value: new DateTime(2026, 3, 8, 3, 45, 54, 406, DateTimeKind.Utc).AddTicks(8622));
migrationBuilder.UpdateData(
table: "PricingTiers",
keyColumn: "Id",
keyValue: 2,
column: "CreatedAt",
value: new DateTime(2026, 3, 8, 3, 45, 54, 406, DateTimeKind.Utc).AddTicks(8628));
migrationBuilder.UpdateData(
table: "PricingTiers",
keyColumn: "Id",
keyValue: 3,
column: "CreatedAt",
value: new DateTime(2026, 3, 8, 3, 45, 54, 406, DateTimeKind.Utc).AddTicks(8630));
// Re-add foreign keys pointing back to Suppliers
migrationBuilder.AddForeignKey(
name: "FK_BillPayments_Suppliers_SupplierId",
table: "BillPayments",
column: "SupplierId",
principalTable: "Suppliers",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Bills_Suppliers_SupplierId",
table: "Bills",
column: "SupplierId",
principalTable: "Suppliers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Expenses_Suppliers_SupplierId",
table: "Expenses",
column: "SupplierId",
principalTable: "Suppliers",
principalColumn: "Id");
migrationBuilder.AddForeignKey(
name: "FK_InventoryItems_Suppliers_PrimarySupplierId",
table: "InventoryItems",
column: "PrimarySupplierId",
principalTable: "Suppliers",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_JobItemCoats_Suppliers_SupplierId",
table: "JobItemCoats",
column: "SupplierId",
principalTable: "Suppliers",
principalColumn: "Id");
migrationBuilder.AddForeignKey(
name: "FK_QuoteItemCoats_Suppliers_SupplierId",
table: "QuoteItemCoats",
column: "SupplierId",
principalTable: "Suppliers",
principalColumn: "Id");
}
}
}