// 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("20210220003018_CollectionsRework")] partial class CollectionsRework { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "5.0.3"); modelBuilder.Entity("ErsatzTV.Core.AggregateModels.GenericIntegerId", b => { b.Property("Id") .HasColumnType("INTEGER"); b.ToView("No table or view exists for GenericIntegerId"); }); modelBuilder.Entity("ErsatzTV.Core.AggregateModels.MediaCollectionSummary", b => { b.Property("Id") .HasColumnType("INTEGER"); b.Property("IsSimple") .HasColumnType("INTEGER"); b.Property("ItemCount") .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.ToView("No table or view exists for MediaCollectionSummary"); }); modelBuilder.Entity("ErsatzTV.Core.AggregateModels.MediaItemSummary", b => { b.Property("MediaItemId") .HasColumnType("INTEGER"); b.Property("Poster") .HasColumnType("TEXT"); b.Property("SortTitle") .HasColumnType("TEXT"); b.Property("Subtitle") .HasColumnType("TEXT"); b.Property("Title") .HasColumnType("TEXT"); b.ToView("No table or view exists for MediaItemSummary"); }); 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("Channels"); }); 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("ConfigElements"); }); 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("FFmpegProfiles"); }); 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("MediaCollections"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.MediaItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("LastWriteTime") .HasColumnType("TEXT"); b.Property("MediaSourceId") .HasColumnType("INTEGER"); b.Property("Path") .HasColumnType("TEXT"); b.Property("Poster") .HasColumnType("TEXT"); b.Property("PosterLastWriteTime") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("MediaSourceId"); b.ToTable("MediaItems"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.MediaSource", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.Property("SourceType") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("MediaSources"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.MovieMetadata", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("ContentRating") .HasColumnType("TEXT"); b.Property("LastWriteTime") .HasColumnType("TEXT"); b.Property("MovieId") .HasColumnType("INTEGER"); b.Property("Outline") .HasColumnType("TEXT"); b.Property("Plot") .HasColumnType("TEXT"); b.Property("Premiered") .HasColumnType("TEXT"); b.Property("SortTitle") .HasColumnType("TEXT"); b.Property("Source") .HasColumnType("INTEGER"); b.Property("Tagline") .HasColumnType("TEXT"); b.Property("Title") .HasColumnType("TEXT"); b.Property("Year") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("MovieId") .IsUnique(); b.ToTable("MovieMetadata"); }); 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("Playouts"); }); 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("PlayoutItems"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.PlayoutProgramScheduleAnchor", b => { b.Property("PlayoutId") .HasColumnType("INTEGER"); b.Property("ProgramScheduleId") .HasColumnType("INTEGER"); b.Property("MediaCollectionId") .HasColumnType("INTEGER"); b.HasKey("PlayoutId", "ProgramScheduleId", "MediaCollectionId"); b.HasIndex("MediaCollectionId"); b.HasIndex("ProgramScheduleId"); b.ToTable("PlayoutProgramScheduleItemAnchors"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSourceConnection", 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("PlexMediaSourceConnections"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSourceLibrary", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Key") .HasColumnType("TEXT"); b.Property("MediaType") .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.Property("PlexMediaSourceId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("PlexMediaSourceId"); b.ToTable("PlexMediaSourceLibraries"); }); 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("ProgramSchedules"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Index") .HasColumnType("INTEGER"); b.Property("MediaCollectionId") .HasColumnType("INTEGER"); b.Property("ProgramScheduleId") .HasColumnType("INTEGER"); b.Property("StartTime") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("MediaCollectionId"); b.HasIndex("ProgramScheduleId"); b.ToTable("ProgramScheduleItems"); }); 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("Resolutions"); }); 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("TelevisionSeasons"); }); 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("TelevisionShows"); }); 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("MovieMediaItemSimpleMediaCollection", b => { b.Property("MoviesId") .HasColumnType("INTEGER"); b.Property("SimpleMediaCollectionsId") .HasColumnType("INTEGER"); b.HasKey("MoviesId", "SimpleMediaCollectionsId"); b.HasIndex("SimpleMediaCollectionsId"); b.ToTable("SimpleMediaCollectionMovies"); }); modelBuilder.Entity("SimpleMediaCollectionTelevisionEpisodeMediaItem", b => { b.Property("SimpleMediaCollectionsId") .HasColumnType("INTEGER"); b.Property("TelevisionEpisodesId") .HasColumnType("INTEGER"); b.HasKey("SimpleMediaCollectionsId", "TelevisionEpisodesId"); b.HasIndex("TelevisionEpisodesId"); b.ToTable("SimpleMediaCollectionEpisodes"); }); modelBuilder.Entity("SimpleMediaCollectionTelevisionSeason", b => { b.Property("SimpleMediaCollectionsId") .HasColumnType("INTEGER"); b.Property("TelevisionSeasonsId") .HasColumnType("INTEGER"); b.HasKey("SimpleMediaCollectionsId", "TelevisionSeasonsId"); b.HasIndex("TelevisionSeasonsId"); b.ToTable("SimpleMediaCollectionSeasons"); }); modelBuilder.Entity("SimpleMediaCollectionTelevisionShow", b => { b.Property("SimpleMediaCollectionsId") .HasColumnType("INTEGER"); b.Property("TelevisionShowsId") .HasColumnType("INTEGER"); b.HasKey("SimpleMediaCollectionsId", "TelevisionShowsId"); b.HasIndex("TelevisionShowsId"); b.ToTable("SimpleMediaCollectionShows"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.SimpleMediaCollection", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaCollection"); b.ToTable("SimpleMediaCollections"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.MovieMediaItem", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); b.Property("MetadataId") .HasColumnType("INTEGER"); b.ToTable("Movies"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.TelevisionEpisodeMediaItem", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaItem"); b.Property("SeasonId") .HasColumnType("INTEGER"); b.HasIndex("SeasonId"); b.ToTable("TelevisionEpisodes"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.LocalMediaSource", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaSource"); b.Property("Folder") .HasColumnType("TEXT"); b.Property("MediaType") .HasColumnType("INTEGER"); b.ToTable("LocalMediaSources"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSource", b => { b.HasBaseType("ErsatzTV.Core.Domain.MediaSource"); b.Property("ClientIdentifier") .HasColumnType("TEXT"); b.Property("ProductVersion") .HasColumnType("TEXT"); b.ToTable("PlexMediaSources"); }); 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("ProgramScheduleDurationItems"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemFlood", b => { b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); b.ToTable("ProgramScheduleFloodItems"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemMultiple", b => { b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); b.Property("Count") .HasColumnType("INTEGER"); b.ToTable("ProgramScheduleMultipleItems"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItemOne", b => { b.HasBaseType("ErsatzTV.Core.Domain.ProgramScheduleItem"); b.ToTable("ProgramScheduleOneItems"); }); 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.Channel", b => { b.HasOne("ErsatzTV.Core.Domain.FFmpegProfile", "FFmpegProfile") .WithMany() .HasForeignKey("FFmpegProfileId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("FFmpegProfile"); }); 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.MediaItem", b => { b.HasOne("ErsatzTV.Core.Domain.MediaSource", "Source") .WithMany() .HasForeignKey("MediaSourceId") .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("MediaItems"); b1.WithOwner() .HasForeignKey("MediaItemId"); }); b.Navigation("Source"); b.Navigation("Statistics"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.MovieMetadata", b => { b.HasOne("ErsatzTV.Core.Domain.MovieMediaItem", "Movie") .WithOne("Metadata") .HasForeignKey("ErsatzTV.Core.Domain.MovieMetadata", "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("Playouts"); 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.MediaCollection", "MediaCollection") .WithMany() .HasForeignKey("MediaCollectionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); 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.MediaCollectionEnumeratorState", "EnumeratorState", b1 => { b1.Property("PlayoutProgramScheduleAnchorPlayoutId") .HasColumnType("INTEGER"); b1.Property("PlayoutProgramScheduleAnchorProgramScheduleId") .HasColumnType("INTEGER"); b1.Property("PlayoutProgramScheduleAnchorMediaCollectionId") .HasColumnType("INTEGER"); b1.Property("Index") .HasColumnType("INTEGER"); b1.Property("Seed") .HasColumnType("INTEGER"); b1.HasKey("PlayoutProgramScheduleAnchorPlayoutId", "PlayoutProgramScheduleAnchorProgramScheduleId", "PlayoutProgramScheduleAnchorMediaCollectionId"); b1.ToTable("PlayoutProgramScheduleItemAnchors"); b1.WithOwner() .HasForeignKey("PlayoutProgramScheduleAnchorPlayoutId", "PlayoutProgramScheduleAnchorProgramScheduleId", "PlayoutProgramScheduleAnchorMediaCollectionId"); }); b.Navigation("EnumeratorState"); b.Navigation("MediaCollection"); b.Navigation("Playout"); b.Navigation("ProgramSchedule"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSourceConnection", b => { b.HasOne("ErsatzTV.Core.Domain.PlexMediaSource", null) .WithMany("Connections") .HasForeignKey("PlexMediaSourceId"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSourceLibrary", b => { b.HasOne("ErsatzTV.Core.Domain.PlexMediaSource", null) .WithMany("Libraries") .HasForeignKey("PlexMediaSourceId"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.ProgramScheduleItem", b => { b.HasOne("ErsatzTV.Core.Domain.MediaCollection", "MediaCollection") .WithMany() .HasForeignKey("MediaCollectionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ErsatzTV.Core.Domain.ProgramSchedule", "ProgramSchedule") .WithMany("Items") .HasForeignKey("ProgramScheduleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("MediaCollection"); b.Navigation("ProgramSchedule"); }); 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("MovieMediaItemSimpleMediaCollection", b => { b.HasOne("ErsatzTV.Core.Domain.MovieMediaItem", 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.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.MovieMediaItem", b => { b.HasOne("ErsatzTV.Core.Domain.MediaItem", null) .WithOne() .HasForeignKey("ErsatzTV.Core.Domain.MovieMediaItem", "Id") .OnDelete(DeleteBehavior.Cascade) .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 => { 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.LocalTelevisionShowSource", b => { b.HasOne("ErsatzTV.Core.Domain.LocalMediaSource", "MediaSource") .WithMany() .HasForeignKey("MediaSourceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("MediaSource"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.Channel", b => { b.Navigation("Playouts"); }); 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.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.MovieMediaItem", b => { b.Navigation("Metadata"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.TelevisionEpisodeMediaItem", b => { b.Navigation("Metadata"); }); modelBuilder.Entity("ErsatzTV.Core.Domain.PlexMediaSource", b => { b.Navigation("Connections"); b.Navigation("Libraries"); }); #pragma warning restore 612, 618 } } }