using System;
using System.Linq;
using Jellyfin.Data.Entities;
using Jellyfin.Data.Entities.Security;
using Jellyfin.Data.Interfaces;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations;
/// 
/// 
/// Initializes a new instance of the  class.
/// 
/// The database context options.
/// Logger.
public class JellyfinDbContext(DbContextOptions options, ILogger logger) : DbContext(options)
{
    /// 
    /// Gets the  containing the access schedules.
    /// 
    public DbSet AccessSchedules => Set();
    /// 
    /// Gets the  containing the activity logs.
    /// 
    public DbSet ActivityLogs => Set();
    /// 
    /// Gets the  containing the API keys.
    /// 
    public DbSet ApiKeys => Set();
    /// 
    /// Gets the  containing the devices.
    /// 
    public DbSet Devices => Set();
    /// 
    /// Gets the  containing the device options.
    /// 
    public DbSet DeviceOptions => Set();
    /// 
    /// Gets the  containing the display preferences.
    /// 
    public DbSet DisplayPreferences => Set();
    /// 
    /// Gets the  containing the image infos.
    /// 
    public DbSet ImageInfos => Set();
    /// 
    /// Gets the  containing the item display preferences.
    /// 
    public DbSet ItemDisplayPreferences => Set();
    /// 
    /// Gets the  containing the custom item display preferences.
    /// 
    public DbSet CustomItemDisplayPreferences => Set();
    /// 
    /// Gets the  containing the permissions.
    /// 
    public DbSet Permissions => Set();
    /// 
    /// Gets the  containing the preferences.
    /// 
    public DbSet Preferences => Set();
    /// 
    /// Gets the  containing the users.
    /// 
    public DbSet Users => Set();
    /// 
    /// Gets the  containing the trickplay metadata.
    /// 
    public DbSet TrickplayInfos => Set();
    /// 
    /// Gets the  containing the media segments.
    /// 
    public DbSet MediaSegments => Set();
    /// 
    /// Gets the  containing the user data.
    /// 
    public DbSet UserData => Set();
    /// 
    /// Gets the  containing the user data.
    /// 
    public DbSet AncestorIds => Set();
    /// 
    /// Gets the  containing the user data.
    /// 
    public DbSet AttachmentStreamInfos => Set();
    /// 
    /// Gets the  containing the user data.
    /// 
    public DbSet BaseItems => Set();
    /// 
    /// Gets the  containing the user data.
    /// 
    public DbSet Chapters => Set();
    /// 
    /// Gets the .
    /// 
    public DbSet ItemValues => Set();
    /// 
    /// Gets the .
    /// 
    public DbSet ItemValuesMap => Set();
    /// 
    /// Gets the .
    /// 
    public DbSet MediaStreamInfos => Set();
    /// 
    /// Gets the .
    /// 
    public DbSet Peoples => Set();
    /// 
    /// Gets the .
    /// 
    public DbSet PeopleBaseItemMap => Set();
    /// 
    /// Gets the  containing the referenced Providers with ids.
    /// 
    public DbSet BaseItemProviders => Set();
    /// 
    /// Gets the .
    /// 
    public DbSet BaseItemImageInfos => Set();
    /// 
    /// Gets the .
    /// 
    public DbSet BaseItemMetadataFields => Set();
    /// 
    /// Gets the .
    /// 
    public DbSet BaseItemTrailerTypes => Set();
    /*public DbSet Artwork => Set();
    public DbSet Books => Set();
    public DbSet BookMetadata => Set();
    public DbSet Chapters => Set();
    public DbSet Collections => Set();
    public DbSet CollectionItems => Set();
    public DbSet Companies => Set();
    public DbSet CompanyMetadata => Set();
    public DbSet CustomItems => Set();
    public DbSet CustomItemMetadata => Set();
    public DbSet Episodes => Set();
    public DbSet EpisodeMetadata => Set();
    public DbSet Genres => Set();
    public DbSet Groups => Set();
    public DbSet Libraries => Set();
    public DbSet LibraryItems => Set();
    public DbSet LibraryRoot => Set();
    public DbSet MediaFiles => Set();
    public DbSet MediaFileStream => Set();
    public DbSet Metadata => Set();
    public DbSet MetadataProviders => Set();
    public DbSet MetadataProviderIds => Set();
    public DbSet Movies => Set();
    public DbSet MovieMetadata => Set();
    public DbSet MusicAlbums => Set();
    public DbSet MusicAlbumMetadata => Set();
    public DbSet People => Set();
    public DbSet PersonRoles => Set();
    public DbSet Photo => Set();
    public DbSet PhotoMetadata => Set();
    public DbSet ProviderMappings => Set();
    public DbSet Ratings => Set();
    /// 
    /// Repository for global::Jellyfin.Data.Entities.RatingSource - This is the entity to
    /// store review ratings, not age ratings.
    /// 
    public DbSet RatingSources => Set();
    public DbSet Releases => Set();
    public DbSet Seasons => Set();
    public DbSet SeasonMetadata => Set();
    public DbSet Series => Set();
    public DbSet SeriesMetadata => Set Tracks => Set