using JobTrackerApi.Data; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace JobTrackerApi.Migrations; [DbContext(typeof(JobTrackerContext))] [Migration("20261025090000_AddCoverLetterDocumentDesign")] public sealed class AddCoverLetterDocumentDesign : Migration { protected override void Up(MigrationBuilder migrationBuilder) { var text = ActiveProvider.Contains("MySql", StringComparison.OrdinalIgnoreCase) ? "longtext" : "TEXT"; migrationBuilder.AddColumn(name: "CoverLetterDocumentSettingsJson", table: "JobApplications", type: text, nullable: true); migrationBuilder.AddColumn(name: "DocumentSettingsJson", table: "CoverLetterVersions", type: text, nullable: true); migrationBuilder.AddColumn(name: "CoverLetterDocumentSettingsJson", table: "SubmittedApplicationPackages", type: text, nullable: true); migrationBuilder.AddColumn(name: "RenderedCoverLetterHtml", table: "SubmittedApplicationPackages", type: text, nullable: true); } protected override void Down(MigrationBuilder migrationBuilder) { foreach (var (table, column) in new[] { ("JobApplications", "CoverLetterDocumentSettingsJson"), ("CoverLetterVersions", "DocumentSettingsJson"), ("SubmittedApplicationPackages", "CoverLetterDocumentSettingsJson"), ("SubmittedApplicationPackages", "RenderedCoverLetterHtml"), }) { if (ActiveProvider.Contains("Sqlite", StringComparison.OrdinalIgnoreCase)) migrationBuilder.Sql($"ALTER TABLE \"{table}\" DROP COLUMN \"{column}\";"); else migrationBuilder.DropColumn(name: column, table: table); } } }