using ErsatzTV.Core.Domain; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; namespace ErsatzTV.Infrastructure.Data { public class TvContext : DbContext { private readonly ILoggerFactory _loggerFactory; public TvContext(DbContextOptions options, ILoggerFactory loggerFactory) : base(options) => _loggerFactory = loggerFactory; public DbSet ConfigElements { get; set; } public DbSet Channels { get; set; } public DbSet ChannelWatermarks { get; set; } public DbSet MediaSources { get; set; } public DbSet LocalMediaSources { get; set; } public DbSet PlexMediaSources { get; set; } public DbSet JellyfinMediaSources { get; set; } public DbSet EmbyMediaSources { get; set; } public DbSet Libraries { get; set; } public DbSet LocalLibraries { get; set; } public DbSet LibraryPaths { get; set; } public DbSet LibraryFolders { get; set; } public DbSet PlexLibraries { get; set; } public DbSet JellyfinLibraries { get; set; } public DbSet EmbyLibraries { get; set; } public DbSet PlexPathReplacements { get; set; } public DbSet JellyfinPathReplacements { get; set; } public DbSet EmbyPathReplacements { get; set; } public DbSet MediaItems { get; set; } public DbSet MediaVersions { get; set; } public DbSet MediaFiles { get; set; } public DbSet Movies { get; set; } public DbSet MovieMetadata { get; set; } public DbSet Artists { get; set; } public DbSet ArtistMetadata { get; set; } public DbSet MusicVideos { get; set; } public DbSet MusicVideoMetadata { get; set; } public DbSet OtherVideos { get; set; } public DbSet OtherVideoMetadata { get; set; } public DbSet Shows { get; set; } public DbSet ShowMetadata { get; set; } public DbSet Seasons { get; set; } public DbSet SeasonMetadata { get; set; } public DbSet Episodes { get; set; } public DbSet EpisodeMetadata { get; set; } public DbSet PlexMovies { get; set; } public DbSet PlexShows { get; set; } public DbSet PlexSeasons { get; set; } public DbSet PlexEpisodes { get; set; } public DbSet JellyfinMovies { get; set; } public DbSet JellyfinShows { get; set; } public DbSet JellyfinSeasons { get; set; } public DbSet JellyfinEpisodes { get; set; } public DbSet EmbyMovies { get; set; } public DbSet EmbyShows { get; set; } public DbSet EmbySeasons { get; set; } public DbSet EmbyEpisodes { get; set; } public DbSet Collections { get; set; } public DbSet CollectionItems { get; set; } public DbSet MultiCollections { get; set; } public DbSet SmartCollections { get; set; } public DbSet ProgramSchedules { get; set; } public DbSet ProgramScheduleItems { get; set; } public DbSet Playouts { get; set; } public DbSet PlayoutItems { get; set; } public DbSet PlayoutProgramScheduleItemAnchors { get; set; } public DbSet FFmpegProfiles { get; set; } public DbSet Resolutions { get; set; } public DbSet LanguageCodes { get; set; } public DbSet TraktLists { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseLoggerFactory(_loggerFactory); protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); builder.ApplyConfigurationsFromAssembly(typeof(TvContext).Assembly); } } }