From 60fecd18b767ef6bc517040b44f7e06f37070e3e Mon Sep 17 00:00:00 2001 From: Timothy Date: Thu, 23 Jul 2026 08:18:15 +0200 Subject: [PATCH] chore(392): regenerate migration + OpenAPI + decisions catalog after rebase onto main MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rebase onto origin/main (which merged #74's ChannelGraphicsElement migration) left the PadToNearestMinute migration's embedded Designer.cs model snapshot stale — it still reflected the pre-#74 model, so EF's diff against it produced an empty Up()/Down() when naively regenerated. Reset TvContextModelSnapshot.cs to origin/main's true post-#74 state, then re-ran scripts/add-migration.sh so the migration's Designer.cs correctly folds in ChannelGraphicsElement and the migration's Up() adds only the PadToNearestMinute column. Verified has-pending-model-changes is clean for both providers. OpenAPI (v1.json/v1.d.ts/endpoint-index.md) and docs/decisions/README.md regenerated identically to the auto-merged state, so nothing to commit there — confirmed both padToNearestMinute and #74's graphics-elements endpoints/decision key are present. Stripped a UTF-8 BOM this dotnet-ef/dotnet-format toolchain wrote into the regenerated migration + snapshot files (known BOM trap, ersatztv#311). Co-Authored-By: Claude Opus 4.8 (1M context) --- ...amSchedule_PadToNearestMinute.Designer.cs} | 40 ++++++++++++++++++- ...Add_ProgramSchedule_PadToNearestMinute.cs} | 0 ...amSchedule_PadToNearestMinute.Designer.cs} | 40 ++++++++++++++++++- ...Add_ProgramSchedule_PadToNearestMinute.cs} | 0 4 files changed, 78 insertions(+), 2 deletions(-) rename ErsatzTV.Infrastructure.MySql/Migrations/{20260722194743_Add_ProgramSchedule_PadToNearestMinute.Designer.cs => 20260723061238_Add_ProgramSchedule_PadToNearestMinute.Designer.cs} (99%) rename ErsatzTV.Infrastructure.MySql/Migrations/{20260722194743_Add_ProgramSchedule_PadToNearestMinute.cs => 20260723061238_Add_ProgramSchedule_PadToNearestMinute.cs} (100%) rename ErsatzTV.Infrastructure.Sqlite/Migrations/{20260722194624_Add_ProgramSchedule_PadToNearestMinute.Designer.cs => 20260723061139_Add_ProgramSchedule_PadToNearestMinute.Designer.cs} (99%) rename ErsatzTV.Infrastructure.Sqlite/Migrations/{20260722194624_Add_ProgramSchedule_PadToNearestMinute.cs => 20260723061139_Add_ProgramSchedule_PadToNearestMinute.cs} (100%) diff --git a/ErsatzTV.Infrastructure.MySql/Migrations/20260722194743_Add_ProgramSchedule_PadToNearestMinute.Designer.cs b/ErsatzTV.Infrastructure.MySql/Migrations/20260723061238_Add_ProgramSchedule_PadToNearestMinute.Designer.cs similarity index 99% rename from ErsatzTV.Infrastructure.MySql/Migrations/20260722194743_Add_ProgramSchedule_PadToNearestMinute.Designer.cs rename to ErsatzTV.Infrastructure.MySql/Migrations/20260723061238_Add_ProgramSchedule_PadToNearestMinute.Designer.cs index cbe30639b..d2e6b1d1a 100644 --- a/ErsatzTV.Infrastructure.MySql/Migrations/20260722194743_Add_ProgramSchedule_PadToNearestMinute.Designer.cs +++ b/ErsatzTV.Infrastructure.MySql/Migrations/20260723061238_Add_ProgramSchedule_PadToNearestMinute.Designer.cs @@ -12,7 +12,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace ErsatzTV.Infrastructure.MySql.Migrations { [DbContext(typeof(TvContext))] - [Migration("20260722194743_Add_ProgramSchedule_PadToNearestMinute")] + [Migration("20260723061238_Add_ProgramSchedule_PadToNearestMinute")] partial class Add_ProgramSchedule_PadToNearestMinute { /// @@ -406,6 +406,21 @@ namespace ErsatzTV.Infrastructure.MySql.Migrations b.ToTable("Channel", (string)null); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.ChannelGraphicsElement", b => + { + b.Property("ChannelId") + .HasColumnType("int"); + + b.Property("GraphicsElementId") + .HasColumnType("int"); + + b.HasKey("ChannelId", "GraphicsElementId"); + + b.HasIndex("GraphicsElementId"); + + b.ToTable("ChannelGraphicsElement"); + }); + modelBuilder.Entity("ErsatzTV.Core.Domain.ChannelTemplate", b => { b.Property("Id") @@ -4739,6 +4754,25 @@ namespace ErsatzTV.Infrastructure.MySql.Migrations b.Navigation("Watermark"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.ChannelGraphicsElement", b => + { + b.HasOne("ErsatzTV.Core.Domain.Channel", "Channel") + .WithMany("ChannelGraphicsElements") + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ErsatzTV.Core.Domain.GraphicsElement", "GraphicsElement") + .WithMany("ChannelGraphicsElements") + .HasForeignKey("GraphicsElementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + + b.Navigation("GraphicsElement"); + }); + modelBuilder.Entity("ErsatzTV.Core.Domain.ChannelTemplate", b => { b.HasOne("ErsatzTV.Core.Domain.FFmpegProfile", "FFmpegProfile") @@ -6784,6 +6818,8 @@ namespace ErsatzTV.Infrastructure.MySql.Migrations { b.Navigation("Artwork"); + b.Navigation("ChannelGraphicsElements"); + b.Navigation("Playouts"); }); @@ -6830,6 +6866,8 @@ namespace ErsatzTV.Infrastructure.MySql.Migrations { b.Navigation("BlockItemGraphicsElements"); + b.Navigation("ChannelGraphicsElements"); + b.Navigation("DecoGraphicsElements"); b.Navigation("PlayoutItemGraphicsElements"); diff --git a/ErsatzTV.Infrastructure.MySql/Migrations/20260722194743_Add_ProgramSchedule_PadToNearestMinute.cs b/ErsatzTV.Infrastructure.MySql/Migrations/20260723061238_Add_ProgramSchedule_PadToNearestMinute.cs similarity index 100% rename from ErsatzTV.Infrastructure.MySql/Migrations/20260722194743_Add_ProgramSchedule_PadToNearestMinute.cs rename to ErsatzTV.Infrastructure.MySql/Migrations/20260723061238_Add_ProgramSchedule_PadToNearestMinute.cs diff --git a/ErsatzTV.Infrastructure.Sqlite/Migrations/20260722194624_Add_ProgramSchedule_PadToNearestMinute.Designer.cs b/ErsatzTV.Infrastructure.Sqlite/Migrations/20260723061139_Add_ProgramSchedule_PadToNearestMinute.Designer.cs similarity index 99% rename from ErsatzTV.Infrastructure.Sqlite/Migrations/20260722194624_Add_ProgramSchedule_PadToNearestMinute.Designer.cs rename to ErsatzTV.Infrastructure.Sqlite/Migrations/20260723061139_Add_ProgramSchedule_PadToNearestMinute.Designer.cs index 18ec70c18..0ae06b798 100644 --- a/ErsatzTV.Infrastructure.Sqlite/Migrations/20260722194624_Add_ProgramSchedule_PadToNearestMinute.Designer.cs +++ b/ErsatzTV.Infrastructure.Sqlite/Migrations/20260723061139_Add_ProgramSchedule_PadToNearestMinute.Designer.cs @@ -11,7 +11,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace ErsatzTV.Infrastructure.Sqlite.Migrations { [DbContext(typeof(TvContext))] - [Migration("20260722194624_Add_ProgramSchedule_PadToNearestMinute")] + [Migration("20260723061139_Add_ProgramSchedule_PadToNearestMinute")] partial class Add_ProgramSchedule_PadToNearestMinute { /// @@ -393,6 +393,21 @@ namespace ErsatzTV.Infrastructure.Sqlite.Migrations b.ToTable("Channel", (string)null); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.ChannelGraphicsElement", b => + { + b.Property("ChannelId") + .HasColumnType("INTEGER"); + + b.Property("GraphicsElementId") + .HasColumnType("INTEGER"); + + b.HasKey("ChannelId", "GraphicsElementId"); + + b.HasIndex("GraphicsElementId"); + + b.ToTable("ChannelGraphicsElement"); + }); + modelBuilder.Entity("ErsatzTV.Core.Domain.ChannelTemplate", b => { b.Property("Id") @@ -4564,6 +4579,25 @@ namespace ErsatzTV.Infrastructure.Sqlite.Migrations b.Navigation("Watermark"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.ChannelGraphicsElement", b => + { + b.HasOne("ErsatzTV.Core.Domain.Channel", "Channel") + .WithMany("ChannelGraphicsElements") + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ErsatzTV.Core.Domain.GraphicsElement", "GraphicsElement") + .WithMany("ChannelGraphicsElements") + .HasForeignKey("GraphicsElementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Channel"); + + b.Navigation("GraphicsElement"); + }); + modelBuilder.Entity("ErsatzTV.Core.Domain.ChannelTemplate", b => { b.HasOne("ErsatzTV.Core.Domain.FFmpegProfile", "FFmpegProfile") @@ -6609,6 +6643,8 @@ namespace ErsatzTV.Infrastructure.Sqlite.Migrations { b.Navigation("Artwork"); + b.Navigation("ChannelGraphicsElements"); + b.Navigation("Playouts"); }); @@ -6655,6 +6691,8 @@ namespace ErsatzTV.Infrastructure.Sqlite.Migrations { b.Navigation("BlockItemGraphicsElements"); + b.Navigation("ChannelGraphicsElements"); + b.Navigation("DecoGraphicsElements"); b.Navigation("PlayoutItemGraphicsElements"); diff --git a/ErsatzTV.Infrastructure.Sqlite/Migrations/20260722194624_Add_ProgramSchedule_PadToNearestMinute.cs b/ErsatzTV.Infrastructure.Sqlite/Migrations/20260723061139_Add_ProgramSchedule_PadToNearestMinute.cs similarity index 100% rename from ErsatzTV.Infrastructure.Sqlite/Migrations/20260722194624_Add_ProgramSchedule_PadToNearestMinute.cs rename to ErsatzTV.Infrastructure.Sqlite/Migrations/20260723061139_Add_ProgramSchedule_PadToNearestMinute.cs