diff --git a/ErsatzTV.Application/MediaCards/Queries/GetCollectionCards.cs b/ErsatzTV.Application/MediaCards/Queries/GetCollectionCards.cs index cad08a468..210276295 100644 --- a/ErsatzTV.Application/MediaCards/Queries/GetCollectionCards.cs +++ b/ErsatzTV.Application/MediaCards/Queries/GetCollectionCards.cs @@ -4,6 +4,5 @@ using MediatR; namespace ErsatzTV.Application.MediaCards.Queries { - public record GetCollectionCards - (int Id) : IRequest>; + public record GetCollectionCards(int Id) : IRequest>; } diff --git a/ErsatzTV.Application/MediaCards/Queries/GetCollectionCardsHandler.cs b/ErsatzTV.Application/MediaCards/Queries/GetCollectionCardsHandler.cs index 018745e90..babaf6cc5 100644 --- a/ErsatzTV.Application/MediaCards/Queries/GetCollectionCardsHandler.cs +++ b/ErsatzTV.Application/MediaCards/Queries/GetCollectionCardsHandler.cs @@ -11,15 +11,15 @@ namespace ErsatzTV.Application.MediaCards.Queries public class GetCollectionCardsHandler : IRequestHandler> { - private readonly ICollectionRepository _collectionRepository; + private readonly IMediaCollectionRepository _collectionRepository; - public GetCollectionCardsHandler(ICollectionRepository collectionRepository) => + public GetCollectionCardsHandler(IMediaCollectionRepository collectionRepository) => _collectionRepository = collectionRepository; public async Task> Handle( GetCollectionCards request, CancellationToken cancellationToken) => - (await _collectionRepository.GetWithItemsUntracked(request.Id)) + (await _collectionRepository.GetCollectionWithItemsUntracked(request.Id)) .ToEither(BaseError.New("Unable to load collection")) .Map(ProjectToViewModel); } diff --git a/ErsatzTV.Core/Domain/PlayoutProgramScheduleAnchor.cs b/ErsatzTV.Core/Domain/PlayoutProgramScheduleAnchor.cs index 81f53b972..48b9b12b3 100644 --- a/ErsatzTV.Core/Domain/PlayoutProgramScheduleAnchor.cs +++ b/ErsatzTV.Core/Domain/PlayoutProgramScheduleAnchor.cs @@ -7,12 +7,8 @@ public Playout Playout { get; set; } public int ProgramScheduleId { get; set; } public ProgramSchedule ProgramSchedule { get; set; } - public ProgramScheduleItemCollectionType CollectionType { get; set; } - // TODO: remove this - public int CollectionId { get; set; } - // TODO: rename this public int? NewCollectionId { get; set; } public Collection Collection { get; set; } diff --git a/ErsatzTV.Core/Interfaces/Repositories/ICollectionRepository.cs b/ErsatzTV.Core/Interfaces/Repositories/ICollectionRepository.cs deleted file mode 100644 index 7d743ff90..000000000 --- a/ErsatzTV.Core/Interfaces/Repositories/ICollectionRepository.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Threading.Tasks; -using ErsatzTV.Core.Domain; -using LanguageExt; - -namespace ErsatzTV.Core.Interfaces.Repositories -{ - public interface ICollectionRepository - { - public Task> GetWithItemsUntracked(int collectionId); - } -} diff --git a/ErsatzTV.Core/Scheduling/PlayoutBuilder.cs b/ErsatzTV.Core/Scheduling/PlayoutBuilder.cs index 3d55fb9b3..f13c4b13a 100644 --- a/ErsatzTV.Core/Scheduling/PlayoutBuilder.cs +++ b/ErsatzTV.Core/Scheduling/PlayoutBuilder.cs @@ -325,7 +325,7 @@ namespace ErsatzTV.Core.Scheduling { Option maybeExisting = playout.ProgramScheduleAnchors .FirstOrDefault( - a => a.CollectionType == collectionKey.CollectionType && a.CollectionId == collectionKey.Id); + a => a.CollectionType == collectionKey.CollectionType && a.NewCollectionId == collectionKey.Id); var maybeEnumeratorState = collectionEnumerators.GroupBy(e => e.Key, e => e.Value.State) .ToDictionary(mcs => mcs.Key, mcs => mcs.Head()); @@ -343,7 +343,7 @@ namespace ErsatzTV.Core.Scheduling ProgramSchedule = playout.ProgramSchedule, ProgramScheduleId = playout.ProgramScheduleId, CollectionType = collectionKey.CollectionType, - CollectionId = collectionKey.Id, + NewCollectionId = collectionKey.Id, EnumeratorState = maybeEnumeratorState[collectionKey] }); @@ -362,7 +362,7 @@ namespace ErsatzTV.Core.Scheduling .FirstOrDefault( a => a.ProgramScheduleId == playout.ProgramScheduleId && a.CollectionType == collectionKey.CollectionType - && a.CollectionId == collectionKey.Id); + && a.NewCollectionId == collectionKey.Id); CollectionEnumeratorState state = maybeAnchor.Match( anchor => anchor.EnumeratorState, diff --git a/ErsatzTV.Infrastructure/Migrations/20210226183532_Remove_OldTelevisionEntities.Designer.cs b/ErsatzTV.Infrastructure/Migrations/20210226183532_Remove_OldTelevisionEntities.Designer.cs new file mode 100644 index 000000000..a0a5ed480 --- /dev/null +++ b/ErsatzTV.Infrastructure/Migrations/20210226183532_Remove_OldTelevisionEntities.Designer.cs @@ -0,0 +1,1361 @@ +// +using System; +using ErsatzTV.Infrastructure.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace ErsatzTV.Infrastructure.Migrations +{ + [DbContext(typeof(TvContext))] + [Migration("20210226183532_Remove_OldTelevisionEntities")] + partial class Remove_OldTelevisionEntities + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "5.0.3"); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Channel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("FFmpegProfileId") + .HasColumnType("INTEGER"); + + b.Property("Logo") + .HasColumnType("TEXT"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Number") + .HasColumnType("INTEGER"); + + b.Property("StreamingMode") + .HasColumnType("INTEGER"); + + b.Property("UniqueId") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("FFmpegProfileId"); + + b.HasIndex("Number") + .IsUnique(); + + b.ToTable("Channel"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Collection", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Collection"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.CollectionItem", b => + { + b.Property("CollectionId") + .HasColumnType("INTEGER"); + + b.Property("MediaItemId") + .HasColumnType("INTEGER"); + + b.HasKey("CollectionId", "MediaItemId"); + + b.HasIndex("MediaItemId"); + + b.ToTable("CollectionItem"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ConfigElement", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Key") + .HasColumnType("TEXT"); + + b.Property("Value") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Key") + .IsUnique(); + + b.ToTable("ConfigElement"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.EpisodeMetadata", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("DateAdded") + .HasColumnType("TEXT"); + + b.Property("DateUpdated") + .HasColumnType("TEXT"); + + b.Property("EpisodeId") + .HasColumnType("INTEGER"); + + b.Property("MetadataKind") + .HasColumnType("INTEGER"); + + b.Property("OriginalTitle") + .HasColumnType("TEXT"); + + b.Property("Outline") + .HasColumnType("TEXT"); + + b.Property("Plot") + .HasColumnType("TEXT"); + + b.Property("ReleaseDate") + .HasColumnType("TEXT"); + + b.Property("SortTitle") + .HasColumnType("TEXT"); + + b.Property("Tagline") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("EpisodeId"); + + b.ToTable("EpisodeMetadata"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.FFmpegProfile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AudioBitrate") + .HasColumnType("INTEGER"); + + b.Property("AudioBufferSize") + .HasColumnType("INTEGER"); + + b.Property("AudioChannels") + .HasColumnType("INTEGER"); + + b.Property("AudioCodec") + .HasColumnType("TEXT"); + + b.Property("AudioSampleRate") + .HasColumnType("INTEGER"); + + b.Property("AudioVolume") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("NormalizeAudio") + .HasColumnType("INTEGER"); + + b.Property("NormalizeAudioCodec") + .HasColumnType("INTEGER"); + + b.Property("NormalizeResolution") + .HasColumnType("INTEGER"); + + b.Property("NormalizeVideoCodec") + .HasColumnType("INTEGER"); + + b.Property("ResolutionId") + .HasColumnType("INTEGER"); + + b.Property("ThreadCount") + .HasColumnType("INTEGER"); + + b.Property("Transcode") + .HasColumnType("INTEGER"); + + b.Property("VideoBitrate") + .HasColumnType("INTEGER"); + + b.Property("VideoBufferSize") + .HasColumnType("INTEGER"); + + b.Property("VideoCodec") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("ResolutionId"); + + b.ToTable("FFmpegProfile"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Library", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LastScan") + .HasColumnType("TEXT"); + + b.Property("MediaKind") + .HasColumnType("INTEGER"); + + b.Property("MediaSourceId") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("MediaSourceId"); + + b.ToTable("Library"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.LibraryPath", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LibraryId") + .HasColumnType("INTEGER"); + + b.Property("Path") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("LibraryId"); + + b.ToTable("LibraryPath"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaFile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("MediaVersionId") + .HasColumnType("INTEGER"); + + b.Property("Path") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("MediaVersionId"); + + b.ToTable("MediaFile"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("LastWriteTime") + .HasColumnType("TEXT"); + + b.Property("LibraryPathId") + .HasColumnType("INTEGER"); + + b.Property("Path") + .HasColumnType("TEXT"); + + b.Property("Poster") + .HasColumnType("TEXT"); + + b.Property("PosterLastWriteTime") + .HasColumnType("TEXT"); + + b.Property("TelevisionEpisodeId") + .HasColumnType("INTEGER"); + + b.Property("TelevisionSeasonId") + .HasColumnType("INTEGER"); + + b.Property("TelevisionShowId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("LibraryPathId"); + + b.ToTable("MediaItem"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaSource", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("MediaSource"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaVersion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AudioCodec") + .HasColumnType("TEXT"); + + b.Property("DisplayAspectRatio") + .HasColumnType("TEXT"); + + b.Property("Duration") + .HasColumnType("TEXT"); + + b.Property("EpisodeId") + .HasColumnType("INTEGER"); + + b.Property("Height") + .HasColumnType("INTEGER"); + + b.Property("IsInterlaced") + .HasColumnType("INTEGER"); + + b.Property("MovieId") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("SampleAspectRatio") + .HasColumnType("TEXT"); + + b.Property("VideoCodec") + .HasColumnType("TEXT"); + + b.Property("Width") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("EpisodeId"); + + b.HasIndex("MovieId"); + + b.ToTable("MediaVersion"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MovieMetadata", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("DateAdded") + .HasColumnType("TEXT"); + + b.Property("DateUpdated") + .HasColumnType("TEXT"); + + b.Property("MetadataKind") + .HasColumnType("INTEGER"); + + b.Property("MovieId") + .HasColumnType("INTEGER"); + + b.Property("OriginalTitle") + .HasColumnType("TEXT"); + + b.Property("Outline") + .HasColumnType("TEXT"); + + b.Property("Plot") + .HasColumnType("TEXT"); + + b.Property("ReleaseDate") + .HasColumnType("TEXT"); + + b.Property("SortTitle") + .HasColumnType("TEXT"); + + b.Property("Tagline") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("MovieId"); + + b.ToTable("NewMovieMetadata"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Playout", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ChannelId") + .HasColumnType("INTEGER"); + + b.Property("ProgramScheduleId") + .HasColumnType("INTEGER"); + + b.Property("ProgramSchedulePlayoutType") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ChannelId"); + + b.HasIndex("ProgramScheduleId"); + + b.ToTable("Playout"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlayoutItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Finish") + .HasColumnType("TEXT"); + + b.Property("MediaItemId") + .HasColumnType("INTEGER"); + + b.Property("PlayoutId") + .HasColumnType("INTEGER"); + + b.Property("Start") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("MediaItemId"); + + b.HasIndex("PlayoutId"); + + b.ToTable("PlayoutItem"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlayoutProgramScheduleAnchor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CollectionType") + .HasColumnType("INTEGER"); + + b.Property("MediaItemId") + .HasColumnType("INTEGER"); + + b.Property("NewCollectionId") + .HasColumnType("INTEGER"); + + b.Property("PlayoutId") + .HasColumnType("INTEGER"); + + b.Property("ProgramScheduleId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("MediaItemId"); + + b.HasIndex("NewCollectionId"); + + b.HasIndex("PlayoutId"); + + b.HasIndex("ProgramScheduleId"); + + b.ToTable("PlayoutProgramScheduleAnchor"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexConnection", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("IsActive") + .HasColumnType("INTEGER"); + + b.Property("PlexMediaSourceId") + .HasColumnType("INTEGER"); + + b.Property("Uri") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("PlexMediaSourceId"); + + b.ToTable("PlexConnection"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaItemPart", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Duration") + .HasColumnType("INTEGER"); + + b.Property("File") + .HasColumnType("TEXT"); + + b.Property("Key") + .HasColumnType("TEXT"); + + b.Property("PlexId") + .HasColumnType("INTEGER"); + + b.Property("Size") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("PlexMediaItemPart"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramSchedule", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("MediaCollectionPlaybackOrder") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("Name") + .IsUnique(); + + b.ToTable("ProgramSchedule"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CollectionId") + .HasColumnType("INTEGER"); + + b.Property("CollectionType") + .HasColumnType("INTEGER"); + + b.Property("Index") + .HasColumnType("INTEGER"); + + b.Property("MediaItemId") + .HasColumnType("INTEGER"); + + b.Property("ProgramScheduleId") + .HasColumnType("INTEGER"); + + b.Property("StartTime") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("CollectionId"); + + b.HasIndex("MediaItemId"); + + b.HasIndex("ProgramScheduleId"); + + b.ToTable("ProgramScheduleItem"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Resolution", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Height") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Width") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Resolution"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ShowMetadata", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("DateAdded") + .HasColumnType("TEXT"); + + b.Property("DateUpdated") + .HasColumnType("TEXT"); + + b.Property("MetadataKind") + .HasColumnType("INTEGER"); + + b.Property("OriginalTitle") + .HasColumnType("TEXT"); + + b.Property("Outline") + .HasColumnType("TEXT"); + + b.Property("Plot") + .HasColumnType("TEXT"); + + b.Property("ReleaseDate") + .HasColumnType("TEXT"); + + b.Property("ShowId") + .HasColumnType("INTEGER"); + + b.Property("SortTitle") + .HasColumnType("TEXT"); + + b.Property("Tagline") + .HasColumnType("TEXT"); + + b.Property("Title") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("ShowId"); + + b.ToTable("ShowMetadata"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.LocalLibrary", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.Library"); + + b.ToTable("LocalLibrary"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexLibrary", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.Library"); + + b.Property("Key") + .HasColumnType("TEXT"); + + b.Property("ShouldSyncItems") + .HasColumnType("INTEGER"); + + b.ToTable("PlexLibrary"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Episode", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); + + b.Property("EpisodeNumber") + .HasColumnType("INTEGER"); + + b.Property("SeasonId") + .HasColumnType("INTEGER"); + + b.HasIndex("SeasonId"); + + b.ToTable("Episode"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Movie", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); + + b.ToTable("Movie"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); + + b.Property("SeasonNumber") + .HasColumnType("INTEGER"); + + b.Property("ShowId") + .HasColumnType("INTEGER"); + + b.HasIndex("ShowId"); + + b.ToTable("Season"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Show", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); + + b.ToTable("Show"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.LocalMediaSource", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.MediaSource"); + + b.ToTable("LocalMediaSource"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSource", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.MediaSource"); + + b.Property("ClientIdentifier") + .HasColumnType("TEXT"); + + b.Property("ProductVersion") + .HasColumnType("TEXT"); + + b.Property("ServerName") + .HasColumnType("TEXT"); + + b.ToTable("PlexMediaSource"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemDuration", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); + + b.Property("OfflineTail") + .HasColumnType("INTEGER"); + + b.Property("PlayoutDuration") + .HasColumnType("TEXT"); + + b.ToTable("ProgramScheduleDurationItem"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemFlood", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); + + b.ToTable("ProgramScheduleFloodItem"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemMultiple", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.ToTable("ProgramScheduleMultipleItem"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemOne", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); + + b.ToTable("ProgramScheduleOneItem"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMovie", b => + { + b.HasBaseType("ErsatzTV.Core.Domain.Movie"); + + b.Property("Key") + .HasColumnType("TEXT"); + + b.Property("PartId") + .HasColumnType("INTEGER"); + + b.HasIndex("PartId"); + + b.ToTable("PlexMovie"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Channel", b => + { + b.HasOne("ErsatzTV.Core.Domain.FFmpegProfile", "FFmpegProfile") + .WithMany() + .HasForeignKey("FFmpegProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FFmpegProfile"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.CollectionItem", b => + { + b.HasOne("ErsatzTV.Core.Domain.Collection", "Collection") + .WithMany("CollectionItems") + .HasForeignKey("CollectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ErsatzTV.Core.Domain.MediaItem", "MediaItem") + .WithMany("CollectionItems") + .HasForeignKey("MediaItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Collection"); + + b.Navigation("MediaItem"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.EpisodeMetadata", b => + { + b.HasOne("ErsatzTV.Core.Domain.Episode", "Episode") + .WithMany("EpisodeMetadata") + .HasForeignKey("EpisodeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Episode"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.FFmpegProfile", b => + { + b.HasOne("ErsatzTV.Core.Domain.Resolution", "Resolution") + .WithMany() + .HasForeignKey("ResolutionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Resolution"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Library", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaSource", "MediaSource") + .WithMany("Libraries") + .HasForeignKey("MediaSourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MediaSource"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.LibraryPath", b => + { + b.HasOne("ErsatzTV.Core.Domain.Library", "Library") + .WithMany("Paths") + .HasForeignKey("LibraryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Library"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaFile", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaVersion", "MediaVersion") + .WithMany("MediaFiles") + .HasForeignKey("MediaVersionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MediaVersion"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaItem", b => + { + b.HasOne("ErsatzTV.Core.Domain.LibraryPath", "LibraryPath") + .WithMany("MediaItems") + .HasForeignKey("LibraryPathId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("ErsatzTV.Core.Domain.MediaItemStatistics", "Statistics", b1 => + { + b1.Property("MediaItemId") + .HasColumnType("INTEGER"); + + b1.Property("AudioCodec") + .HasColumnType("TEXT"); + + b1.Property("DisplayAspectRatio") + .HasColumnType("TEXT"); + + b1.Property("Duration") + .HasColumnType("TEXT"); + + b1.Property("Height") + .HasColumnType("INTEGER"); + + b1.Property("LastWriteTime") + .HasColumnType("TEXT"); + + b1.Property("SampleAspectRatio") + .HasColumnType("TEXT"); + + b1.Property("VideoCodec") + .HasColumnType("TEXT"); + + b1.Property("VideoScanType") + .HasColumnType("INTEGER"); + + b1.Property("Width") + .HasColumnType("INTEGER"); + + b1.HasKey("MediaItemId"); + + b1.ToTable("MediaItem"); + + b1.WithOwner() + .HasForeignKey("MediaItemId"); + }); + + b.Navigation("LibraryPath"); + + b.Navigation("Statistics"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaVersion", b => + { + b.HasOne("ErsatzTV.Core.Domain.Episode", null) + .WithMany("MediaVersions") + .HasForeignKey("EpisodeId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("ErsatzTV.Core.Domain.Movie", null) + .WithMany("MediaVersions") + .HasForeignKey("MovieId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MovieMetadata", b => + { + b.HasOne("ErsatzTV.Core.Domain.Movie", "Movie") + .WithMany("MovieMetadata") + .HasForeignKey("MovieId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Movie"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Playout", b => + { + b.HasOne("ErsatzTV.Core.Domain.Channel", "Channel") + .WithMany("Playouts") + .HasForeignKey("ChannelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ErsatzTV.Core.Domain.ProgramSchedule", "ProgramSchedule") + .WithMany("Playouts") + .HasForeignKey("ProgramScheduleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("ErsatzTV.Core.Domain.PlayoutAnchor", "Anchor", b1 => + { + b1.Property("PlayoutId") + .HasColumnType("INTEGER"); + + b1.Property("NextScheduleItemId") + .HasColumnType("INTEGER"); + + b1.Property("NextStart") + .HasColumnType("TEXT"); + + b1.HasKey("PlayoutId"); + + b1.HasIndex("NextScheduleItemId"); + + b1.ToTable("Playout"); + + b1.HasOne("ErsatzTV.Core.Domain.ProgramScheduleItem", "NextScheduleItem") + .WithMany() + .HasForeignKey("NextScheduleItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b1.WithOwner() + .HasForeignKey("PlayoutId"); + + b1.Navigation("NextScheduleItem"); + }); + + b.Navigation("Anchor"); + + b.Navigation("Channel"); + + b.Navigation("ProgramSchedule"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlayoutItem", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaItem", "MediaItem") + .WithMany() + .HasForeignKey("MediaItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ErsatzTV.Core.Domain.Playout", "Playout") + .WithMany("Items") + .HasForeignKey("PlayoutId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MediaItem"); + + b.Navigation("Playout"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlayoutProgramScheduleAnchor", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaItem", "MediaItem") + .WithMany() + .HasForeignKey("MediaItemId"); + + b.HasOne("ErsatzTV.Core.Domain.Collection", "Collection") + .WithMany() + .HasForeignKey("NewCollectionId"); + + b.HasOne("ErsatzTV.Core.Domain.Playout", "Playout") + .WithMany("ProgramScheduleAnchors") + .HasForeignKey("PlayoutId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ErsatzTV.Core.Domain.ProgramSchedule", "ProgramSchedule") + .WithMany() + .HasForeignKey("ProgramScheduleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("ErsatzTV.Core.Domain.CollectionEnumeratorState", "EnumeratorState", b1 => + { + b1.Property("PlayoutProgramScheduleAnchorId") + .HasColumnType("INTEGER"); + + b1.Property("Index") + .HasColumnType("INTEGER"); + + b1.Property("Seed") + .HasColumnType("INTEGER"); + + b1.HasKey("PlayoutProgramScheduleAnchorId"); + + b1.ToTable("PlayoutProgramScheduleAnchor"); + + b1.WithOwner() + .HasForeignKey("PlayoutProgramScheduleAnchorId"); + }); + + b.Navigation("Collection"); + + b.Navigation("EnumeratorState"); + + b.Navigation("MediaItem"); + + b.Navigation("Playout"); + + b.Navigation("ProgramSchedule"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexConnection", b => + { + b.HasOne("ErsatzTV.Core.Domain.PlexMediaSource", "PlexMediaSource") + .WithMany("Connections") + .HasForeignKey("PlexMediaSourceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PlexMediaSource"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItem", b => + { + b.HasOne("ErsatzTV.Core.Domain.Collection", "Collection") + .WithMany() + .HasForeignKey("CollectionId"); + + b.HasOne("ErsatzTV.Core.Domain.MediaItem", "MediaItem") + .WithMany() + .HasForeignKey("MediaItemId"); + + b.HasOne("ErsatzTV.Core.Domain.ProgramSchedule", "ProgramSchedule") + .WithMany("Items") + .HasForeignKey("ProgramScheduleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Collection"); + + b.Navigation("MediaItem"); + + b.Navigation("ProgramSchedule"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ShowMetadata", b => + { + b.HasOne("ErsatzTV.Core.Domain.Show", "Show") + .WithMany("ShowMetadata") + .HasForeignKey("ShowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Show"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.LocalLibrary", b => + { + b.HasOne("ErsatzTV.Core.Domain.Library", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.LocalLibrary", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexLibrary", b => + { + b.HasOne("ErsatzTV.Core.Domain.Library", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.PlexLibrary", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Episode", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.Episode", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ErsatzTV.Core.Domain.Season", "Season") + .WithMany("Episodes") + .HasForeignKey("SeasonId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Season"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Movie", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.Movie", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.Season", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ErsatzTV.Core.Domain.Show", "Show") + .WithMany("Seasons") + .HasForeignKey("ShowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Show"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Show", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.Show", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.LocalMediaSource", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaSource", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.LocalMediaSource", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSource", b => + { + b.HasOne("ErsatzTV.Core.Domain.MediaSource", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.PlexMediaSource", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemDuration", b => + { + b.HasOne("ErsatzTV.Core.Domain.ProgramScheduleItem", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.ProgramScheduleItemDuration", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemFlood", b => + { + b.HasOne("ErsatzTV.Core.Domain.ProgramScheduleItem", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.ProgramScheduleItemFlood", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemMultiple", b => + { + b.HasOne("ErsatzTV.Core.Domain.ProgramScheduleItem", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.ProgramScheduleItemMultiple", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemOne", b => + { + b.HasOne("ErsatzTV.Core.Domain.ProgramScheduleItem", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.ProgramScheduleItemOne", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMovie", b => + { + b.HasOne("ErsatzTV.Core.Domain.Movie", null) + .WithOne() + .HasForeignKey("ErsatzTV.Core.Domain.PlexMovie", "Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("ErsatzTV.Core.Domain.PlexMediaItemPart", "Part") + .WithMany() + .HasForeignKey("PartId"); + + b.Navigation("Part"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Channel", b => + { + b.Navigation("Playouts"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Collection", b => + { + b.Navigation("CollectionItems"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Library", b => + { + b.Navigation("Paths"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.LibraryPath", b => + { + b.Navigation("MediaItems"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaItem", b => + { + b.Navigation("CollectionItems"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaSource", b => + { + b.Navigation("Libraries"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaVersion", b => + { + b.Navigation("MediaFiles"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Playout", b => + { + b.Navigation("Items"); + + b.Navigation("ProgramScheduleAnchors"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramSchedule", b => + { + b.Navigation("Items"); + + b.Navigation("Playouts"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Episode", b => + { + b.Navigation("EpisodeMetadata"); + + b.Navigation("MediaVersions"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Movie", b => + { + b.Navigation("MediaVersions"); + + b.Navigation("MovieMetadata"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b => + { + b.Navigation("Episodes"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.Show", b => + { + b.Navigation("Seasons"); + + b.Navigation("ShowMetadata"); + }); + + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSource", b => + { + b.Navigation("Connections"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/ErsatzTV.Infrastructure/Migrations/20210226183532_Remove_OldTelevisionEntities.cs b/ErsatzTV.Infrastructure/Migrations/20210226183532_Remove_OldTelevisionEntities.cs new file mode 100644 index 000000000..44e1102b9 --- /dev/null +++ b/ErsatzTV.Infrastructure/Migrations/20210226183532_Remove_OldTelevisionEntities.cs @@ -0,0 +1,489 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace ErsatzTV.Infrastructure.Migrations +{ + public partial class Remove_OldTelevisionEntities : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.Sql( + @"UPDATE ProgramScheduleItem SET + MediaCollectionId = null, + TelevisionSeasonId = null, + TelevisionShowId = null"); + + migrationBuilder.DropForeignKey( + "FK_ProgramScheduleItem_MediaCollection_MediaCollectionId", + "ProgramScheduleItem"); + + migrationBuilder.DropForeignKey( + "FK_ProgramScheduleItem_TelevisionSeason_TelevisionSeasonId", + "ProgramScheduleItem"); + + migrationBuilder.DropForeignKey( + "FK_ProgramScheduleItem_TelevisionShow_TelevisionShowId", + "ProgramScheduleItem"); + + migrationBuilder.DropTable( + "SimpleMediaCollectionEpisode"); + + migrationBuilder.DropTable( + "SimpleMediaCollectionMovie"); + + migrationBuilder.DropTable( + "SimpleMediaCollectionSeason"); + + migrationBuilder.DropTable( + "SimpleMediaCollectionShow"); + + migrationBuilder.DropTable( + "TelevisionEpisodeMetadata"); + + migrationBuilder.DropTable( + "TelevisionShowMetadata"); + + migrationBuilder.DropTable( + "TelevisionShowSource"); + + migrationBuilder.DropTable( + "SimpleMediaCollection"); + + migrationBuilder.DropTable( + "TelevisionEpisode"); + + migrationBuilder.DropTable( + "MediaCollection"); + + migrationBuilder.DropTable( + "TelevisionSeason"); + + migrationBuilder.DropTable( + "TelevisionShow"); + + migrationBuilder.DropIndex( + "IX_ProgramScheduleItem_MediaCollectionId", + "ProgramScheduleItem"); + + migrationBuilder.DropIndex( + "IX_ProgramScheduleItem_TelevisionSeasonId", + "ProgramScheduleItem"); + + migrationBuilder.DropIndex( + "IX_ProgramScheduleItem_TelevisionShowId", + "ProgramScheduleItem"); + + migrationBuilder.DropColumn( + "MediaCollectionId", + "ProgramScheduleItem"); + + migrationBuilder.DropColumn( + "TelevisionSeasonId", + "ProgramScheduleItem"); + + migrationBuilder.DropColumn( + "TelevisionShowId", + "ProgramScheduleItem"); + + migrationBuilder.DropColumn( + "CollectionId", + "PlayoutProgramScheduleAnchor"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + "MediaCollectionId", + "ProgramScheduleItem", + "INTEGER", + nullable: true); + + migrationBuilder.AddColumn( + "TelevisionSeasonId", + "ProgramScheduleItem", + "INTEGER", + nullable: true); + + migrationBuilder.AddColumn( + "TelevisionShowId", + "ProgramScheduleItem", + "INTEGER", + nullable: true); + + migrationBuilder.AddColumn( + "CollectionId", + "PlayoutProgramScheduleAnchor", + "INTEGER", + nullable: false, + defaultValue: 0); + + migrationBuilder.CreateTable( + "MediaCollection", + table => new + { + Id = table.Column("INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Name = table.Column("TEXT", nullable: true) + }, + constraints: table => { table.PrimaryKey("PK_MediaCollection", x => x.Id); }); + + migrationBuilder.CreateTable( + "TelevisionShow", + table => new + { + Id = table.Column("INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Poster = table.Column("TEXT", nullable: true), + PosterLastWriteTime = table.Column("TEXT", nullable: true) + }, + constraints: table => { table.PrimaryKey("PK_TelevisionShow", x => x.Id); }); + + migrationBuilder.CreateTable( + "SimpleMediaCollection", + table => new + { + Id = table.Column("INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true) + }, + constraints: table => + { + table.PrimaryKey("PK_SimpleMediaCollection", x => x.Id); + table.ForeignKey( + "FK_SimpleMediaCollection_MediaCollection_Id", + x => x.Id, + "MediaCollection", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + "TelevisionSeason", + table => new + { + Id = table.Column("INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Number = table.Column("INTEGER", nullable: false), + Path = table.Column("TEXT", nullable: true), + Poster = table.Column("TEXT", nullable: true), + PosterLastWriteTime = table.Column("TEXT", nullable: true), + TelevisionShowId = table.Column("INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_TelevisionSeason", x => x.Id); + table.ForeignKey( + "FK_TelevisionSeason_TelevisionShow_TelevisionShowId", + x => x.TelevisionShowId, + "TelevisionShow", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + "TelevisionShowMetadata", + table => new + { + Id = table.Column("INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + LastWriteTime = table.Column("TEXT", nullable: true), + Plot = table.Column("TEXT", nullable: true), + SortTitle = table.Column("TEXT", nullable: true), + Source = table.Column("INTEGER", nullable: false), + TelevisionShowId = table.Column("INTEGER", nullable: false), + Title = table.Column("TEXT", nullable: true), + Year = table.Column("INTEGER", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_TelevisionShowMetadata", x => x.Id); + table.ForeignKey( + "FK_TelevisionShowMetadata_TelevisionShow_TelevisionShowId", + x => x.TelevisionShowId, + "TelevisionShow", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + "TelevisionShowSource", + table => new + { + Id = table.Column("INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Discriminator = table.Column("TEXT", nullable: false), + TelevisionShowId = table.Column("INTEGER", nullable: false), + MediaSourceId = table.Column("INTEGER", nullable: true), + Path = table.Column("TEXT", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_TelevisionShowSource", x => x.Id); + table.ForeignKey( + "FK_TelevisionShowSource_LocalMediaSource_MediaSourceId", + x => x.MediaSourceId, + "LocalMediaSource", + "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + "FK_TelevisionShowSource_TelevisionShow_TelevisionShowId", + x => x.TelevisionShowId, + "TelevisionShow", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + "SimpleMediaCollectionMovie", + table => new + { + MoviesId = table.Column("INTEGER", nullable: false), + SimpleMediaCollectionsId = table.Column("INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey( + "PK_SimpleMediaCollectionMovie", + x => new { x.MoviesId, x.SimpleMediaCollectionsId }); + table.ForeignKey( + "FK_SimpleMediaCollectionMovie_Movie_MoviesId", + x => x.MoviesId, + "Movie", + "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + "FK_SimpleMediaCollectionMovie_SimpleMediaCollection_SimpleMediaCollectionsId", + x => x.SimpleMediaCollectionsId, + "SimpleMediaCollection", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + "SimpleMediaCollectionShow", + table => new + { + SimpleMediaCollectionsId = table.Column("INTEGER", nullable: false), + TelevisionShowsId = table.Column("INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey( + "PK_SimpleMediaCollectionShow", + x => new { x.SimpleMediaCollectionsId, x.TelevisionShowsId }); + table.ForeignKey( + "FK_SimpleMediaCollectionShow_SimpleMediaCollection_SimpleMediaCollectionsId", + x => x.SimpleMediaCollectionsId, + "SimpleMediaCollection", + "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + "FK_SimpleMediaCollectionShow_TelevisionShow_TelevisionShowsId", + x => x.TelevisionShowsId, + "TelevisionShow", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + "SimpleMediaCollectionSeason", + table => new + { + SimpleMediaCollectionsId = table.Column("INTEGER", nullable: false), + TelevisionSeasonsId = table.Column("INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey( + "PK_SimpleMediaCollectionSeason", + x => new { x.SimpleMediaCollectionsId, x.TelevisionSeasonsId }); + table.ForeignKey( + "FK_SimpleMediaCollectionSeason_SimpleMediaCollection_SimpleMediaCollectionsId", + x => x.SimpleMediaCollectionsId, + "SimpleMediaCollection", + "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + "FK_SimpleMediaCollectionSeason_TelevisionSeason_TelevisionSeasonsId", + x => x.TelevisionSeasonsId, + "TelevisionSeason", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + "TelevisionEpisode", + table => new + { + Id = table.Column("INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + SeasonId = table.Column("INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_TelevisionEpisode", x => x.Id); + table.ForeignKey( + "FK_TelevisionEpisode_MediaItem_Id", + x => x.Id, + "MediaItem", + "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + "FK_TelevisionEpisode_TelevisionSeason_SeasonId", + x => x.SeasonId, + "TelevisionSeason", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + "SimpleMediaCollectionEpisode", + table => new + { + SimpleMediaCollectionsId = table.Column("INTEGER", nullable: false), + TelevisionEpisodesId = table.Column("INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey( + "PK_SimpleMediaCollectionEpisode", + x => new { x.SimpleMediaCollectionsId, x.TelevisionEpisodesId }); + table.ForeignKey( + "FK_SimpleMediaCollectionEpisode_SimpleMediaCollection_SimpleMediaCollectionsId", + x => x.SimpleMediaCollectionsId, + "SimpleMediaCollection", + "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + "FK_SimpleMediaCollectionEpisode_TelevisionEpisode_TelevisionEpisodesId", + x => x.TelevisionEpisodesId, + "TelevisionEpisode", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + "TelevisionEpisodeMetadata", + table => new + { + Id = table.Column("INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Aired = table.Column("TEXT", nullable: true), + Episode = table.Column("INTEGER", nullable: false), + LastWriteTime = table.Column("TEXT", nullable: true), + Plot = table.Column("TEXT", nullable: true), + Season = table.Column("INTEGER", nullable: false), + SortTitle = table.Column("TEXT", nullable: true), + Source = table.Column("INTEGER", nullable: false), + TelevisionEpisodeId = table.Column("INTEGER", nullable: false), + Title = table.Column("TEXT", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_TelevisionEpisodeMetadata", x => x.Id); + table.ForeignKey( + "FK_TelevisionEpisodeMetadata_TelevisionEpisode_TelevisionEpisodeId", + x => x.TelevisionEpisodeId, + "TelevisionEpisode", + "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + "IX_ProgramScheduleItem_MediaCollectionId", + "ProgramScheduleItem", + "MediaCollectionId"); + + migrationBuilder.CreateIndex( + "IX_ProgramScheduleItem_TelevisionSeasonId", + "ProgramScheduleItem", + "TelevisionSeasonId"); + + migrationBuilder.CreateIndex( + "IX_ProgramScheduleItem_TelevisionShowId", + "ProgramScheduleItem", + "TelevisionShowId"); + + migrationBuilder.CreateIndex( + "IX_MediaCollection_Name", + "MediaCollection", + "Name", + unique: true); + + migrationBuilder.CreateIndex( + "IX_SimpleMediaCollectionEpisode_TelevisionEpisodesId", + "SimpleMediaCollectionEpisode", + "TelevisionEpisodesId"); + + migrationBuilder.CreateIndex( + "IX_SimpleMediaCollectionMovie_SimpleMediaCollectionsId", + "SimpleMediaCollectionMovie", + "SimpleMediaCollectionsId"); + + migrationBuilder.CreateIndex( + "IX_SimpleMediaCollectionSeason_TelevisionSeasonsId", + "SimpleMediaCollectionSeason", + "TelevisionSeasonsId"); + + migrationBuilder.CreateIndex( + "IX_SimpleMediaCollectionShow_TelevisionShowsId", + "SimpleMediaCollectionShow", + "TelevisionShowsId"); + + migrationBuilder.CreateIndex( + "IX_TelevisionEpisode_SeasonId", + "TelevisionEpisode", + "SeasonId"); + + migrationBuilder.CreateIndex( + "IX_TelevisionEpisodeMetadata_TelevisionEpisodeId", + "TelevisionEpisodeMetadata", + "TelevisionEpisodeId", + unique: true); + + migrationBuilder.CreateIndex( + "IX_TelevisionSeason_TelevisionShowId", + "TelevisionSeason", + "TelevisionShowId"); + + migrationBuilder.CreateIndex( + "IX_TelevisionShowMetadata_TelevisionShowId", + "TelevisionShowMetadata", + "TelevisionShowId", + unique: true); + + migrationBuilder.CreateIndex( + "IX_TelevisionShowSource_MediaSourceId", + "TelevisionShowSource", + "MediaSourceId"); + + migrationBuilder.CreateIndex( + "IX_TelevisionShowSource_TelevisionShowId", + "TelevisionShowSource", + "TelevisionShowId"); + + migrationBuilder.AddForeignKey( + "FK_ProgramScheduleItem_MediaCollection_MediaCollectionId", + "ProgramScheduleItem", + "MediaCollectionId", + "MediaCollection", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + "FK_ProgramScheduleItem_TelevisionSeason_TelevisionSeasonId", + "ProgramScheduleItem", + "TelevisionSeasonId", + "TelevisionSeason", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey( + "FK_ProgramScheduleItem_TelevisionShow_TelevisionShowId", + "ProgramScheduleItem", + "TelevisionShowId", + "TelevisionShow", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + } + } +} diff --git a/ErsatzTV.Infrastructure/Migrations/TvContextModelSnapshot.cs b/ErsatzTV.Infrastructure/Migrations/TvContextModelSnapshot.cs index 0e02a8c95..43fd02e2c 100644 --- a/ErsatzTV.Infrastructure/Migrations/TvContextModelSnapshot.cs +++ b/ErsatzTV.Infrastructure/Migrations/TvContextModelSnapshot.cs @@ -1,14 +1,14 @@ // - using System; using ErsatzTV.Infrastructure.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace ErsatzTV.Infrastructure.Migrations { [DbContext(typeof(TvContext))] - internal class TvContextModelSnapshot : ModelSnapshot + partial class TvContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { @@ -16,9 +16,7 @@ namespace ErsatzTV.Infrastructure.Migrations modelBuilder .HasAnnotation("ProductVersion", "5.0.3"); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Channel", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Channel", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -52,9 +50,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("Channel"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Collection", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Collection", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -68,9 +64,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("Collection"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.CollectionItem", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.CollectionItem", b => { b.Property("CollectionId") .HasColumnType("INTEGER"); @@ -85,9 +79,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("CollectionItem"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ConfigElement", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ConfigElement", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -107,9 +99,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("ConfigElement"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.EpisodeMetadata", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.EpisodeMetadata", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -155,9 +145,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("EpisodeMetadata"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.FFmpegProfile", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.FFmpegProfile", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -221,9 +209,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("FFmpegProfile"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Library", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Library", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -248,9 +234,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("Library"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.LibraryPath", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.LibraryPath", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -269,28 +253,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("LibraryPath"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.MediaCollection", - b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Name") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("Name") - .IsUnique(); - - b.ToTable("MediaCollection"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.MediaFile", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaFile", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -309,9 +272,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("MediaFile"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.MediaItem", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaItem", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -348,9 +309,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("MediaItem"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.MediaSource", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaSource", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -361,9 +320,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("MediaSource"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.MediaVersion", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaVersion", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -411,9 +368,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("MediaVersion"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.NewMovieMetadata", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.MovieMetadata", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -459,9 +414,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("NewMovieMetadata"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Playout", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Playout", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -485,9 +438,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("Playout"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlayoutItem", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlayoutItem", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -514,17 +465,12 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("PlayoutItem"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlayoutProgramScheduleAnchor", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlayoutProgramScheduleAnchor", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("CollectionId") - .HasColumnType("INTEGER"); - b.Property("CollectionType") .HasColumnType("INTEGER"); @@ -553,9 +499,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("PlayoutProgramScheduleAnchor"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlexConnection", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexConnection", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -577,9 +521,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("PlexConnection"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlexMediaItemPart", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaItemPart", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -605,9 +547,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("PlexMediaItemPart"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramSchedule", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramSchedule", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -627,9 +567,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("ProgramSchedule"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItem", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItem", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -644,9 +582,6 @@ namespace ErsatzTV.Infrastructure.Migrations b.Property("Index") .HasColumnType("INTEGER"); - b.Property("MediaCollectionId") - .HasColumnType("INTEGER"); - b.Property("MediaItemId") .HasColumnType("INTEGER"); @@ -656,32 +591,18 @@ namespace ErsatzTV.Infrastructure.Migrations b.Property("StartTime") .HasColumnType("TEXT"); - b.Property("TelevisionSeasonId") - .HasColumnType("INTEGER"); - - b.Property("TelevisionShowId") - .HasColumnType("INTEGER"); - b.HasKey("Id"); b.HasIndex("CollectionId"); - b.HasIndex("MediaCollectionId"); - b.HasIndex("MediaItemId"); b.HasIndex("ProgramScheduleId"); - b.HasIndex("TelevisionSeasonId"); - - b.HasIndex("TelevisionShowId"); - b.ToTable("ProgramScheduleItem"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Resolution", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Resolution", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -701,9 +622,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("Resolution"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ShowMetadata", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ShowMetadata", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -749,239 +668,14 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("ShowMetadata"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionEpisodeMetadata", - b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Aired") - .HasColumnType("TEXT"); - - b.Property("Episode") - .HasColumnType("INTEGER"); - - b.Property("LastWriteTime") - .HasColumnType("TEXT"); - - b.Property("Plot") - .HasColumnType("TEXT"); - - b.Property("Season") - .HasColumnType("INTEGER"); - - b.Property("SortTitle") - .HasColumnType("TEXT"); - - b.Property("Source") - .HasColumnType("INTEGER"); - - b.Property("TelevisionEpisodeId") - .HasColumnType("INTEGER"); - - b.Property("Title") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.HasIndex("TelevisionEpisodeId") - .IsUnique(); - - b.ToTable("TelevisionEpisodeMetadata"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionSeason", - b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Number") - .HasColumnType("INTEGER"); - - b.Property("Path") - .HasColumnType("TEXT"); - - b.Property("Poster") - .HasColumnType("TEXT"); - - b.Property("PosterLastWriteTime") - .HasColumnType("TEXT"); - - b.Property("TelevisionShowId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("TelevisionShowId"); - - b.ToTable("TelevisionSeason"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionShow", - b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Poster") - .HasColumnType("TEXT"); - - b.Property("PosterLastWriteTime") - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("TelevisionShow"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionShowMetadata", - b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("LastWriteTime") - .HasColumnType("TEXT"); - - b.Property("Plot") - .HasColumnType("TEXT"); - - b.Property("SortTitle") - .HasColumnType("TEXT"); - - b.Property("Source") - .HasColumnType("INTEGER"); - - b.Property("TelevisionShowId") - .HasColumnType("INTEGER"); - - b.Property("Title") - .HasColumnType("TEXT"); - - b.Property("Year") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("TelevisionShowId") - .IsUnique(); - - b.ToTable("TelevisionShowMetadata"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionShowSource", - b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("TelevisionShowId") - .HasColumnType("INTEGER"); - - b.HasKey("Id"); - - b.HasIndex("TelevisionShowId"); - - b.ToTable("TelevisionShowSource"); - - b.HasDiscriminator("Discriminator").HasValue("TelevisionShowSource"); - }); - - modelBuilder.Entity( - "MovieSimpleMediaCollection", - b => - { - b.Property("MoviesId") - .HasColumnType("INTEGER"); - - b.Property("SimpleMediaCollectionsId") - .HasColumnType("INTEGER"); - - b.HasKey("MoviesId", "SimpleMediaCollectionsId"); - - b.HasIndex("SimpleMediaCollectionsId"); - - b.ToTable("SimpleMediaCollectionMovie"); - }); - - modelBuilder.Entity( - "SimpleMediaCollectionTelevisionEpisodeMediaItem", - b => - { - b.Property("SimpleMediaCollectionsId") - .HasColumnType("INTEGER"); - - b.Property("TelevisionEpisodesId") - .HasColumnType("INTEGER"); - - b.HasKey("SimpleMediaCollectionsId", "TelevisionEpisodesId"); - - b.HasIndex("TelevisionEpisodesId"); - - b.ToTable("SimpleMediaCollectionEpisode"); - }); - - modelBuilder.Entity( - "SimpleMediaCollectionTelevisionSeason", - b => - { - b.Property("SimpleMediaCollectionsId") - .HasColumnType("INTEGER"); - - b.Property("TelevisionSeasonsId") - .HasColumnType("INTEGER"); - - b.HasKey("SimpleMediaCollectionsId", "TelevisionSeasonsId"); - - b.HasIndex("TelevisionSeasonsId"); - - b.ToTable("SimpleMediaCollectionSeason"); - }); - - modelBuilder.Entity( - "SimpleMediaCollectionTelevisionShow", - b => - { - b.Property("SimpleMediaCollectionsId") - .HasColumnType("INTEGER"); - - b.Property("TelevisionShowsId") - .HasColumnType("INTEGER"); - - b.HasKey("SimpleMediaCollectionsId", "TelevisionShowsId"); - - b.HasIndex("TelevisionShowsId"); - - b.ToTable("SimpleMediaCollectionShow"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.LocalLibrary", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.LocalLibrary", b => { b.HasBaseType("ErsatzTV.Core.Domain.Library"); b.ToTable("LocalLibrary"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlexLibrary", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexLibrary", b => { b.HasBaseType("ErsatzTV.Core.Domain.Library"); @@ -994,18 +688,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("PlexLibrary"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.SimpleMediaCollection", - b => - { - b.HasBaseType("ErsatzTV.Core.Domain.MediaCollection"); - - b.ToTable("SimpleMediaCollection"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Episode", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Episode", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); @@ -1020,18 +703,14 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("Episode"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Movie", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Movie", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); b.ToTable("Movie"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Season", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); @@ -1046,41 +725,21 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("Season"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Show", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Show", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); b.ToTable("Show"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionEpisodeMediaItem", - b => - { - b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); - - b.Property("SeasonId") - .HasColumnType("INTEGER"); - - b.HasIndex("SeasonId"); - - b.ToTable("TelevisionEpisode"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.LocalMediaSource", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.LocalMediaSource", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaSource"); b.ToTable("LocalMediaSource"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlexMediaSource", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSource", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaSource"); @@ -1096,9 +755,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("PlexMediaSource"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItemDuration", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemDuration", b => { b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); @@ -1111,18 +768,14 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("ProgramScheduleDurationItem"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItemFlood", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemFlood", b => { b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); b.ToTable("ProgramScheduleFloodItem"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItemMultiple", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemMultiple", b => { b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); @@ -1132,35 +785,14 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("ProgramScheduleMultipleItem"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItemOne", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemOne", b => { b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); b.ToTable("ProgramScheduleOneItem"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.LocalTelevisionShowSource", - b => - { - b.HasBaseType("ErsatzTV.Core.Domain.TelevisionShowSource"); - - b.Property("MediaSourceId") - .HasColumnType("INTEGER"); - - b.Property("Path") - .HasColumnType("TEXT"); - - b.HasIndex("MediaSourceId"); - - b.HasDiscriminator().HasValue("LocalTelevisionShowSource"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlexMovie", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMovie", b => { b.HasBaseType("ErsatzTV.Core.Domain.Movie"); @@ -1175,9 +807,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.ToTable("PlexMovie"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Channel", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Channel", b => { b.HasOne("ErsatzTV.Core.Domain.FFmpegProfile", "FFmpegProfile") .WithMany() @@ -1188,9 +818,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("FFmpegProfile"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.CollectionItem", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.CollectionItem", b => { b.HasOne("ErsatzTV.Core.Domain.Collection", "Collection") .WithMany("CollectionItems") @@ -1209,9 +837,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("MediaItem"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.EpisodeMetadata", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.EpisodeMetadata", b => { b.HasOne("ErsatzTV.Core.Domain.Episode", "Episode") .WithMany("EpisodeMetadata") @@ -1222,9 +848,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Episode"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.FFmpegProfile", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.FFmpegProfile", b => { b.HasOne("ErsatzTV.Core.Domain.Resolution", "Resolution") .WithMany() @@ -1235,9 +859,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Resolution"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Library", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Library", b => { b.HasOne("ErsatzTV.Core.Domain.MediaSource", "MediaSource") .WithMany("Libraries") @@ -1248,9 +870,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("MediaSource"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.LibraryPath", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.LibraryPath", b => { b.HasOne("ErsatzTV.Core.Domain.Library", "Library") .WithMany("Paths") @@ -1261,9 +881,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Library"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.MediaFile", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaFile", b => { b.HasOne("ErsatzTV.Core.Domain.MediaVersion", "MediaVersion") .WithMany("MediaFiles") @@ -1274,9 +892,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("MediaVersion"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.MediaItem", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaItem", b => { b.HasOne("ErsatzTV.Core.Domain.LibraryPath", "LibraryPath") .WithMany("MediaItems") @@ -1284,10 +900,7 @@ namespace ErsatzTV.Infrastructure.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.OwnsOne( - "ErsatzTV.Core.Domain.MediaItemStatistics", - "Statistics", - b1 => + b.OwnsOne("ErsatzTV.Core.Domain.MediaItemStatistics", "Statistics", b1 => { b1.Property("MediaItemId") .HasColumnType("INTEGER"); @@ -1332,9 +945,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Statistics"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.MediaVersion", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaVersion", b => { b.HasOne("ErsatzTV.Core.Domain.Episode", null) .WithMany("MediaVersions") @@ -1347,9 +958,7 @@ namespace ErsatzTV.Infrastructure.Migrations .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.NewMovieMetadata", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.MovieMetadata", b => { b.HasOne("ErsatzTV.Core.Domain.Movie", "Movie") .WithMany("MovieMetadata") @@ -1360,9 +969,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Movie"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Playout", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Playout", b => { b.HasOne("ErsatzTV.Core.Domain.Channel", "Channel") .WithMany("Playouts") @@ -1376,10 +983,7 @@ namespace ErsatzTV.Infrastructure.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.OwnsOne( - "ErsatzTV.Core.Domain.PlayoutAnchor", - "Anchor", - b1 => + b.OwnsOne("ErsatzTV.Core.Domain.PlayoutAnchor", "Anchor", b1 => { b1.Property("PlayoutId") .HasColumnType("INTEGER"); @@ -1415,9 +1019,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("ProgramSchedule"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlayoutItem", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlayoutItem", b => { b.HasOne("ErsatzTV.Core.Domain.MediaItem", "MediaItem") .WithMany() @@ -1436,9 +1038,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Playout"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlayoutProgramScheduleAnchor", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlayoutProgramScheduleAnchor", b => { b.HasOne("ErsatzTV.Core.Domain.MediaItem", "MediaItem") .WithMany() @@ -1460,10 +1060,7 @@ namespace ErsatzTV.Infrastructure.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.OwnsOne( - "ErsatzTV.Core.Domain.MediaCollectionEnumeratorState", - "EnumeratorState", - b1 => + b.OwnsOne("ErsatzTV.Core.Domain.CollectionEnumeratorState", "EnumeratorState", b1 => { b1.Property("PlayoutProgramScheduleAnchorId") .HasColumnType("INTEGER"); @@ -1493,9 +1090,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("ProgramSchedule"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlexConnection", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexConnection", b => { b.HasOne("ErsatzTV.Core.Domain.PlexMediaSource", "PlexMediaSource") .WithMany("Connections") @@ -1506,18 +1101,12 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("PlexMediaSource"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItem", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItem", b => { b.HasOne("ErsatzTV.Core.Domain.Collection", "Collection") .WithMany() .HasForeignKey("CollectionId"); - b.HasOne("ErsatzTV.Core.Domain.MediaCollection", "MediaCollection") - .WithMany() - .HasForeignKey("MediaCollectionId"); - b.HasOne("ErsatzTV.Core.Domain.MediaItem", "MediaItem") .WithMany() .HasForeignKey("MediaItemId"); @@ -1528,30 +1117,14 @@ namespace ErsatzTV.Infrastructure.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.HasOne("ErsatzTV.Core.Domain.TelevisionSeason", "TelevisionSeason") - .WithMany() - .HasForeignKey("TelevisionSeasonId"); - - b.HasOne("ErsatzTV.Core.Domain.TelevisionShow", "TelevisionShow") - .WithMany() - .HasForeignKey("TelevisionShowId"); - b.Navigation("Collection"); - b.Navigation("MediaCollection"); - b.Navigation("MediaItem"); b.Navigation("ProgramSchedule"); - - b.Navigation("TelevisionSeason"); - - b.Navigation("TelevisionShow"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ShowMetadata", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ShowMetadata", b => { b.HasOne("ErsatzTV.Core.Domain.Show", "Show") .WithMany("ShowMetadata") @@ -1562,129 +1135,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Show"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionEpisodeMetadata", - b => - { - b.HasOne("ErsatzTV.Core.Domain.TelevisionEpisodeMediaItem", "TelevisionEpisode") - .WithOne("Metadata") - .HasForeignKey("ErsatzTV.Core.Domain.TelevisionEpisodeMetadata", "TelevisionEpisodeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("TelevisionEpisode"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionSeason", - b => - { - b.HasOne("ErsatzTV.Core.Domain.TelevisionShow", "TelevisionShow") - .WithMany("Seasons") - .HasForeignKey("TelevisionShowId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("TelevisionShow"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionShowMetadata", - b => - { - b.HasOne("ErsatzTV.Core.Domain.TelevisionShow", "TelevisionShow") - .WithOne("Metadata") - .HasForeignKey("ErsatzTV.Core.Domain.TelevisionShowMetadata", "TelevisionShowId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("TelevisionShow"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionShowSource", - b => - { - b.HasOne("ErsatzTV.Core.Domain.TelevisionShow", "TelevisionShow") - .WithMany("Sources") - .HasForeignKey("TelevisionShowId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("TelevisionShow"); - }); - - modelBuilder.Entity( - "MovieSimpleMediaCollection", - b => - { - b.HasOne("ErsatzTV.Core.Domain.Movie", null) - .WithMany() - .HasForeignKey("MoviesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("ErsatzTV.Core.Domain.SimpleMediaCollection", null) - .WithMany() - .HasForeignKey("SimpleMediaCollectionsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity( - "SimpleMediaCollectionTelevisionEpisodeMediaItem", - b => - { - b.HasOne("ErsatzTV.Core.Domain.SimpleMediaCollection", null) - .WithMany() - .HasForeignKey("SimpleMediaCollectionsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("ErsatzTV.Core.Domain.TelevisionEpisodeMediaItem", null) - .WithMany() - .HasForeignKey("TelevisionEpisodesId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity( - "SimpleMediaCollectionTelevisionSeason", - b => - { - b.HasOne("ErsatzTV.Core.Domain.SimpleMediaCollection", null) - .WithMany() - .HasForeignKey("SimpleMediaCollectionsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("ErsatzTV.Core.Domain.TelevisionSeason", null) - .WithMany() - .HasForeignKey("TelevisionSeasonsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity( - "SimpleMediaCollectionTelevisionShow", - b => - { - b.HasOne("ErsatzTV.Core.Domain.SimpleMediaCollection", null) - .WithMany() - .HasForeignKey("SimpleMediaCollectionsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("ErsatzTV.Core.Domain.TelevisionShow", null) - .WithMany() - .HasForeignKey("TelevisionShowsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.LocalLibrary", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.LocalLibrary", b => { b.HasOne("ErsatzTV.Core.Domain.Library", null) .WithOne() @@ -1693,9 +1144,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlexLibrary", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexLibrary", b => { b.HasOne("ErsatzTV.Core.Domain.Library", null) .WithOne() @@ -1704,20 +1153,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.SimpleMediaCollection", - b => - { - b.HasOne("ErsatzTV.Core.Domain.MediaCollection", null) - .WithOne() - .HasForeignKey("ErsatzTV.Core.Domain.SimpleMediaCollection", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Episode", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Episode", b => { b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) .WithOne() @@ -1734,9 +1170,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Season"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Movie", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Movie", b => { b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) .WithOne() @@ -1745,9 +1179,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Season", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b => { b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) .WithOne() @@ -1764,9 +1196,7 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Show"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Show", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Show", b => { b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) .WithOne() @@ -1775,28 +1205,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionEpisodeMediaItem", - b => - { - b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) - .WithOne() - .HasForeignKey("ErsatzTV.Core.Domain.TelevisionEpisodeMediaItem", "Id") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("ErsatzTV.Core.Domain.TelevisionSeason", "Season") - .WithMany("Episodes") - .HasForeignKey("SeasonId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Season"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.LocalMediaSource", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.LocalMediaSource", b => { b.HasOne("ErsatzTV.Core.Domain.MediaSource", null) .WithOne() @@ -1805,9 +1214,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlexMediaSource", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSource", b => { b.HasOne("ErsatzTV.Core.Domain.MediaSource", null) .WithOne() @@ -1816,9 +1223,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItemDuration", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemDuration", b => { b.HasOne("ErsatzTV.Core.Domain.ProgramScheduleItem", null) .WithOne() @@ -1827,9 +1232,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItemFlood", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemFlood", b => { b.HasOne("ErsatzTV.Core.Domain.ProgramScheduleItem", null) .WithOne() @@ -1838,9 +1241,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItemMultiple", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemMultiple", b => { b.HasOne("ErsatzTV.Core.Domain.ProgramScheduleItem", null) .WithOne() @@ -1849,9 +1250,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramScheduleItemOne", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemOne", b => { b.HasOne("ErsatzTV.Core.Domain.ProgramScheduleItem", null) .WithOne() @@ -1860,22 +1259,7 @@ namespace ErsatzTV.Infrastructure.Migrations .IsRequired(); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.LocalTelevisionShowSource", - b => - { - b.HasOne("ErsatzTV.Core.Domain.LocalMediaSource", "MediaSource") - .WithMany() - .HasForeignKey("MediaSourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("MediaSource"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.PlexMovie", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMovie", b => { b.HasOne("ErsatzTV.Core.Domain.Movie", null) .WithOne() @@ -1890,83 +1274,85 @@ namespace ErsatzTV.Infrastructure.Migrations b.Navigation("Part"); }); - modelBuilder.Entity("ErsatzTV.Core.Domain.Channel", b => { b.Navigation("Playouts"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.Channel", b => + { + b.Navigation("Playouts"); + }); - modelBuilder.Entity("ErsatzTV.Core.Domain.Collection", b => { b.Navigation("CollectionItems"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.Collection", b => + { + b.Navigation("CollectionItems"); + }); - modelBuilder.Entity("ErsatzTV.Core.Domain.Library", b => { b.Navigation("Paths"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.Library", b => + { + b.Navigation("Paths"); + }); - modelBuilder.Entity("ErsatzTV.Core.Domain.LibraryPath", b => { b.Navigation("MediaItems"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.LibraryPath", b => + { + b.Navigation("MediaItems"); + }); - modelBuilder.Entity("ErsatzTV.Core.Domain.MediaItem", b => { b.Navigation("CollectionItems"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaItem", b => + { + b.Navigation("CollectionItems"); + }); - modelBuilder.Entity("ErsatzTV.Core.Domain.MediaSource", b => { b.Navigation("Libraries"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaSource", b => + { + b.Navigation("Libraries"); + }); - modelBuilder.Entity("ErsatzTV.Core.Domain.MediaVersion", b => { b.Navigation("MediaFiles"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.MediaVersion", b => + { + b.Navigation("MediaFiles"); + }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Playout", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Playout", b => { b.Navigation("Items"); b.Navigation("ProgramScheduleAnchors"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.ProgramSchedule", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramSchedule", b => { b.Navigation("Items"); b.Navigation("Playouts"); }); - modelBuilder.Entity("ErsatzTV.Core.Domain.TelevisionSeason", b => { b.Navigation("Episodes"); }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.TelevisionShow", - b => - { - b.Navigation("Metadata"); - - b.Navigation("Seasons"); - - b.Navigation("Sources"); - }); - - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Episode", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Episode", b => { b.Navigation("EpisodeMetadata"); b.Navigation("MediaVersions"); }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Movie", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Movie", b => { b.Navigation("MediaVersions"); b.Navigation("MovieMetadata"); }); - modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b => { b.Navigation("Episodes"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.Season", b => + { + b.Navigation("Episodes"); + }); - modelBuilder.Entity( - "ErsatzTV.Core.Domain.Show", - b => + modelBuilder.Entity("ErsatzTV.Core.Domain.Show", b => { b.Navigation("Seasons"); b.Navigation("ShowMetadata"); }); - modelBuilder.Entity("ErsatzTV.Core.Domain.TelevisionEpisodeMediaItem", b => { b.Navigation("Metadata"); }); - - modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSource", b => { b.Navigation("Connections"); }); + modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSource", b => + { + b.Navigation("Connections"); + }); #pragma warning restore 612, 618 } }