diff --git a/Jellyfin.Server.Implementations/JellyfinDb.cs b/Jellyfin.Server.Implementations/JellyfinDb.cs index e34e12e3fe..6443100806 100644 --- a/Jellyfin.Server.Implementations/JellyfinDb.cs +++ b/Jellyfin.Server.Implementations/JellyfinDb.cs @@ -8,154 +8,153 @@ using Jellyfin.Data.Entities.Security; using Jellyfin.Data.Interfaces; using Microsoft.EntityFrameworkCore; -namespace Jellyfin.Server.Implementations +namespace Jellyfin.Server.Implementations; + +/// +public class JellyfinDb : DbContext { - /// - public class JellyfinDb : DbContext + /// + /// Initializes a new instance of the class. + /// + /// The database context options. + public JellyfinDb(DbContextOptions options) : base(options) { - /// - /// Initializes a new instance of the class. - /// - /// The database context options. - public JellyfinDb(DbContextOptions options) : base(options) + } + + /// + /// Gets or sets the default connection string. + /// + public static string ConnectionString { get; set; } = @"Data Source=jellyfin.db"; + + public virtual DbSet AccessSchedules { get; set; } + + public virtual DbSet ActivityLogs { get; set; } + + public virtual DbSet ApiKeys { get; set; } + + public virtual DbSet Devices { get; set; } + + public virtual DbSet DeviceOptions { get; set; } + + public virtual DbSet DisplayPreferences { get; set; } + + public virtual DbSet ImageInfos { get; set; } + + public virtual DbSet ItemDisplayPreferences { get; set; } + + public virtual DbSet CustomItemDisplayPreferences { get; set; } + + public virtual DbSet Permissions { get; set; } + + public virtual DbSet Preferences { get; set; } + + public virtual DbSet Users { get; set; } + + /*public virtual DbSet Artwork { get; set; } + + public virtual DbSet Books { get; set; } + + public virtual DbSet BookMetadata { get; set; } + + public virtual DbSet Chapters { get; set; } + + public virtual DbSet Collections { get; set; } + + public virtual DbSet CollectionItems { get; set; } + + public virtual DbSet Companies { get; set; } + + public virtual DbSet CompanyMetadata { get; set; } + + public virtual DbSet CustomItems { get; set; } + + public virtual DbSet CustomItemMetadata { get; set; } + + public virtual DbSet Episodes { get; set; } + + public virtual DbSet EpisodeMetadata { get; set; } + + public virtual DbSet Genres { get; set; } + + public virtual DbSet Groups { get; set; } + + public virtual DbSet Libraries { get; set; } + + public virtual DbSet LibraryItems { get; set; } + + public virtual DbSet LibraryRoot { get; set; } + + public virtual DbSet MediaFiles { get; set; } + + public virtual DbSet MediaFileStream { get; set; } + + public virtual DbSet Metadata { get; set; } + + public virtual DbSet MetadataProviders { get; set; } + + public virtual DbSet MetadataProviderIds { get; set; } + + public virtual DbSet Movies { get; set; } + + public virtual DbSet MovieMetadata { get; set; } + + public virtual DbSet MusicAlbums { get; set; } + + public virtual DbSet MusicAlbumMetadata { get; set; } + + public virtual DbSet People { get; set; } + + public virtual DbSet PersonRoles { get; set; } + + public virtual DbSet Photo { get; set; } + + public virtual DbSet PhotoMetadata { get; set; } + + public virtual DbSet ProviderMappings { get; set; } + + public virtual DbSet Ratings { get; set; } + + /// + /// Repository for global::Jellyfin.Data.Entities.RatingSource - This is the entity to + /// store review ratings, not age ratings. + /// + public virtual DbSet RatingSources { get; set; } + + public virtual DbSet Releases { get; set; } + + public virtual DbSet Seasons { get; set; } + + public virtual DbSet SeasonMetadata { get; set; } + + public virtual DbSet Series { get; set; } + + public virtual DbSet SeriesMetadata { get; set; } + + public virtual DbSet Tracks { get; set; } + + public virtual DbSet TrackMetadata { get; set; }*/ + + /// + public override int SaveChanges() + { + foreach (var saveEntity in ChangeTracker.Entries() + .Where(e => e.State == EntityState.Modified) + .Select(entry => entry.Entity) + .OfType()) { + saveEntity.OnSavingChanges(); } - /// - /// Gets or sets the default connection string. - /// - public static string ConnectionString { get; set; } = @"Data Source=jellyfin.db"; + return base.SaveChanges(); + } - public virtual DbSet AccessSchedules { get; set; } + /// + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.SetDefaultDateTimeKind(DateTimeKind.Utc); + base.OnModelCreating(modelBuilder); - public virtual DbSet ActivityLogs { get; set; } - - public virtual DbSet ApiKeys { get; set; } - - public virtual DbSet Devices { get; set; } - - public virtual DbSet DeviceOptions { get; set; } - - public virtual DbSet DisplayPreferences { get; set; } - - public virtual DbSet ImageInfos { get; set; } - - public virtual DbSet ItemDisplayPreferences { get; set; } - - public virtual DbSet CustomItemDisplayPreferences { get; set; } - - public virtual DbSet Permissions { get; set; } - - public virtual DbSet Preferences { get; set; } - - public virtual DbSet Users { get; set; } - - /*public virtual DbSet Artwork { get; set; } - - public virtual DbSet Books { get; set; } - - public virtual DbSet BookMetadata { get; set; } - - public virtual DbSet Chapters { get; set; } - - public virtual DbSet Collections { get; set; } - - public virtual DbSet CollectionItems { get; set; } - - public virtual DbSet Companies { get; set; } - - public virtual DbSet CompanyMetadata { get; set; } - - public virtual DbSet CustomItems { get; set; } - - public virtual DbSet CustomItemMetadata { get; set; } - - public virtual DbSet Episodes { get; set; } - - public virtual DbSet EpisodeMetadata { get; set; } - - public virtual DbSet Genres { get; set; } - - public virtual DbSet Groups { get; set; } - - public virtual DbSet Libraries { get; set; } - - public virtual DbSet LibraryItems { get; set; } - - public virtual DbSet LibraryRoot { get; set; } - - public virtual DbSet MediaFiles { get; set; } - - public virtual DbSet MediaFileStream { get; set; } - - public virtual DbSet Metadata { get; set; } - - public virtual DbSet MetadataProviders { get; set; } - - public virtual DbSet MetadataProviderIds { get; set; } - - public virtual DbSet Movies { get; set; } - - public virtual DbSet MovieMetadata { get; set; } - - public virtual DbSet MusicAlbums { get; set; } - - public virtual DbSet MusicAlbumMetadata { get; set; } - - public virtual DbSet People { get; set; } - - public virtual DbSet PersonRoles { get; set; } - - public virtual DbSet Photo { get; set; } - - public virtual DbSet PhotoMetadata { get; set; } - - public virtual DbSet ProviderMappings { get; set; } - - public virtual DbSet Ratings { get; set; } - - /// - /// Repository for global::Jellyfin.Data.Entities.RatingSource - This is the entity to - /// store review ratings, not age ratings. - /// - public virtual DbSet RatingSources { get; set; } - - public virtual DbSet Releases { get; set; } - - public virtual DbSet Seasons { get; set; } - - public virtual DbSet SeasonMetadata { get; set; } - - public virtual DbSet Series { get; set; } - - public virtual DbSet SeriesMetadata { get; set; } - - public virtual DbSet Tracks { get; set; } - - public virtual DbSet TrackMetadata { get; set; }*/ - - /// - public override int SaveChanges() - { - foreach (var saveEntity in ChangeTracker.Entries() - .Where(e => e.State == EntityState.Modified) - .Select(entry => entry.Entity) - .OfType()) - { - saveEntity.OnSavingChanges(); - } - - return base.SaveChanges(); - } - - /// - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder.SetDefaultDateTimeKind(DateTimeKind.Utc); - base.OnModelCreating(modelBuilder); - - // Configuration for each entity is in it's own class inside 'ModelConfiguration'. - modelBuilder.ApplyConfigurationsFromAssembly(typeof(JellyfinDb).Assembly); - } + // Configuration for each entity is in it's own class inside 'ModelConfiguration'. + modelBuilder.ApplyConfigurationsFromAssembly(typeof(JellyfinDb).Assembly); } }