//
// Copyright (c) PlaceholderCompany. All rights reserved.
//
#pragma warning disable SA1202
namespace Jellyfin.Database.Implementations;
using System;
using System.Data.Common;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using Jellyfin.Database.Implementations.Entities.Security;
using Jellyfin.Database.Implementations.Interfaces;
using Jellyfin.Database.Implementations.Locking;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.Extensions.Logging;
///
///
/// Initializes a new instance of the class.
///
/// The database context options.
/// Logger.
/// The provider for the database engine specific operations.
/// The locking behavior.
public class JellyfinDbContext(DbContextOptions options, ILogger logger, IJellyfinDatabaseProvider jellyfinDatabaseProvider, IEntityFrameworkCoreLockingBehavior entityFrameworkCoreLocking) : DbContext(options)
{
private static readonly Action SaveChangesError =
LoggerMessage.Define(
LogLevel.Error,
new EventId(1, nameof(SaveChanges)),
"Error trying to save changes.");
///
/// Gets the containing the access schedules.
///
public DbSet AccessSchedules => this.Set();
///
/// Gets the containing the activity logs.
///
public DbSet ActivityLogs => this.Set();
///
/// Gets the containing the API keys.
///
public DbSet ApiKeys => this.Set();
///
/// Gets the containing the devices.
///
public DbSet Devices => this.Set();
///
/// Gets the containing the device options.
///
public DbSet DeviceOptions => this.Set();
///
/// Gets the containing the display preferences.
///
public DbSet DisplayPreferences => this.Set();
///
/// Gets the containing the image infos.
///
public DbSet ImageInfos => this.Set();
///
/// Gets the containing the item display preferences.
///
public DbSet ItemDisplayPreferences => this.Set();
///
/// Gets the containing the custom item display preferences.
///
public DbSet CustomItemDisplayPreferences => this.Set();
///
/// Gets the containing the permissions.
///
public DbSet Permissions => this.Set();
///
/// Gets the containing the preferences.
///
public DbSet Preferences => this.Set();
///
/// Gets the containing the users.
///
public DbSet Users => this.Set();
///
/// Gets the containing the trickplay metadata.
///
public DbSet TrickplayInfos => this.Set();
///
/// Gets the containing the media segments.
///
public DbSet MediaSegments => this.Set();
///
/// Gets the containing the user data.
///
public DbSet UserData => this.Set();
///
/// Gets the containing the user data.
///
public DbSet AncestorIds => this.Set();
///
/// Gets the containing the user data.
///
public DbSet AttachmentStreamInfos => this.Set();
///
/// Gets the containing the user data.
///
public DbSet BaseItems => this.Set();
///
/// Gets the containing the user data.
///
public DbSet Chapters => this.Set();
///
/// Gets the .
///
public DbSet ItemValues => this.Set();
///
/// Gets the .
///
public DbSet ItemValuesMap => this.Set();
///
/// Gets the .
///
public DbSet MediaStreamInfos => this.Set();
///
/// Gets the .
///
public DbSet Peoples => this.Set();
///
/// Gets the .
///
public DbSet PeopleBaseItemMap => this.Set();
///
/// Gets the containing the referenced Providers with ids.
///
public DbSet BaseItemProviders => this.Set();
///
/// Gets the .
///
public DbSet BaseItemImageInfos => this.Set();
///
/// Gets the .
///
public DbSet BaseItemMetadataFields => this.Set();
///
/// Gets the .
///
public DbSet BaseItemTrailerTypes => this.Set();
///
/// Gets the .
///
public DbSet KeyframeData => this.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