mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 07:13:12 +00:00
85 lines
3.8 KiB
C#
85 lines
3.8 KiB
C#
|
|
using Data.SeaHavenIndustries;
|
||
|
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||
|
|
|
||
|
|
#nullable disable
|
||
|
|
|
||
|
|
namespace Data.SeaHavenIndustries.Migrations
|
||
|
|
{
|
||
|
|
/// <summary>
|
||
|
|
/// Replaces SH-249's provisional prototype vocabulary with the 14-item
|
||
|
|
/// client-confirmed taxonomy recorded in SH-247.
|
||
|
|
/// </summary>
|
||
|
|
[DbContext(typeof(ApplicationDbContext))]
|
||
|
|
[Migration("20260820150000_SH247_CanonicalTradeTaxonomy")]
|
||
|
|
public partial class SH247_CanonicalTradeTaxonomy : Migration
|
||
|
|
{
|
||
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||
|
|
{
|
||
|
|
UpdateTrade(migrationBuilder, 1, "Plumbing & Water Systems", 1);
|
||
|
|
UpdateTrade(migrationBuilder, 2, "Electrical", 2);
|
||
|
|
UpdateTrade(migrationBuilder, 3, "Doors & Docks", 3);
|
||
|
|
UpdateTrade(migrationBuilder, 4, "Fire & Life Safety", 4);
|
||
|
|
UpdateTrade(migrationBuilder, 5, "Security & Locksmith", 5);
|
||
|
|
UpdateTrade(migrationBuilder, 6, "HVAC", 6);
|
||
|
|
UpdateTrade(migrationBuilder, 7, "Exterior & Grounds", 7);
|
||
|
|
UpdateTrade(migrationBuilder, 8, "Building Envelope", 8);
|
||
|
|
UpdateTrade(migrationBuilder, 9, "Interior Finishes", 9);
|
||
|
|
UpdateTrade(migrationBuilder, 10, "Signage", 10);
|
||
|
|
|
||
|
|
migrationBuilder.InsertData(
|
||
|
|
table: "Trades",
|
||
|
|
columns: new[] { "Id", "Name", "NormalizedName", "SortOrder", "IsActive" },
|
||
|
|
columnTypes: new[] { "int", "nvarchar(128)", "nvarchar(128)", "int", "bit" },
|
||
|
|
values: new object[,]
|
||
|
|
{
|
||
|
|
{ 11, "Conveyance & MHE", "conveyance & mhe", 11, true },
|
||
|
|
{ 12, "Janitorial", "janitorial", 12, true },
|
||
|
|
{ 13, "Specialty", "specialty", 13, true },
|
||
|
|
{ 14, "General Building & Handyman", "general building & handyman", 14, true }
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||
|
|
{
|
||
|
|
DeleteTrade(migrationBuilder, 11);
|
||
|
|
DeleteTrade(migrationBuilder, 12);
|
||
|
|
DeleteTrade(migrationBuilder, 13);
|
||
|
|
DeleteTrade(migrationBuilder, 14);
|
||
|
|
|
||
|
|
// Free the HVAC normalized key before restoring it to row 3.
|
||
|
|
UpdateTrade(migrationBuilder, 6, "Roofing", 6);
|
||
|
|
UpdateTrade(migrationBuilder, 1, "Plumbing", 1);
|
||
|
|
UpdateTrade(migrationBuilder, 2, "Electrical", 2);
|
||
|
|
UpdateTrade(migrationBuilder, 3, "HVAC", 3);
|
||
|
|
UpdateTrade(migrationBuilder, 4, "Fire/Life Safety", 4);
|
||
|
|
UpdateTrade(migrationBuilder, 5, "General", 5);
|
||
|
|
UpdateTrade(migrationBuilder, 7, "Janitorial", 7);
|
||
|
|
UpdateTrade(migrationBuilder, 8, "Painting", 8);
|
||
|
|
UpdateTrade(migrationBuilder, 9, "Locksmith", 9);
|
||
|
|
UpdateTrade(migrationBuilder, 10, "Carpentry", 10);
|
||
|
|
}
|
||
|
|
|
||
|
|
private static void UpdateTrade(MigrationBuilder migrationBuilder, int id, string name, int sortOrder)
|
||
|
|
{
|
||
|
|
migrationBuilder.UpdateData(
|
||
|
|
table: "Trades",
|
||
|
|
keyColumns: new[] { "Id" },
|
||
|
|
keyColumnTypes: new[] { "int" },
|
||
|
|
keyValues: new object[] { id },
|
||
|
|
columns: new[] { "Name", "NormalizedName", "SortOrder", "IsActive" },
|
||
|
|
columnTypes: new[] { "nvarchar(128)", "nvarchar(128)", "int", "bit" },
|
||
|
|
values: new object[] { name, TradeCatalog.Normalize(name), sortOrder, true });
|
||
|
|
}
|
||
|
|
|
||
|
|
private static void DeleteTrade(MigrationBuilder migrationBuilder, int id)
|
||
|
|
{
|
||
|
|
migrationBuilder.DeleteData(
|
||
|
|
table: "Trades",
|
||
|
|
keyColumns: new[] { "Id" },
|
||
|
|
keyColumnTypes: new[] { "int" },
|
||
|
|
keyValues: new object[] { id });
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|