diff --git a/Jellyfin.Server.Implementations/Migrations/20241010160703_LibraryDbMigration.Designer.cs b/Jellyfin.Server.Implementations/Migrations/20241010160703_LibraryDbMigration.Designer.cs
deleted file mode 100644
index 8fa35e59e9..0000000000
--- a/Jellyfin.Server.Implementations/Migrations/20241010160703_LibraryDbMigration.Designer.cs
+++ /dev/null
@@ -1,1582 +0,0 @@
-//
-using System;
-using Jellyfin.Server.Implementations;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-
-#nullable disable
-
-namespace Jellyfin.Server.Implementations.Migrations
-{
- [DbContext(typeof(JellyfinDbContext))]
- [Migration("20241010160703_LibraryDbMigration")]
- partial class LibraryDbMigration
- {
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder.HasAnnotation("ProductVersion", "8.0.10");
-
- modelBuilder.Entity("Jellyfin.Data.Entities.AccessSchedule", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("DayOfWeek")
- .HasColumnType("INTEGER");
-
- b.Property("EndHour")
- .HasColumnType("REAL");
-
- b.Property("StartHour")
- .HasColumnType("REAL");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("AccessSchedules");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.ActivityLog", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("DateCreated")
- .HasColumnType("TEXT");
-
- b.Property("ItemId")
- .HasMaxLength(256)
- .HasColumnType("TEXT");
-
- b.Property("LogSeverity")
- .HasColumnType("INTEGER");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(512)
- .HasColumnType("TEXT");
-
- b.Property("Overview")
- .HasMaxLength(512)
- .HasColumnType("TEXT");
-
- b.Property("RowVersion")
- .IsConcurrencyToken()
- .HasColumnType("INTEGER");
-
- b.Property("ShortOverview")
- .HasMaxLength(512)
- .HasColumnType("TEXT");
-
- b.Property("Type")
- .IsRequired()
- .HasMaxLength(256)
- .HasColumnType("TEXT");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("DateCreated");
-
- b.ToTable("ActivityLogs");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.AncestorId", b =>
- {
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("ParentItemId")
- .HasColumnType("TEXT");
-
- b.Property("BaseItemEntityId")
- .HasColumnType("TEXT");
-
- b.HasKey("ItemId", "ParentItemId");
-
- b.HasIndex("BaseItemEntityId");
-
- b.HasIndex("ParentItemId");
-
- b.ToTable("AncestorIds");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.AttachmentStreamInfo", b =>
- {
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("Index")
- .HasColumnType("INTEGER");
-
- b.Property("Codec")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("CodecTag")
- .HasColumnType("TEXT");
-
- b.Property("Comment")
- .HasColumnType("TEXT");
-
- b.Property("Filename")
- .HasColumnType("TEXT");
-
- b.Property("MimeType")
- .HasColumnType("TEXT");
-
- b.HasKey("ItemId", "Index");
-
- b.ToTable("AttachmentStreamInfos");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.BaseItemEntity", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("Album")
- .HasColumnType("TEXT");
-
- b.Property("AlbumArtists")
- .HasColumnType("TEXT");
-
- b.Property("Artists")
- .HasColumnType("TEXT");
-
- b.Property("Audio")
- .HasColumnType("INTEGER");
-
- b.Property("ChannelId")
- .HasColumnType("TEXT");
-
- b.Property("CleanName")
- .HasColumnType("TEXT");
-
- b.Property("CommunityRating")
- .HasColumnType("REAL");
-
- b.Property("CriticRating")
- .HasColumnType("REAL");
-
- b.Property("CustomRating")
- .HasColumnType("TEXT");
-
- b.Property("Data")
- .HasColumnType("TEXT");
-
- b.Property("DateCreated")
- .HasColumnType("TEXT");
-
- b.Property("DateLastMediaAdded")
- .HasColumnType("TEXT");
-
- b.Property("DateLastRefreshed")
- .HasColumnType("TEXT");
-
- b.Property("DateLastSaved")
- .HasColumnType("TEXT");
-
- b.Property("DateModified")
- .HasColumnType("TEXT");
-
- b.Property("EndDate")
- .HasColumnType("TEXT");
-
- b.Property("EpisodeTitle")
- .HasColumnType("TEXT");
-
- b.Property("ExternalId")
- .HasColumnType("TEXT");
-
- b.Property("ExternalSeriesId")
- .HasColumnType("TEXT");
-
- b.Property("ExternalServiceId")
- .HasColumnType("TEXT");
-
- b.Property("ExtraIds")
- .HasColumnType("TEXT");
-
- b.Property("ExtraType")
- .HasColumnType("INTEGER");
-
- b.Property("ForcedSortName")
- .HasColumnType("TEXT");
-
- b.Property("Genres")
- .HasColumnType("TEXT");
-
- b.Property("Height")
- .HasColumnType("INTEGER");
-
- b.Property("IndexNumber")
- .HasColumnType("INTEGER");
-
- b.Property("InheritedParentalRatingValue")
- .HasColumnType("INTEGER");
-
- b.Property("IsFolder")
- .HasColumnType("INTEGER");
-
- b.Property("IsInMixedFolder")
- .HasColumnType("INTEGER");
-
- b.Property("IsLocked")
- .HasColumnType("INTEGER");
-
- b.Property("IsMovie")
- .HasColumnType("INTEGER");
-
- b.Property("IsRepeat")
- .HasColumnType("INTEGER");
-
- b.Property("IsSeries")
- .HasColumnType("INTEGER");
-
- b.Property("IsVirtualItem")
- .HasColumnType("INTEGER");
-
- b.Property("LUFS")
- .HasColumnType("REAL");
-
- b.Property("MediaType")
- .HasColumnType("TEXT");
-
- b.Property("Name")
- .HasColumnType("TEXT");
-
- b.Property("NormalizationGain")
- .HasColumnType("REAL");
-
- b.Property("OfficialRating")
- .HasColumnType("TEXT");
-
- b.Property("OriginalTitle")
- .HasColumnType("TEXT");
-
- b.Property("Overview")
- .HasColumnType("TEXT");
-
- b.Property("OwnerId")
- .HasColumnType("TEXT");
-
- b.Property("ParentId")
- .HasColumnType("TEXT");
-
- b.Property("ParentIndexNumber")
- .HasColumnType("INTEGER");
-
- b.Property("Path")
- .HasColumnType("TEXT");
-
- b.Property("PreferredMetadataCountryCode")
- .HasColumnType("TEXT");
-
- b.Property("PreferredMetadataLanguage")
- .HasColumnType("TEXT");
-
- b.Property("PremiereDate")
- .HasColumnType("TEXT");
-
- b.Property("PresentationUniqueKey")
- .HasColumnType("TEXT");
-
- b.Property("PrimaryVersionId")
- .HasColumnType("TEXT");
-
- b.Property("ProductionLocations")
- .HasColumnType("TEXT");
-
- b.Property("ProductionYear")
- .HasColumnType("INTEGER");
-
- b.Property("RunTimeTicks")
- .HasColumnType("INTEGER");
-
- b.Property("SeasonId")
- .HasColumnType("TEXT");
-
- b.Property("SeasonName")
- .HasColumnType("TEXT");
-
- b.Property("SeriesId")
- .HasColumnType("TEXT");
-
- b.Property("SeriesName")
- .HasColumnType("TEXT");
-
- b.Property("SeriesPresentationUniqueKey")
- .HasColumnType("TEXT");
-
- b.Property("ShowId")
- .HasColumnType("TEXT");
-
- b.Property("Size")
- .HasColumnType("INTEGER");
-
- b.Property("SortName")
- .HasColumnType("TEXT");
-
- b.Property("StartDate")
- .HasColumnType("TEXT");
-
- b.Property("Studios")
- .HasColumnType("TEXT");
-
- b.Property("Tagline")
- .HasColumnType("TEXT");
-
- b.Property("Tags")
- .HasColumnType("TEXT");
-
- b.Property("TopParentId")
- .HasColumnType("TEXT");
-
- b.Property("TotalBitrate")
- .HasColumnType("INTEGER");
-
- b.Property("Type")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("UnratedType")
- .HasColumnType("TEXT");
-
- b.Property("UserDataKey")
- .HasColumnType("TEXT");
-
- b.Property("Width")
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("ParentId");
-
- b.HasIndex("Path");
-
- b.HasIndex("PresentationUniqueKey");
-
- b.HasIndex("TopParentId", "Id");
-
- b.HasIndex("UserDataKey", "Type");
-
- b.HasIndex("Type", "TopParentId", "Id");
-
- b.HasIndex("Type", "TopParentId", "PresentationUniqueKey");
-
- b.HasIndex("Type", "TopParentId", "StartDate");
-
- b.HasIndex("Id", "Type", "IsFolder", "IsVirtualItem");
-
- b.HasIndex("MediaType", "TopParentId", "IsVirtualItem", "PresentationUniqueKey");
-
- b.HasIndex("Type", "SeriesPresentationUniqueKey", "IsFolder", "IsVirtualItem");
-
- b.HasIndex("Type", "SeriesPresentationUniqueKey", "PresentationUniqueKey", "SortName");
-
- b.HasIndex("IsFolder", "TopParentId", "IsVirtualItem", "PresentationUniqueKey", "DateCreated");
-
- b.HasIndex("Type", "TopParentId", "IsVirtualItem", "PresentationUniqueKey", "DateCreated");
-
- b.ToTable("BaseItems");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.BaseItemImageInfo", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("Blurhash")
- .HasColumnType("BLOB");
-
- b.Property("DateModified")
- .HasColumnType("TEXT");
-
- b.Property("Height")
- .HasColumnType("INTEGER");
-
- b.Property("ImageType")
- .HasColumnType("INTEGER");
-
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("Path")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Width")
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("ItemId");
-
- b.ToTable("BaseItemImageInfos");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.BaseItemMetadataField", b =>
- {
- b.Property("Id")
- .HasColumnType("INTEGER");
-
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id", "ItemId");
-
- b.HasIndex("ItemId");
-
- b.ToTable("BaseItemMetadataFields");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.BaseItemProvider", b =>
- {
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("ProviderId")
- .HasColumnType("TEXT");
-
- b.Property("ProviderValue")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("ItemId", "ProviderId");
-
- b.HasIndex("ProviderId", "ProviderValue", "ItemId");
-
- b.ToTable("BaseItemProviders");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.BaseItemTrailerType", b =>
- {
- b.Property("Id")
- .HasColumnType("INTEGER");
-
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id", "ItemId");
-
- b.HasIndex("ItemId");
-
- b.ToTable("BaseItemTrailerTypes");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.Chapter", b =>
- {
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("ChapterIndex")
- .HasColumnType("INTEGER");
-
- b.Property("ImageDateModified")
- .HasColumnType("TEXT");
-
- b.Property("ImagePath")
- .HasColumnType("TEXT");
-
- b.Property("Name")
- .HasColumnType("TEXT");
-
- b.Property("StartPositionTicks")
- .HasColumnType("INTEGER");
-
- b.HasKey("ItemId", "ChapterIndex");
-
- b.ToTable("Chapters");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.CustomItemDisplayPreferences", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Client")
- .IsRequired()
- .HasMaxLength(32)
- .HasColumnType("TEXT");
-
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("Key")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.Property("Value")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId", "ItemId", "Client", "Key")
- .IsUnique();
-
- b.ToTable("CustomItemDisplayPreferences");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("ChromecastVersion")
- .HasColumnType("INTEGER");
-
- b.Property("Client")
- .IsRequired()
- .HasMaxLength(32)
- .HasColumnType("TEXT");
-
- b.Property("DashboardTheme")
- .HasMaxLength(32)
- .HasColumnType("TEXT");
-
- b.Property("EnableNextVideoInfoOverlay")
- .HasColumnType("INTEGER");
-
- b.Property("IndexBy")
- .HasColumnType("INTEGER");
-
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("ScrollDirection")
- .HasColumnType("INTEGER");
-
- b.Property("ShowBackdrop")
- .HasColumnType("INTEGER");
-
- b.Property("ShowSidebar")
- .HasColumnType("INTEGER");
-
- b.Property("SkipBackwardLength")
- .HasColumnType("INTEGER");
-
- b.Property("SkipForwardLength")
- .HasColumnType("INTEGER");
-
- b.Property("TvHome")
- .HasMaxLength(32)
- .HasColumnType("TEXT");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId", "ItemId", "Client")
- .IsUnique();
-
- b.ToTable("DisplayPreferences");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.HomeSection", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("DisplayPreferencesId")
- .HasColumnType("INTEGER");
-
- b.Property("Order")
- .HasColumnType("INTEGER");
-
- b.Property("Type")
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("DisplayPreferencesId");
-
- b.ToTable("HomeSection");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.ImageInfo", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("LastModified")
- .HasColumnType("TEXT");
-
- b.Property("Path")
- .IsRequired()
- .HasMaxLength(512)
- .HasColumnType("TEXT");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId")
- .IsUnique();
-
- b.ToTable("ImageInfos");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.ItemDisplayPreferences", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Client")
- .IsRequired()
- .HasMaxLength(32)
- .HasColumnType("TEXT");
-
- b.Property("IndexBy")
- .HasColumnType("INTEGER");
-
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("RememberIndexing")
- .HasColumnType("INTEGER");
-
- b.Property("RememberSorting")
- .HasColumnType("INTEGER");
-
- b.Property("SortBy")
- .IsRequired()
- .HasMaxLength(64)
- .HasColumnType("TEXT");
-
- b.Property("SortOrder")
- .HasColumnType("INTEGER");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.Property("ViewType")
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("ItemDisplayPreferences");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.ItemValue", b =>
- {
- b.Property("ItemValueId")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("CleanValue")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Type")
- .HasColumnType("INTEGER");
-
- b.Property("Value")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("ItemValueId");
-
- b.HasIndex("Type", "CleanValue");
-
- b.ToTable("ItemValues");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.ItemValueMap", b =>
- {
- b.Property("ItemValueId")
- .HasColumnType("TEXT");
-
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.HasKey("ItemValueId", "ItemId");
-
- b.HasIndex("ItemId");
-
- b.ToTable("ItemValuesMap");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.MediaSegment", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("TEXT");
-
- b.Property("EndTicks")
- .HasColumnType("INTEGER");
-
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("SegmentProviderId")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("StartTicks")
- .HasColumnType("INTEGER");
-
- b.Property("Type")
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.ToTable("MediaSegments");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.MediaStreamInfo", b =>
- {
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("StreamIndex")
- .HasColumnType("INTEGER");
-
- b.Property("AspectRatio")
- .HasColumnType("TEXT");
-
- b.Property("AverageFrameRate")
- .HasColumnType("REAL");
-
- b.Property("BitDepth")
- .HasColumnType("INTEGER");
-
- b.Property("BitRate")
- .HasColumnType("INTEGER");
-
- b.Property("BlPresentFlag")
- .HasColumnType("INTEGER");
-
- b.Property("ChannelLayout")
- .HasColumnType("TEXT");
-
- b.Property("Channels")
- .HasColumnType("INTEGER");
-
- b.Property("Codec")
- .HasColumnType("TEXT");
-
- b.Property("CodecTag")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("CodecTimeBase")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("ColorPrimaries")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("ColorSpace")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("ColorTransfer")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Comment")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("DvBlSignalCompatibilityId")
- .HasColumnType("INTEGER");
-
- b.Property("DvLevel")
- .HasColumnType("INTEGER");
-
- b.Property("DvProfile")
- .HasColumnType("INTEGER");
-
- b.Property("DvVersionMajor")
- .HasColumnType("INTEGER");
-
- b.Property("DvVersionMinor")
- .HasColumnType("INTEGER");
-
- b.Property("ElPresentFlag")
- .HasColumnType("INTEGER");
-
- b.Property("Height")
- .HasColumnType("INTEGER");
-
- b.Property("IsAnamorphic")
- .HasColumnType("INTEGER");
-
- b.Property("IsAvc")
- .HasColumnType("INTEGER");
-
- b.Property("IsDefault")
- .HasColumnType("INTEGER");
-
- b.Property("IsExternal")
- .HasColumnType("INTEGER");
-
- b.Property("IsForced")
- .HasColumnType("INTEGER");
-
- b.Property("IsHearingImpaired")
- .HasColumnType("INTEGER");
-
- b.Property("IsInterlaced")
- .HasColumnType("INTEGER");
-
- b.Property("KeyFrames")
- .HasColumnType("TEXT");
-
- b.Property("Language")
- .HasColumnType("TEXT");
-
- b.Property("Level")
- .HasColumnType("REAL");
-
- b.Property("NalLengthSize")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Path")
- .HasColumnType("TEXT");
-
- b.Property("PixelFormat")
- .HasColumnType("TEXT");
-
- b.Property("Profile")
- .HasColumnType("TEXT");
-
- b.Property("RealFrameRate")
- .HasColumnType("REAL");
-
- b.Property("RefFrames")
- .HasColumnType("INTEGER");
-
- b.Property("Rotation")
- .HasColumnType("INTEGER");
-
- b.Property("RpuPresentFlag")
- .HasColumnType("INTEGER");
-
- b.Property("SampleRate")
- .HasColumnType("INTEGER");
-
- b.Property("StreamType")
- .HasColumnType("INTEGER");
-
- b.Property("TimeBase")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Title")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Width")
- .HasColumnType("INTEGER");
-
- b.HasKey("ItemId", "StreamIndex");
-
- b.HasIndex("StreamIndex");
-
- b.HasIndex("StreamType");
-
- b.HasIndex("StreamIndex", "StreamType");
-
- b.HasIndex("StreamIndex", "StreamType", "Language");
-
- b.ToTable("MediaStreamInfos");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.People", b =>
- {
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("Role")
- .HasColumnType("TEXT");
-
- b.Property("ListOrder")
- .HasColumnType("INTEGER");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("PersonType")
- .HasColumnType("TEXT");
-
- b.Property("SortOrder")
- .HasColumnType("INTEGER");
-
- b.HasKey("ItemId", "Role", "ListOrder");
-
- b.HasIndex("Name");
-
- b.HasIndex("ItemId", "ListOrder");
-
- b.ToTable("Peoples");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.Permission", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Kind")
- .HasColumnType("INTEGER");
-
- b.Property("Permission_Permissions_Guid")
- .HasColumnType("TEXT");
-
- b.Property("RowVersion")
- .IsConcurrencyToken()
- .HasColumnType("INTEGER");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.Property("Value")
- .HasColumnType("INTEGER");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId", "Kind")
- .IsUnique()
- .HasFilter("[UserId] IS NOT NULL");
-
- b.ToTable("Permissions");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.Preference", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Kind")
- .HasColumnType("INTEGER");
-
- b.Property("Preference_Preferences_Guid")
- .HasColumnType("TEXT");
-
- b.Property("RowVersion")
- .IsConcurrencyToken()
- .HasColumnType("INTEGER");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.Property("Value")
- .IsRequired()
- .HasMaxLength(65535)
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId", "Kind")
- .IsUnique()
- .HasFilter("[UserId] IS NOT NULL");
-
- b.ToTable("Preferences");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.Security.ApiKey", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("AccessToken")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("DateCreated")
- .HasColumnType("TEXT");
-
- b.Property("DateLastActivity")
- .HasColumnType("TEXT");
-
- b.Property("Name")
- .IsRequired()
- .HasMaxLength(64)
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("AccessToken")
- .IsUnique();
-
- b.ToTable("ApiKeys");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.Security.Device", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("AccessToken")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("AppName")
- .IsRequired()
- .HasMaxLength(64)
- .HasColumnType("TEXT");
-
- b.Property("AppVersion")
- .IsRequired()
- .HasMaxLength(32)
- .HasColumnType("TEXT");
-
- b.Property("DateCreated")
- .HasColumnType("TEXT");
-
- b.Property("DateLastActivity")
- .HasColumnType("TEXT");
-
- b.Property("DateModified")
- .HasColumnType("TEXT");
-
- b.Property("DeviceId")
- .IsRequired()
- .HasMaxLength(256)
- .HasColumnType("TEXT");
-
- b.Property("DeviceName")
- .IsRequired()
- .HasMaxLength(64)
- .HasColumnType("TEXT");
-
- b.Property("IsActive")
- .HasColumnType("INTEGER");
-
- b.Property("UserId")
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("DeviceId");
-
- b.HasIndex("AccessToken", "DateLastActivity");
-
- b.HasIndex("DeviceId", "DateLastActivity");
-
- b.HasIndex("UserId", "DeviceId");
-
- b.ToTable("Devices");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.Security.DeviceOptions", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("CustomName")
- .HasColumnType("TEXT");
-
- b.Property("DeviceId")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("DeviceId")
- .IsUnique();
-
- b.ToTable("DeviceOptions");
- });
-
- modelBuilder.Entity("Jellyfin.Data.Entities.TrickplayInfo", b =>
- {
- b.Property("ItemId")
- .HasColumnType("TEXT");
-
- b.Property("Width")
- .HasColumnType("INTEGER");
-
- b.Property("Bandwidth")
- .HasColumnType("INTEGER");
-
- b.Property