< Summary - Jellyfin

Line coverage
98%
Covered lines: 1758
Uncovered lines: 31
Coverable lines: 1789
Total lines: 1902
Line coverage: 98.2%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 5/4/2026 - 12:15:16 AM Line coverage: 98.5% (1731/1756) Total lines: 18635/22/2026 - 12:15:17 AM Line coverage: 98.2% (1758/1789) Total lines: 1902

Coverage delta

Coverage delta 1 -1

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
File 1: Up(...)100%11100%
File 1: Down(...)100%210%
File 2: BuildTargetModel(...)100%11100%

File(s)

/srv/git/jellyfin/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20260113233000_AddForeignKeyToOwnerId.cs

#LineLine coverage
 1using System;
 2using Microsoft.EntityFrameworkCore.Migrations;
 3
 4#nullable disable
 5
 6namespace Jellyfin.Database.Providers.Sqlite.Migrations
 7{
 8    /// <inheritdoc />
 9    public partial class AddForeignKeyToOwnerId : Migration
 10    {
 11        /// <inheritdoc />
 12        protected override void Up(MigrationBuilder migrationBuilder)
 13        {
 2214            migrationBuilder.DropForeignKey(
 2215                name: "FK_BaseItems_BaseItems_BaseItemEntityId",
 2216                table: "BaseItems");
 17
 2218            migrationBuilder.DropIndex(
 2219                name: "IX_BaseItems_BaseItemEntityId",
 2220                table: "BaseItems");
 21
 2222            migrationBuilder.DropColumn(
 2223                name: "BaseItemEntityId",
 2224                table: "BaseItems");
 25
 2226            migrationBuilder.Sql(
 2227                """
 2228                UPDATE BaseItems
 2229                SET OwnerId = '00000000-0000-0000-0000-000000000001'
 2230                WHERE OwnerId IS NOT NULL
 2231                  AND OwnerId NOT IN (SELECT Id FROM BaseItems);
 2232                """);
 33
 2234            migrationBuilder.AddForeignKey(
 2235                name: "FK_BaseItems_BaseItems_OwnerId",
 2236                table: "BaseItems",
 2237                column: "OwnerId",
 2238                principalTable: "BaseItems",
 2239                principalColumn: "Id");
 40
 2241            migrationBuilder.AddColumn<bool>(
 2242                name: "IsOriginal",
 2243                table: "MediaStreamInfos",
 2244                type: "INTEGER",
 2245                nullable: false,
 2246                defaultValue: false);
 47
 2248            migrationBuilder.AddColumn<string>(
 2249                name: "OriginalLanguage",
 2250                table: "BaseItems",
 2251                type: "TEXT",
 2252                nullable: true);
 53
 2254            migrationBuilder.UpdateData(
 2255                table: "BaseItems",
 2256                keyColumn: "Id",
 2257                keyValue: new Guid("00000000-0000-0000-0000-000000000001"),
 2258                column: "OriginalLanguage",
 2259                value: null);
 2260        }
 61
 62        /// <inheritdoc />
 63        protected override void Down(MigrationBuilder migrationBuilder)
 64        {
 065            migrationBuilder.DropForeignKey(
 066                name: "FK_BaseItems_BaseItems_OwnerId",
 067                table: "BaseItems");
 68
 069            migrationBuilder.AddColumn<Guid>(
 070                name: "BaseItemEntityId",
 071                table: "BaseItems",
 072                type: "TEXT",
 073                nullable: true);
 74
 075            migrationBuilder.UpdateData(
 076                table: "BaseItems",
 077                keyColumn: "Id",
 078                keyValue: new Guid("00000000-0000-0000-0000-000000000001"),
 079                column: "BaseItemEntityId",
 080                value: null);
 81
 082            migrationBuilder.CreateIndex(
 083                name: "IX_BaseItems_BaseItemEntityId",
 084                table: "BaseItems",
 085                column: "BaseItemEntityId");
 86
 087            migrationBuilder.AddForeignKey(
 088                name: "FK_BaseItems_BaseItems_BaseItemEntityId",
 089                table: "BaseItems",
 090                column: "BaseItemEntityId",
 091                principalTable: "BaseItems",
 092                principalColumn: "Id");
 93
 094            migrationBuilder.DropColumn(
 095                name: "IsOriginal",
 096                table: "MediaStreamInfos");
 97
 098            migrationBuilder.DropColumn(
 099                name: "OriginalLanguage",
 0100                table: "BaseItems");
 0101        }
 102    }
 103}

/srv/git/jellyfin/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20260113233000_AddForeignKeyToOwnerId.Designer.cs

#LineLine coverage
 1// <auto-generated />
 2using System;
 3using Jellyfin.Database.Implementations;
 4using Microsoft.EntityFrameworkCore;
 5using Microsoft.EntityFrameworkCore.Infrastructure;
 6using Microsoft.EntityFrameworkCore.Migrations;
 7using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 8
 9#nullable disable
 10
 11namespace Jellyfin.Database.Providers.Sqlite.Migrations
 12{
 13    [DbContext(typeof(JellyfinDbContext))]
 14    [Migration("20260113233000_AddForeignKeyToOwnerId")]
 15    partial class AddForeignKeyToOwnerId
 16    {
 17        /// <inheritdoc />
 18        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 19        {
 20#pragma warning disable 612, 618
 2221            modelBuilder.HasAnnotation("ProductVersion", "10.0.2");
 22
 2223            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.AccessSchedule", b =>
 2224                {
 2225                    b.Property<int>("Id")
 2226                        .ValueGeneratedOnAdd()
 2227                        .HasColumnType("INTEGER");
 2228
 2229                    b.Property<int>("DayOfWeek")
 2230                        .HasColumnType("INTEGER");
 2231
 2232                    b.Property<double>("EndHour")
 2233                        .HasColumnType("REAL");
 2234
 2235                    b.Property<double>("StartHour")
 2236                        .HasColumnType("REAL");
 2237
 2238                    b.Property<Guid>("UserId")
 2239                        .HasColumnType("TEXT");
 2240
 2241                    b.HasKey("Id");
 2242
 2243                    b.HasIndex("UserId");
 2244
 2245                    b.ToTable("AccessSchedules");
 2246
 2247                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 2248                });
 49
 2250            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.ActivityLog", b =>
 2251                {
 2252                    b.Property<int>("Id")
 2253                        .ValueGeneratedOnAdd()
 2254                        .HasColumnType("INTEGER");
 2255
 2256                    b.Property<DateTime>("DateCreated")
 2257                        .HasColumnType("TEXT");
 2258
 2259                    b.Property<string>("ItemId")
 2260                        .HasMaxLength(256)
 2261                        .HasColumnType("TEXT");
 2262
 2263                    b.Property<int>("LogSeverity")
 2264                        .HasColumnType("INTEGER");
 2265
 2266                    b.Property<string>("Name")
 2267                        .IsRequired()
 2268                        .HasMaxLength(512)
 2269                        .HasColumnType("TEXT");
 2270
 2271                    b.Property<string>("Overview")
 2272                        .HasMaxLength(512)
 2273                        .HasColumnType("TEXT");
 2274
 2275                    b.Property<uint>("RowVersion")
 2276                        .IsConcurrencyToken()
 2277                        .HasColumnType("INTEGER");
 2278
 2279                    b.Property<string>("ShortOverview")
 2280                        .HasMaxLength(512)
 2281                        .HasColumnType("TEXT");
 2282
 2283                    b.Property<string>("Type")
 2284                        .IsRequired()
 2285                        .HasMaxLength(256)
 2286                        .HasColumnType("TEXT");
 2287
 2288                    b.Property<Guid>("UserId")
 2289                        .HasColumnType("TEXT");
 2290
 2291                    b.HasKey("Id");
 2292
 2293                    b.HasIndex("DateCreated");
 2294
 2295                    b.ToTable("ActivityLogs");
 2296
 2297                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 2298                });
 99
 22100            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.AncestorId", b =>
 22101                {
 22102                    b.Property<Guid>("ItemId")
 22103                        .HasColumnType("TEXT");
 22104
 22105                    b.Property<Guid>("ParentItemId")
 22106                        .HasColumnType("TEXT");
 22107
 22108                    b.HasKey("ItemId", "ParentItemId");
 22109
 22110                    b.HasIndex("ParentItemId");
 22111
 22112                    b.ToTable("AncestorIds");
 22113
 22114                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22115                });
 116
 22117            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.AttachmentStreamInfo", b =>
 22118                {
 22119                    b.Property<Guid>("ItemId")
 22120                        .HasColumnType("TEXT");
 22121
 22122                    b.Property<int>("Index")
 22123                        .HasColumnType("INTEGER");
 22124
 22125                    b.Property<string>("Codec")
 22126                        .HasColumnType("TEXT");
 22127
 22128                    b.Property<string>("CodecTag")
 22129                        .HasColumnType("TEXT");
 22130
 22131                    b.Property<string>("Comment")
 22132                        .HasColumnType("TEXT");
 22133
 22134                    b.Property<string>("Filename")
 22135                        .HasColumnType("TEXT");
 22136
 22137                    b.Property<string>("MimeType")
 22138                        .HasColumnType("TEXT");
 22139
 22140                    b.HasKey("ItemId", "Index");
 22141
 22142                    b.ToTable("AttachmentStreamInfos");
 22143
 22144                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22145                });
 146
 22147            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemEntity", b =>
 22148                {
 22149                    b.Property<Guid>("Id")
 22150                        .ValueGeneratedOnAdd()
 22151                        .HasColumnType("TEXT");
 22152
 22153                    b.Property<string>("Album")
 22154                        .HasColumnType("TEXT");
 22155
 22156                    b.Property<string>("AlbumArtists")
 22157                        .HasColumnType("TEXT");
 22158
 22159                    b.Property<string>("Artists")
 22160                        .HasColumnType("TEXT");
 22161
 22162                    b.Property<int?>("Audio")
 22163                        .HasColumnType("INTEGER");
 22164
 22165                    b.Property<Guid?>("ChannelId")
 22166                        .HasColumnType("TEXT");
 22167
 22168                    b.Property<string>("CleanName")
 22169                        .HasColumnType("TEXT");
 22170
 22171                    b.Property<float?>("CommunityRating")
 22172                        .HasColumnType("REAL");
 22173
 22174                    b.Property<float?>("CriticRating")
 22175                        .HasColumnType("REAL");
 22176
 22177                    b.Property<string>("CustomRating")
 22178                        .HasColumnType("TEXT");
 22179
 22180                    b.Property<string>("Data")
 22181                        .HasColumnType("TEXT");
 22182
 22183                    b.Property<DateTime?>("DateCreated")
 22184                        .HasColumnType("TEXT");
 22185
 22186                    b.Property<DateTime?>("DateLastMediaAdded")
 22187                        .HasColumnType("TEXT");
 22188
 22189                    b.Property<DateTime?>("DateLastRefreshed")
 22190                        .HasColumnType("TEXT");
 22191
 22192                    b.Property<DateTime?>("DateLastSaved")
 22193                        .HasColumnType("TEXT");
 22194
 22195                    b.Property<DateTime?>("DateModified")
 22196                        .HasColumnType("TEXT");
 22197
 22198                    b.Property<DateTime?>("EndDate")
 22199                        .HasColumnType("TEXT");
 22200
 22201                    b.Property<string>("EpisodeTitle")
 22202                        .HasColumnType("TEXT");
 22203
 22204                    b.Property<string>("ExternalId")
 22205                        .HasColumnType("TEXT");
 22206
 22207                    b.Property<string>("ExternalSeriesId")
 22208                        .HasColumnType("TEXT");
 22209
 22210                    b.Property<string>("ExternalServiceId")
 22211                        .HasColumnType("TEXT");
 22212
 22213                    b.Property<string>("ExtraIds")
 22214                        .HasColumnType("TEXT");
 22215
 22216                    b.Property<int?>("ExtraType")
 22217                        .HasColumnType("INTEGER");
 22218
 22219                    b.Property<string>("ForcedSortName")
 22220                        .HasColumnType("TEXT");
 22221
 22222                    b.Property<string>("Genres")
 22223                        .HasColumnType("TEXT");
 22224
 22225                    b.Property<int?>("Height")
 22226                        .HasColumnType("INTEGER");
 22227
 22228                    b.Property<int?>("IndexNumber")
 22229                        .HasColumnType("INTEGER");
 22230
 22231                    b.Property<int?>("InheritedParentalRatingSubValue")
 22232                        .HasColumnType("INTEGER");
 22233
 22234                    b.Property<int?>("InheritedParentalRatingValue")
 22235                        .HasColumnType("INTEGER");
 22236
 22237                    b.Property<bool>("IsFolder")
 22238                        .HasColumnType("INTEGER");
 22239
 22240                    b.Property<bool>("IsInMixedFolder")
 22241                        .HasColumnType("INTEGER");
 22242
 22243                    b.Property<bool>("IsLocked")
 22244                        .HasColumnType("INTEGER");
 22245
 22246                    b.Property<bool>("IsMovie")
 22247                        .HasColumnType("INTEGER");
 22248
 22249                    b.Property<bool>("IsRepeat")
 22250                        .HasColumnType("INTEGER");
 22251
 22252                    b.Property<bool>("IsSeries")
 22253                        .HasColumnType("INTEGER");
 22254
 22255                    b.Property<bool>("IsVirtualItem")
 22256                        .HasColumnType("INTEGER");
 22257
 22258                    b.Property<float?>("LUFS")
 22259                        .HasColumnType("REAL");
 22260
 22261                    b.Property<string>("MediaType")
 22262                        .HasColumnType("TEXT");
 22263
 22264                    b.Property<string>("Name")
 22265                        .HasColumnType("TEXT");
 22266
 22267                    b.Property<float?>("NormalizationGain")
 22268                        .HasColumnType("REAL");
 22269
 22270                    b.Property<string>("OfficialRating")
 22271                        .HasColumnType("TEXT");
 22272
 22273                    b.Property<string>("OriginalLanguage")
 22274                        .HasColumnType("TEXT");
 22275
 22276                    b.Property<string>("OriginalTitle")
 22277                        .HasColumnType("TEXT");
 22278
 22279                    b.Property<string>("Overview")
 22280                        .HasColumnType("TEXT");
 22281
 22282                    b.Property<Guid?>("OwnerId")
 22283                        .HasColumnType("TEXT");
 22284
 22285                    b.Property<Guid?>("ParentId")
 22286                        .HasColumnType("TEXT");
 22287
 22288                    b.Property<int?>("ParentIndexNumber")
 22289                        .HasColumnType("INTEGER");
 22290
 22291                    b.Property<string>("Path")
 22292                        .HasColumnType("TEXT");
 22293
 22294                    b.Property<string>("PreferredMetadataCountryCode")
 22295                        .HasColumnType("TEXT");
 22296
 22297                    b.Property<string>("PreferredMetadataLanguage")
 22298                        .HasColumnType("TEXT");
 22299
 22300                    b.Property<DateTime?>("PremiereDate")
 22301                        .HasColumnType("TEXT");
 22302
 22303                    b.Property<string>("PresentationUniqueKey")
 22304                        .HasColumnType("TEXT");
 22305
 22306                    b.Property<string>("PrimaryVersionId")
 22307                        .HasColumnType("TEXT");
 22308
 22309                    b.Property<string>("ProductionLocations")
 22310                        .HasColumnType("TEXT");
 22311
 22312                    b.Property<int?>("ProductionYear")
 22313                        .HasColumnType("INTEGER");
 22314
 22315                    b.Property<long?>("RunTimeTicks")
 22316                        .HasColumnType("INTEGER");
 22317
 22318                    b.Property<Guid?>("SeasonId")
 22319                        .HasColumnType("TEXT");
 22320
 22321                    b.Property<string>("SeasonName")
 22322                        .HasColumnType("TEXT");
 22323
 22324                    b.Property<Guid?>("SeriesId")
 22325                        .HasColumnType("TEXT");
 22326
 22327                    b.Property<string>("SeriesName")
 22328                        .HasColumnType("TEXT");
 22329
 22330                    b.Property<string>("SeriesPresentationUniqueKey")
 22331                        .HasColumnType("TEXT");
 22332
 22333                    b.Property<string>("ShowId")
 22334                        .HasColumnType("TEXT");
 22335
 22336                    b.Property<long?>("Size")
 22337                        .HasColumnType("INTEGER");
 22338
 22339                    b.Property<string>("SortName")
 22340                        .HasColumnType("TEXT");
 22341
 22342                    b.Property<DateTime?>("StartDate")
 22343                        .HasColumnType("TEXT");
 22344
 22345                    b.Property<string>("Studios")
 22346                        .HasColumnType("TEXT");
 22347
 22348                    b.Property<string>("Tagline")
 22349                        .HasColumnType("TEXT");
 22350
 22351                    b.Property<string>("Tags")
 22352                        .HasColumnType("TEXT");
 22353
 22354                    b.Property<Guid?>("TopParentId")
 22355                        .HasColumnType("TEXT");
 22356
 22357                    b.Property<int?>("TotalBitrate")
 22358                        .HasColumnType("INTEGER");
 22359
 22360                    b.Property<string>("Type")
 22361                        .IsRequired()
 22362                        .HasColumnType("TEXT");
 22363
 22364                    b.Property<string>("UnratedType")
 22365                        .HasColumnType("TEXT");
 22366
 22367                    b.Property<int?>("Width")
 22368                        .HasColumnType("INTEGER");
 22369
 22370                    b.HasKey("Id");
 22371
 22372                    b.HasIndex("ExtraType");
 22373
 22374                    b.HasIndex("OwnerId");
 22375
 22376                    b.HasIndex("ParentId");
 22377
 22378                    b.HasIndex("Path");
 22379
 22380                    b.HasIndex("PresentationUniqueKey");
 22381
 22382                    b.HasIndex("ExtraType", "OwnerId");
 22383
 22384                    b.HasIndex("TopParentId", "Id");
 22385
 22386                    b.HasIndex("Type", "TopParentId", "Id");
 22387
 22388                    b.HasIndex("Type", "TopParentId", "PresentationUniqueKey");
 22389
 22390                    b.HasIndex("Type", "TopParentId", "StartDate");
 22391
 22392                    b.HasIndex("Id", "Type", "IsFolder", "IsVirtualItem");
 22393
 22394                    b.HasIndex("MediaType", "TopParentId", "IsVirtualItem", "PresentationUniqueKey");
 22395
 22396                    b.HasIndex("TopParentId", "IsFolder", "IsVirtualItem", "DateCreated");
 22397
 22398                    b.HasIndex("TopParentId", "MediaType", "IsVirtualItem", "DateCreated");
 22399
 22400                    b.HasIndex("TopParentId", "Type", "IsVirtualItem", "DateCreated");
 22401
 22402                    b.HasIndex("Type", "SeriesPresentationUniqueKey", "IsFolder", "IsVirtualItem");
 22403
 22404                    b.HasIndex("Type", "SeriesPresentationUniqueKey", "PresentationUniqueKey", "SortName");
 22405
 22406                    b.HasIndex("IsFolder", "TopParentId", "IsVirtualItem", "PresentationUniqueKey", "DateCreated");
 22407
 22408                    b.HasIndex("Type", "TopParentId", "IsVirtualItem", "PresentationUniqueKey", "DateCreated");
 22409
 22410                    b.ToTable("BaseItems");
 22411
 22412                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22413
 22414                    b.HasData(
 22415                        new
 22416                        {
 22417                            Id = new Guid("00000000-0000-0000-0000-000000000001"),
 22418                            IsFolder = false,
 22419                            IsInMixedFolder = false,
 22420                            IsLocked = false,
 22421                            IsMovie = false,
 22422                            IsRepeat = false,
 22423                            IsSeries = false,
 22424                            IsVirtualItem = false,
 22425                            Name = "This is a placeholder item for UserData that has been detached from its original ite
 22426                            Type = "PLACEHOLDER"
 22427                        });
 22428                });
 429
 22430            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemImageInfo", b =>
 22431                {
 22432                    b.Property<Guid>("Id")
 22433                        .ValueGeneratedOnAdd()
 22434                        .HasColumnType("TEXT");
 22435
 22436                    b.Property<byte[]>("Blurhash")
 22437                        .HasColumnType("BLOB");
 22438
 22439                    b.Property<DateTime?>("DateModified")
 22440                        .HasColumnType("TEXT");
 22441
 22442                    b.Property<int>("Height")
 22443                        .HasColumnType("INTEGER");
 22444
 22445                    b.Property<int>("ImageType")
 22446                        .HasColumnType("INTEGER");
 22447
 22448                    b.Property<Guid>("ItemId")
 22449                        .HasColumnType("TEXT");
 22450
 22451                    b.Property<string>("Path")
 22452                        .IsRequired()
 22453                        .HasColumnType("TEXT");
 22454
 22455                    b.Property<int>("Width")
 22456                        .HasColumnType("INTEGER");
 22457
 22458                    b.HasKey("Id");
 22459
 22460                    b.HasIndex("ItemId");
 22461
 22462                    b.ToTable("BaseItemImageInfos");
 22463
 22464                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22465                });
 466
 22467            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemMetadataField", b =>
 22468                {
 22469                    b.Property<int>("Id")
 22470                        .HasColumnType("INTEGER");
 22471
 22472                    b.Property<Guid>("ItemId")
 22473                        .HasColumnType("TEXT");
 22474
 22475                    b.HasKey("Id", "ItemId");
 22476
 22477                    b.HasIndex("ItemId");
 22478
 22479                    b.ToTable("BaseItemMetadataFields");
 22480
 22481                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22482                });
 483
 22484            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemProvider", b =>
 22485                {
 22486                    b.Property<Guid>("ItemId")
 22487                        .HasColumnType("TEXT");
 22488
 22489                    b.Property<string>("ProviderId")
 22490                        .HasColumnType("TEXT");
 22491
 22492                    b.Property<string>("ProviderValue")
 22493                        .IsRequired()
 22494                        .HasColumnType("TEXT");
 22495
 22496                    b.HasKey("ItemId", "ProviderId");
 22497
 22498                    b.HasIndex("ProviderId", "ProviderValue", "ItemId");
 22499
 22500                    b.ToTable("BaseItemProviders");
 22501
 22502                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22503                });
 504
 22505            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemTrailerType", b =>
 22506                {
 22507                    b.Property<int>("Id")
 22508                        .HasColumnType("INTEGER");
 22509
 22510                    b.Property<Guid>("ItemId")
 22511                        .HasColumnType("TEXT");
 22512
 22513                    b.HasKey("Id", "ItemId");
 22514
 22515                    b.HasIndex("ItemId");
 22516
 22517                    b.ToTable("BaseItemTrailerTypes");
 22518
 22519                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22520                });
 521
 22522            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Chapter", b =>
 22523                {
 22524                    b.Property<Guid>("ItemId")
 22525                        .HasColumnType("TEXT");
 22526
 22527                    b.Property<int>("ChapterIndex")
 22528                        .HasColumnType("INTEGER");
 22529
 22530                    b.Property<DateTime?>("ImageDateModified")
 22531                        .HasColumnType("TEXT");
 22532
 22533                    b.Property<string>("ImagePath")
 22534                        .HasColumnType("TEXT");
 22535
 22536                    b.Property<string>("Name")
 22537                        .HasColumnType("TEXT");
 22538
 22539                    b.Property<long>("StartPositionTicks")
 22540                        .HasColumnType("INTEGER");
 22541
 22542                    b.HasKey("ItemId", "ChapterIndex");
 22543
 22544                    b.ToTable("Chapters");
 22545
 22546                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22547                });
 548
 22549            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.CustomItemDisplayPreferences", b =>
 22550                {
 22551                    b.Property<int>("Id")
 22552                        .ValueGeneratedOnAdd()
 22553                        .HasColumnType("INTEGER");
 22554
 22555                    b.Property<string>("Client")
 22556                        .IsRequired()
 22557                        .HasMaxLength(32)
 22558                        .HasColumnType("TEXT");
 22559
 22560                    b.Property<Guid>("ItemId")
 22561                        .HasColumnType("TEXT");
 22562
 22563                    b.Property<string>("Key")
 22564                        .IsRequired()
 22565                        .HasColumnType("TEXT");
 22566
 22567                    b.Property<Guid>("UserId")
 22568                        .HasColumnType("TEXT");
 22569
 22570                    b.Property<string>("Value")
 22571                        .HasColumnType("TEXT");
 22572
 22573                    b.HasKey("Id");
 22574
 22575                    b.HasIndex("UserId", "ItemId", "Client", "Key")
 22576                        .IsUnique();
 22577
 22578                    b.ToTable("CustomItemDisplayPreferences");
 22579
 22580                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22581                });
 582
 22583            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.DisplayPreferences", b =>
 22584                {
 22585                    b.Property<int>("Id")
 22586                        .ValueGeneratedOnAdd()
 22587                        .HasColumnType("INTEGER");
 22588
 22589                    b.Property<int>("ChromecastVersion")
 22590                        .HasColumnType("INTEGER");
 22591
 22592                    b.Property<string>("Client")
 22593                        .IsRequired()
 22594                        .HasMaxLength(32)
 22595                        .HasColumnType("TEXT");
 22596
 22597                    b.Property<string>("DashboardTheme")
 22598                        .HasMaxLength(32)
 22599                        .HasColumnType("TEXT");
 22600
 22601                    b.Property<bool>("EnableNextVideoInfoOverlay")
 22602                        .HasColumnType("INTEGER");
 22603
 22604                    b.Property<int?>("IndexBy")
 22605                        .HasColumnType("INTEGER");
 22606
 22607                    b.Property<Guid>("ItemId")
 22608                        .HasColumnType("TEXT");
 22609
 22610                    b.Property<int>("ScrollDirection")
 22611                        .HasColumnType("INTEGER");
 22612
 22613                    b.Property<bool>("ShowBackdrop")
 22614                        .HasColumnType("INTEGER");
 22615
 22616                    b.Property<bool>("ShowSidebar")
 22617                        .HasColumnType("INTEGER");
 22618
 22619                    b.Property<int>("SkipBackwardLength")
 22620                        .HasColumnType("INTEGER");
 22621
 22622                    b.Property<int>("SkipForwardLength")
 22623                        .HasColumnType("INTEGER");
 22624
 22625                    b.Property<string>("TvHome")
 22626                        .HasMaxLength(32)
 22627                        .HasColumnType("TEXT");
 22628
 22629                    b.Property<Guid>("UserId")
 22630                        .HasColumnType("TEXT");
 22631
 22632                    b.HasKey("Id");
 22633
 22634                    b.HasIndex("UserId", "ItemId", "Client")
 22635                        .IsUnique();
 22636
 22637                    b.ToTable("DisplayPreferences");
 22638
 22639                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22640                });
 641
 22642            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.HomeSection", b =>
 22643                {
 22644                    b.Property<int>("Id")
 22645                        .ValueGeneratedOnAdd()
 22646                        .HasColumnType("INTEGER");
 22647
 22648                    b.Property<int>("DisplayPreferencesId")
 22649                        .HasColumnType("INTEGER");
 22650
 22651                    b.Property<int>("Order")
 22652                        .HasColumnType("INTEGER");
 22653
 22654                    b.Property<int>("Type")
 22655                        .HasColumnType("INTEGER");
 22656
 22657                    b.HasKey("Id");
 22658
 22659                    b.HasIndex("DisplayPreferencesId");
 22660
 22661                    b.ToTable("HomeSection");
 22662
 22663                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22664                });
 665
 22666            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.ImageInfo", b =>
 22667                {
 22668                    b.Property<int>("Id")
 22669                        .ValueGeneratedOnAdd()
 22670                        .HasColumnType("INTEGER");
 22671
 22672                    b.Property<DateTime>("LastModified")
 22673                        .HasColumnType("TEXT");
 22674
 22675                    b.Property<string>("Path")
 22676                        .IsRequired()
 22677                        .HasMaxLength(512)
 22678                        .HasColumnType("TEXT");
 22679
 22680                    b.Property<Guid?>("UserId")
 22681                        .HasColumnType("TEXT");
 22682
 22683                    b.HasKey("Id");
 22684
 22685                    b.HasIndex("UserId")
 22686                        .IsUnique();
 22687
 22688                    b.ToTable("ImageInfos");
 22689
 22690                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22691                });
 692
 22693            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.ItemDisplayPreferences", b =>
 22694                {
 22695                    b.Property<int>("Id")
 22696                        .ValueGeneratedOnAdd()
 22697                        .HasColumnType("INTEGER");
 22698
 22699                    b.Property<string>("Client")
 22700                        .IsRequired()
 22701                        .HasMaxLength(32)
 22702                        .HasColumnType("TEXT");
 22703
 22704                    b.Property<int?>("IndexBy")
 22705                        .HasColumnType("INTEGER");
 22706
 22707                    b.Property<Guid>("ItemId")
 22708                        .HasColumnType("TEXT");
 22709
 22710                    b.Property<bool>("RememberIndexing")
 22711                        .HasColumnType("INTEGER");
 22712
 22713                    b.Property<bool>("RememberSorting")
 22714                        .HasColumnType("INTEGER");
 22715
 22716                    b.Property<string>("SortBy")
 22717                        .IsRequired()
 22718                        .HasMaxLength(64)
 22719                        .HasColumnType("TEXT");
 22720
 22721                    b.Property<int>("SortOrder")
 22722                        .HasColumnType("INTEGER");
 22723
 22724                    b.Property<Guid>("UserId")
 22725                        .HasColumnType("TEXT");
 22726
 22727                    b.Property<int>("ViewType")
 22728                        .HasColumnType("INTEGER");
 22729
 22730                    b.HasKey("Id");
 22731
 22732                    b.HasIndex("UserId");
 22733
 22734                    b.ToTable("ItemDisplayPreferences");
 22735
 22736                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22737                });
 738
 22739            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.ItemValue", b =>
 22740                {
 22741                    b.Property<Guid>("ItemValueId")
 22742                        .ValueGeneratedOnAdd()
 22743                        .HasColumnType("TEXT");
 22744
 22745                    b.Property<string>("CleanValue")
 22746                        .IsRequired()
 22747                        .HasColumnType("TEXT");
 22748
 22749                    b.Property<int>("Type")
 22750                        .HasColumnType("INTEGER");
 22751
 22752                    b.Property<string>("Value")
 22753                        .IsRequired()
 22754                        .HasColumnType("TEXT");
 22755
 22756                    b.HasKey("ItemValueId");
 22757
 22758                    b.HasIndex("Type", "CleanValue");
 22759
 22760                    b.HasIndex("Type", "Value")
 22761                        .IsUnique();
 22762
 22763                    b.ToTable("ItemValues");
 22764
 22765                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22766                });
 767
 22768            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.ItemValueMap", b =>
 22769                {
 22770                    b.Property<Guid>("ItemValueId")
 22771                        .HasColumnType("TEXT");
 22772
 22773                    b.Property<Guid>("ItemId")
 22774                        .HasColumnType("TEXT");
 22775
 22776                    b.HasKey("ItemValueId", "ItemId");
 22777
 22778                    b.HasIndex("ItemId");
 22779
 22780                    b.ToTable("ItemValuesMap");
 22781
 22782                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22783                });
 784
 22785            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.KeyframeData", b =>
 22786                {
 22787                    b.Property<Guid>("ItemId")
 22788                        .HasColumnType("TEXT");
 22789
 22790                    b.PrimitiveCollection<string>("KeyframeTicks")
 22791                        .HasColumnType("TEXT");
 22792
 22793                    b.Property<long>("TotalDuration")
 22794                        .HasColumnType("INTEGER");
 22795
 22796                    b.HasKey("ItemId");
 22797
 22798                    b.ToTable("KeyframeData");
 22799
 22800                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22801                });
 802
 22803            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.LinkedChildEntity", b =>
 22804                {
 22805                    b.Property<Guid>("ParentId")
 22806                        .HasColumnType("TEXT");
 22807
 22808                    b.Property<Guid>("ChildId")
 22809                        .HasColumnType("TEXT");
 22810
 22811                    b.Property<int>("ChildType")
 22812                        .HasColumnType("INTEGER");
 22813
 22814                    b.Property<int?>("SortOrder")
 22815                        .HasColumnType("INTEGER");
 22816
 22817                    b.HasKey("ParentId", "ChildId");
 22818
 22819                    b.HasIndex("ChildId");
 22820
 22821                    b.HasIndex("ParentId");
 22822
 22823                    b.HasIndex("ChildId", "ChildType");
 22824
 22825                    b.HasIndex("ParentId", "ChildType");
 22826
 22827                    b.HasIndex("ParentId", "SortOrder");
 22828
 22829                    b.ToTable("LinkedChildren", (string)null);
 22830
 22831                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22832                });
 833
 22834            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.MediaSegment", b =>
 22835                {
 22836                    b.Property<Guid>("Id")
 22837                        .ValueGeneratedOnAdd()
 22838                        .HasColumnType("TEXT");
 22839
 22840                    b.Property<long>("EndTicks")
 22841                        .HasColumnType("INTEGER");
 22842
 22843                    b.Property<Guid>("ItemId")
 22844                        .HasColumnType("TEXT");
 22845
 22846                    b.Property<string>("SegmentProviderId")
 22847                        .IsRequired()
 22848                        .HasColumnType("TEXT");
 22849
 22850                    b.Property<long>("StartTicks")
 22851                        .HasColumnType("INTEGER");
 22852
 22853                    b.Property<int>("Type")
 22854                        .HasColumnType("INTEGER");
 22855
 22856                    b.HasKey("Id");
 22857
 22858                    b.ToTable("MediaSegments");
 22859
 22860                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 22861                });
 862
 22863            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.MediaStreamInfo", b =>
 22864                {
 22865                    b.Property<Guid>("ItemId")
 22866                        .HasColumnType("TEXT");
 22867
 22868                    b.Property<int>("StreamIndex")
 22869                        .HasColumnType("INTEGER");
 22870
 22871                    b.Property<string>("AspectRatio")
 22872                        .HasColumnType("TEXT");
 22873
 22874                    b.Property<float?>("AverageFrameRate")
 22875                        .HasColumnType("REAL");
 22876
 22877                    b.Property<int?>("BitDepth")
 22878                        .HasColumnType("INTEGER");
 22879
 22880                    b.Property<int?>("BitRate")
 22881                        .HasColumnType("INTEGER");
 22882
 22883                    b.Property<int?>("BlPresentFlag")
 22884                        .HasColumnType("INTEGER");
 22885
 22886                    b.Property<string>("ChannelLayout")
 22887                        .HasColumnType("TEXT");
 22888
 22889                    b.Property<int?>("Channels")
 22890                        .HasColumnType("INTEGER");
 22891
 22892                    b.Property<string>("Codec")
 22893                        .HasColumnType("TEXT");
 22894
 22895                    b.Property<string>("CodecTag")
 22896                        .HasColumnType("TEXT");
 22897
 22898                    b.Property<string>("CodecTimeBase")
 22899                        .HasColumnType("TEXT");
 22900
 22901                    b.Property<string>("ColorPrimaries")
 22902                        .HasColumnType("TEXT");
 22903
 22904                    b.Property<string>("ColorSpace")
 22905                        .HasColumnType("TEXT");
 22906
 22907                    b.Property<string>("ColorTransfer")
 22908                        .HasColumnType("TEXT");
 22909
 22910                    b.Property<string>("Comment")
 22911                        .HasColumnType("TEXT");
 22912
 22913                    b.Property<int?>("DvBlSignalCompatibilityId")
 22914                        .HasColumnType("INTEGER");
 22915
 22916                    b.Property<int?>("DvLevel")
 22917                        .HasColumnType("INTEGER");
 22918
 22919                    b.Property<int?>("DvProfile")
 22920                        .HasColumnType("INTEGER");
 22921
 22922                    b.Property<int?>("DvVersionMajor")
 22923                        .HasColumnType("INTEGER");
 22924
 22925                    b.Property<int?>("DvVersionMinor")
 22926                        .HasColumnType("INTEGER");
 22927
 22928                    b.Property<int?>("ElPresentFlag")
 22929                        .HasColumnType("INTEGER");
 22930
 22931                    b.Property<bool?>("Hdr10PlusPresentFlag")
 22932                        .HasColumnType("INTEGER");
 22933
 22934                    b.Property<int?>("Height")
 22935                        .HasColumnType("INTEGER");
 22936
 22937                    b.Property<bool?>("IsAnamorphic")
 22938                        .HasColumnType("INTEGER");
 22939
 22940                    b.Property<bool?>("IsAvc")
 22941                        .HasColumnType("INTEGER");
 22942
 22943                    b.Property<bool>("IsDefault")
 22944                        .HasColumnType("INTEGER");
 22945
 22946                    b.Property<bool>("IsExternal")
 22947                        .HasColumnType("INTEGER");
 22948
 22949                    b.Property<bool>("IsForced")
 22950                        .HasColumnType("INTEGER");
 22951
 22952                    b.Property<bool?>("IsHearingImpaired")
 22953                        .HasColumnType("INTEGER");
 22954
 22955                    b.Property<bool?>("IsInterlaced")
 22956                        .HasColumnType("INTEGER");
 22957
 22958                    b.Property<string>("KeyFrames")
 22959                        .HasColumnType("TEXT");
 22960
 22961                    b.Property<string>("Language")
 22962                        .HasColumnType("TEXT");
 22963
 22964                    b.Property<float?>("Level")
 22965                        .HasColumnType("REAL");
 22966
 22967                    b.Property<string>("NalLengthSize")
 22968                        .HasColumnType("TEXT");
 22969
 22970                    b.Property<string>("Path")
 22971                        .HasColumnType("TEXT");
 22972
 22973                    b.Property<string>("PixelFormat")
 22974                        .HasColumnType("TEXT");
 22975
 22976                    b.Property<string>("Profile")
 22977                        .HasColumnType("TEXT");
 22978
 22979                    b.Property<float?>("RealFrameRate")
 22980                        .HasColumnType("REAL");
 22981
 22982                    b.Property<int?>("RefFrames")
 22983                        .HasColumnType("INTEGER");
 22984
 22985                    b.Property<int?>("Rotation")
 22986                        .HasColumnType("INTEGER");
 22987
 22988                    b.Property<int?>("RpuPresentFlag")
 22989                        .HasColumnType("INTEGER");
 22990
 22991                    b.Property<int?>("SampleRate")
 22992                        .HasColumnType("INTEGER");
 22993
 22994                    b.Property<int>("StreamType")
 22995                        .HasColumnType("INTEGER");
 22996
 22997                    b.Property<string>("TimeBase")
 22998                        .HasColumnType("TEXT");
 22999
 221000                    b.Property<string>("Title")
 221001                        .HasColumnType("TEXT");
 221002
 221003                    b.Property<int?>("Width")
 221004                        .HasColumnType("INTEGER");
 221005
 221006                    b.HasKey("ItemId", "StreamIndex");
 221007
 221008                    b.HasIndex("StreamIndex");
 221009
 221010                    b.HasIndex("StreamType");
 221011
 221012                    b.HasIndex("StreamIndex", "StreamType");
 221013
 221014                    b.HasIndex("StreamIndex", "StreamType", "Language");
 221015
 221016                    b.ToTable("MediaStreamInfos");
 221017
 221018                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221019                });
 1020
 221021            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.People", b =>
 221022                {
 221023                    b.Property<Guid>("Id")
 221024                        .ValueGeneratedOnAdd()
 221025                        .HasColumnType("TEXT");
 221026
 221027                    b.Property<string>("Name")
 221028                        .IsRequired()
 221029                        .HasColumnType("TEXT");
 221030
 221031                    b.Property<string>("PersonType")
 221032                        .HasColumnType("TEXT");
 221033
 221034                    b.HasKey("Id");
 221035
 221036                    b.HasIndex("Name");
 221037
 221038                    b.ToTable("Peoples");
 221039
 221040                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221041                });
 1042
 221043            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.PeopleBaseItemMap", b =>
 221044                {
 221045                    b.Property<Guid>("ItemId")
 221046                        .HasColumnType("TEXT");
 221047
 221048                    b.Property<Guid>("PeopleId")
 221049                        .HasColumnType("TEXT");
 221050
 221051                    b.Property<string>("Role")
 221052                        .HasColumnType("TEXT");
 221053
 221054                    b.Property<int?>("ListOrder")
 221055                        .HasColumnType("INTEGER");
 221056
 221057                    b.Property<int?>("SortOrder")
 221058                        .HasColumnType("INTEGER");
 221059
 221060                    b.HasKey("ItemId", "PeopleId", "Role");
 221061
 221062                    b.HasIndex("PeopleId");
 221063
 221064                    b.HasIndex("ItemId", "ListOrder");
 221065
 221066                    b.HasIndex("ItemId", "SortOrder");
 221067
 221068                    b.ToTable("PeopleBaseItemMap");
 221069
 221070                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221071                });
 1072
 221073            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Permission", b =>
 221074                {
 221075                    b.Property<int>("Id")
 221076                        .ValueGeneratedOnAdd()
 221077                        .HasColumnType("INTEGER");
 221078
 221079                    b.Property<int>("Kind")
 221080                        .HasColumnType("INTEGER");
 221081
 221082                    b.Property<Guid?>("Permission_Permissions_Guid")
 221083                        .HasColumnType("TEXT");
 221084
 221085                    b.Property<uint>("RowVersion")
 221086                        .IsConcurrencyToken()
 221087                        .HasColumnType("INTEGER");
 221088
 221089                    b.Property<Guid?>("UserId")
 221090                        .HasColumnType("TEXT");
 221091
 221092                    b.Property<bool>("Value")
 221093                        .HasColumnType("INTEGER");
 221094
 221095                    b.HasKey("Id");
 221096
 221097                    b.HasIndex("UserId", "Kind")
 221098                        .IsUnique()
 221099                        .HasFilter("[UserId] IS NOT NULL");
 221100
 221101                    b.ToTable("Permissions");
 221102
 221103                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221104                });
 1105
 221106            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Preference", b =>
 221107                {
 221108                    b.Property<int>("Id")
 221109                        .ValueGeneratedOnAdd()
 221110                        .HasColumnType("INTEGER");
 221111
 221112                    b.Property<int>("Kind")
 221113                        .HasColumnType("INTEGER");
 221114
 221115                    b.Property<Guid?>("Preference_Preferences_Guid")
 221116                        .HasColumnType("TEXT");
 221117
 221118                    b.Property<uint>("RowVersion")
 221119                        .IsConcurrencyToken()
 221120                        .HasColumnType("INTEGER");
 221121
 221122                    b.Property<Guid?>("UserId")
 221123                        .HasColumnType("TEXT");
 221124
 221125                    b.Property<string>("Value")
 221126                        .IsRequired()
 221127                        .HasMaxLength(65535)
 221128                        .HasColumnType("TEXT");
 221129
 221130                    b.HasKey("Id");
 221131
 221132                    b.HasIndex("UserId", "Kind")
 221133                        .IsUnique()
 221134                        .HasFilter("[UserId] IS NOT NULL");
 221135
 221136                    b.ToTable("Preferences");
 221137
 221138                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221139                });
 1140
 221141            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Security.ApiKey", b =>
 221142                {
 221143                    b.Property<int>("Id")
 221144                        .ValueGeneratedOnAdd()
 221145                        .HasColumnType("INTEGER");
 221146
 221147                    b.Property<string>("AccessToken")
 221148                        .IsRequired()
 221149                        .HasColumnType("TEXT");
 221150
 221151                    b.Property<DateTime>("DateCreated")
 221152                        .HasColumnType("TEXT");
 221153
 221154                    b.Property<DateTime>("DateLastActivity")
 221155                        .HasColumnType("TEXT");
 221156
 221157                    b.Property<string>("Name")
 221158                        .IsRequired()
 221159                        .HasMaxLength(64)
 221160                        .HasColumnType("TEXT");
 221161
 221162                    b.HasKey("Id");
 221163
 221164                    b.HasIndex("AccessToken")
 221165                        .IsUnique();
 221166
 221167                    b.ToTable("ApiKeys");
 221168
 221169                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221170                });
 1171
 221172            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Security.Device", b =>
 221173                {
 221174                    b.Property<int>("Id")
 221175                        .ValueGeneratedOnAdd()
 221176                        .HasColumnType("INTEGER");
 221177
 221178                    b.Property<string>("AccessToken")
 221179                        .IsRequired()
 221180                        .HasColumnType("TEXT");
 221181
 221182                    b.Property<string>("AppName")
 221183                        .IsRequired()
 221184                        .HasMaxLength(64)
 221185                        .HasColumnType("TEXT");
 221186
 221187                    b.Property<string>("AppVersion")
 221188                        .IsRequired()
 221189                        .HasMaxLength(32)
 221190                        .HasColumnType("TEXT");
 221191
 221192                    b.Property<DateTime>("DateCreated")
 221193                        .HasColumnType("TEXT");
 221194
 221195                    b.Property<DateTime>("DateLastActivity")
 221196                        .HasColumnType("TEXT");
 221197
 221198                    b.Property<DateTime>("DateModified")
 221199                        .HasColumnType("TEXT");
 221200
 221201                    b.Property<string>("DeviceId")
 221202                        .IsRequired()
 221203                        .HasMaxLength(256)
 221204                        .HasColumnType("TEXT");
 221205
 221206                    b.Property<string>("DeviceName")
 221207                        .IsRequired()
 221208                        .HasMaxLength(64)
 221209                        .HasColumnType("TEXT");
 221210
 221211                    b.Property<bool>("IsActive")
 221212                        .HasColumnType("INTEGER");
 221213
 221214                    b.Property<Guid>("UserId")
 221215                        .HasColumnType("TEXT");
 221216
 221217                    b.HasKey("Id");
 221218
 221219                    b.HasIndex("DeviceId");
 221220
 221221                    b.HasIndex("AccessToken", "DateLastActivity");
 221222
 221223                    b.HasIndex("DeviceId", "DateLastActivity");
 221224
 221225                    b.HasIndex("UserId", "DeviceId");
 221226
 221227                    b.ToTable("Devices");
 221228
 221229                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221230                });
 1231
 221232            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Security.DeviceOptions", b =>
 221233                {
 221234                    b.Property<int>("Id")
 221235                        .ValueGeneratedOnAdd()
 221236                        .HasColumnType("INTEGER");
 221237
 221238                    b.Property<string>("CustomName")
 221239                        .HasColumnType("TEXT");
 221240
 221241                    b.Property<string>("DeviceId")
 221242                        .IsRequired()
 221243                        .HasColumnType("TEXT");
 221244
 221245                    b.HasKey("Id");
 221246
 221247                    b.HasIndex("DeviceId")
 221248                        .IsUnique();
 221249
 221250                    b.ToTable("DeviceOptions");
 221251
 221252                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221253                });
 1254
 221255            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.TrickplayInfo", b =>
 221256                {
 221257                    b.Property<Guid>("ItemId")
 221258                        .HasColumnType("TEXT");
 221259
 221260                    b.Property<int>("Width")
 221261                        .HasColumnType("INTEGER");
 221262
 221263                    b.Property<int>("Bandwidth")
 221264                        .HasColumnType("INTEGER");
 221265
 221266                    b.Property<int>("Height")
 221267                        .HasColumnType("INTEGER");
 221268
 221269                    b.Property<int>("Interval")
 221270                        .HasColumnType("INTEGER");
 221271
 221272                    b.Property<int>("ThumbnailCount")
 221273                        .HasColumnType("INTEGER");
 221274
 221275                    b.Property<int>("TileHeight")
 221276                        .HasColumnType("INTEGER");
 221277
 221278                    b.Property<int>("TileWidth")
 221279                        .HasColumnType("INTEGER");
 221280
 221281                    b.HasKey("ItemId", "Width");
 221282
 221283                    b.ToTable("TrickplayInfos");
 221284
 221285                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221286                });
 1287
 221288            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.User", b =>
 221289                {
 221290                    b.Property<Guid>("Id")
 221291                        .ValueGeneratedOnAdd()
 221292                        .HasColumnType("TEXT");
 221293
 221294                    b.Property<string>("AudioLanguagePreference")
 221295                        .HasMaxLength(255)
 221296                        .HasColumnType("TEXT");
 221297
 221298                    b.Property<string>("AuthenticationProviderId")
 221299                        .IsRequired()
 221300                        .HasMaxLength(255)
 221301                        .HasColumnType("TEXT");
 221302
 221303                    b.Property<string>("CastReceiverId")
 221304                        .HasMaxLength(32)
 221305                        .HasColumnType("TEXT");
 221306
 221307                    b.Property<bool>("DisplayCollectionsView")
 221308                        .HasColumnType("INTEGER");
 221309
 221310                    b.Property<bool>("DisplayMissingEpisodes")
 221311                        .HasColumnType("INTEGER");
 221312
 221313                    b.Property<bool>("EnableAutoLogin")
 221314                        .HasColumnType("INTEGER");
 221315
 221316                    b.Property<bool>("EnableLocalPassword")
 221317                        .HasColumnType("INTEGER");
 221318
 221319                    b.Property<bool>("EnableNextEpisodeAutoPlay")
 221320                        .HasColumnType("INTEGER");
 221321
 221322                    b.Property<bool>("EnableUserPreferenceAccess")
 221323                        .HasColumnType("INTEGER");
 221324
 221325                    b.Property<bool>("HidePlayedInLatest")
 221326                        .HasColumnType("INTEGER");
 221327
 221328                    b.Property<long>("InternalId")
 221329                        .HasColumnType("INTEGER");
 221330
 221331                    b.Property<int>("InvalidLoginAttemptCount")
 221332                        .HasColumnType("INTEGER");
 221333
 221334                    b.Property<DateTime?>("LastActivityDate")
 221335                        .HasColumnType("TEXT");
 221336
 221337                    b.Property<DateTime?>("LastLoginDate")
 221338                        .HasColumnType("TEXT");
 221339
 221340                    b.Property<int?>("LoginAttemptsBeforeLockout")
 221341                        .HasColumnType("INTEGER");
 221342
 221343                    b.Property<int>("MaxActiveSessions")
 221344                        .HasColumnType("INTEGER");
 221345
 221346                    b.Property<int?>("MaxParentalRatingScore")
 221347                        .HasColumnType("INTEGER");
 221348
 221349                    b.Property<int?>("MaxParentalRatingSubScore")
 221350                        .HasColumnType("INTEGER");
 221351
 221352                    b.Property<bool>("MustUpdatePassword")
 221353                        .HasColumnType("INTEGER");
 221354
 221355                    b.Property<string>("Password")
 221356                        .HasMaxLength(65535)
 221357                        .HasColumnType("TEXT");
 221358
 221359                    b.Property<string>("PasswordResetProviderId")
 221360                        .IsRequired()
 221361                        .HasMaxLength(255)
 221362                        .HasColumnType("TEXT");
 221363
 221364                    b.Property<bool>("PlayDefaultAudioTrack")
 221365                        .HasColumnType("INTEGER");
 221366
 221367                    b.Property<bool>("RememberAudioSelections")
 221368                        .HasColumnType("INTEGER");
 221369
 221370                    b.Property<bool>("RememberSubtitleSelections")
 221371                        .HasColumnType("INTEGER");
 221372
 221373                    b.Property<int?>("RemoteClientBitrateLimit")
 221374                        .HasColumnType("INTEGER");
 221375
 221376                    b.Property<uint>("RowVersion")
 221377                        .IsConcurrencyToken()
 221378                        .HasColumnType("INTEGER");
 221379
 221380                    b.Property<string>("SubtitleLanguagePreference")
 221381                        .HasMaxLength(255)
 221382                        .HasColumnType("TEXT");
 221383
 221384                    b.Property<int>("SubtitleMode")
 221385                        .HasColumnType("INTEGER");
 221386
 221387                    b.Property<int>("SyncPlayAccess")
 221388                        .HasColumnType("INTEGER");
 221389
 221390                    b.Property<string>("Username")
 221391                        .IsRequired()
 221392                        .HasMaxLength(255)
 221393                        .HasColumnType("TEXT");
 221394
 221395                    b.HasKey("Id");
 221396
 221397                    b.HasIndex("Username")
 221398                        .IsUnique();
 221399
 221400                    b.ToTable("Users");
 221401
 221402                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221403                });
 1404
 221405            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.UserData", b =>
 221406                {
 221407                    b.Property<Guid>("ItemId")
 221408                        .HasColumnType("TEXT");
 221409
 221410                    b.Property<Guid>("UserId")
 221411                        .HasColumnType("TEXT");
 221412
 221413                    b.Property<string>("CustomDataKey")
 221414                        .HasColumnType("TEXT");
 221415
 221416                    b.Property<int?>("AudioStreamIndex")
 221417                        .HasColumnType("INTEGER");
 221418
 221419                    b.Property<bool>("IsFavorite")
 221420                        .HasColumnType("INTEGER");
 221421
 221422                    b.Property<DateTime?>("LastPlayedDate")
 221423                        .HasColumnType("TEXT");
 221424
 221425                    b.Property<bool?>("Likes")
 221426                        .HasColumnType("INTEGER");
 221427
 221428                    b.Property<int>("PlayCount")
 221429                        .HasColumnType("INTEGER");
 221430
 221431                    b.Property<long>("PlaybackPositionTicks")
 221432                        .HasColumnType("INTEGER");
 221433
 221434                    b.Property<bool>("Played")
 221435                        .HasColumnType("INTEGER");
 221436
 221437                    b.Property<double?>("Rating")
 221438                        .HasColumnType("REAL");
 221439
 221440                    b.Property<DateTime?>("RetentionDate")
 221441                        .HasColumnType("TEXT");
 221442
 221443                    b.Property<int?>("SubtitleStreamIndex")
 221444                        .HasColumnType("INTEGER");
 221445
 221446                    b.HasKey("ItemId", "UserId", "CustomDataKey");
 221447
 221448                    b.HasIndex("UserId");
 221449
 221450                    b.HasIndex("ItemId", "UserId", "IsFavorite");
 221451
 221452                    b.HasIndex("ItemId", "UserId", "LastPlayedDate");
 221453
 221454                    b.HasIndex("ItemId", "UserId", "PlaybackPositionTicks");
 221455
 221456                    b.HasIndex("ItemId", "UserId", "Played");
 221457
 221458                    b.ToTable("UserData");
 221459
 221460                    b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
 221461                });
 1462
 221463            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.AccessSchedule", b =>
 221464                {
 221465                    b.HasOne("Jellyfin.Database.Implementations.Entities.User", null)
 221466                        .WithMany("AccessSchedules")
 221467                        .HasForeignKey("UserId")
 221468                        .OnDelete(DeleteBehavior.Cascade)
 221469                        .IsRequired();
 221470                });
 1471
 221472            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.AncestorId", b =>
 221473                {
 221474                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221475                        .WithMany("Parents")
 221476                        .HasForeignKey("ItemId")
 221477                        .OnDelete(DeleteBehavior.Cascade)
 221478                        .IsRequired();
 221479
 221480                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "ParentItem")
 221481                        .WithMany("Children")
 221482                        .HasForeignKey("ParentItemId")
 221483                        .OnDelete(DeleteBehavior.Cascade)
 221484                        .IsRequired();
 221485
 221486                    b.Navigation("Item");
 221487
 221488                    b.Navigation("ParentItem");
 221489                });
 1490
 221491            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.AttachmentStreamInfo", b =>
 221492                {
 221493                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221494                        .WithMany()
 221495                        .HasForeignKey("ItemId")
 221496                        .OnDelete(DeleteBehavior.Cascade)
 221497                        .IsRequired();
 221498
 221499                    b.Navigation("Item");
 221500                });
 1501
 221502            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemEntity", b =>
 221503                {
 221504                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Owner")
 221505                        .WithMany("Extras")
 221506                        .HasForeignKey("OwnerId")
 221507                        .OnDelete(DeleteBehavior.NoAction);
 221508
 221509                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "DirectParent")
 221510                        .WithMany("DirectChildren")
 221511                        .HasForeignKey("ParentId")
 221512                        .OnDelete(DeleteBehavior.Cascade);
 221513
 221514                    b.Navigation("DirectParent");
 221515
 221516                    b.Navigation("Owner");
 221517                });
 1518
 221519            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemImageInfo", b =>
 221520                {
 221521                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221522                        .WithMany("Images")
 221523                        .HasForeignKey("ItemId")
 221524                        .OnDelete(DeleteBehavior.Cascade)
 221525                        .IsRequired();
 221526
 221527                    b.Navigation("Item");
 221528                });
 1529
 221530            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemMetadataField", b =>
 221531                {
 221532                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221533                        .WithMany("LockedFields")
 221534                        .HasForeignKey("ItemId")
 221535                        .OnDelete(DeleteBehavior.Cascade)
 221536                        .IsRequired();
 221537
 221538                    b.Navigation("Item");
 221539                });
 1540
 221541            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemProvider", b =>
 221542                {
 221543                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221544                        .WithMany("Provider")
 221545                        .HasForeignKey("ItemId")
 221546                        .OnDelete(DeleteBehavior.Cascade)
 221547                        .IsRequired();
 221548
 221549                    b.Navigation("Item");
 221550                });
 1551
 221552            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemTrailerType", b =>
 221553                {
 221554                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221555                        .WithMany("TrailerTypes")
 221556                        .HasForeignKey("ItemId")
 221557                        .OnDelete(DeleteBehavior.Cascade)
 221558                        .IsRequired();
 221559
 221560                    b.Navigation("Item");
 221561                });
 1562
 221563            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Chapter", b =>
 221564                {
 221565                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221566                        .WithMany("Chapters")
 221567                        .HasForeignKey("ItemId")
 221568                        .OnDelete(DeleteBehavior.Cascade)
 221569                        .IsRequired();
 221570
 221571                    b.Navigation("Item");
 221572                });
 1573
 221574            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.DisplayPreferences", b =>
 221575                {
 221576                    b.HasOne("Jellyfin.Database.Implementations.Entities.User", null)
 221577                        .WithMany("DisplayPreferences")
 221578                        .HasForeignKey("UserId")
 221579                        .OnDelete(DeleteBehavior.Cascade)
 221580                        .IsRequired();
 221581                });
 1582
 221583            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.HomeSection", b =>
 221584                {
 221585                    b.HasOne("Jellyfin.Database.Implementations.Entities.DisplayPreferences", null)
 221586                        .WithMany("HomeSections")
 221587                        .HasForeignKey("DisplayPreferencesId")
 221588                        .OnDelete(DeleteBehavior.Cascade)
 221589                        .IsRequired();
 221590                });
 1591
 221592            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.ImageInfo", b =>
 221593                {
 221594                    b.HasOne("Jellyfin.Database.Implementations.Entities.User", null)
 221595                        .WithOne("ProfileImage")
 221596                        .HasForeignKey("Jellyfin.Database.Implementations.Entities.ImageInfo", "UserId")
 221597                        .OnDelete(DeleteBehavior.Cascade);
 221598                });
 1599
 221600            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.ItemDisplayPreferences", b =>
 221601                {
 221602                    b.HasOne("Jellyfin.Database.Implementations.Entities.User", null)
 221603                        .WithMany("ItemDisplayPreferences")
 221604                        .HasForeignKey("UserId")
 221605                        .OnDelete(DeleteBehavior.Cascade)
 221606                        .IsRequired();
 221607                });
 1608
 221609            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.ItemValueMap", b =>
 221610                {
 221611                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221612                        .WithMany("ItemValues")
 221613                        .HasForeignKey("ItemId")
 221614                        .OnDelete(DeleteBehavior.Cascade)
 221615                        .IsRequired();
 221616
 221617                    b.HasOne("Jellyfin.Database.Implementations.Entities.ItemValue", "ItemValue")
 221618                        .WithMany("BaseItemsMap")
 221619                        .HasForeignKey("ItemValueId")
 221620                        .OnDelete(DeleteBehavior.Cascade)
 221621                        .IsRequired();
 221622
 221623                    b.Navigation("Item");
 221624
 221625                    b.Navigation("ItemValue");
 221626                });
 1627
 221628            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.KeyframeData", b =>
 221629                {
 221630                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221631                        .WithMany()
 221632                        .HasForeignKey("ItemId")
 221633                        .OnDelete(DeleteBehavior.Cascade)
 221634                        .IsRequired();
 221635
 221636                    b.Navigation("Item");
 221637                });
 1638
 221639            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.LinkedChildEntity", b =>
 221640                {
 221641                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Child")
 221642                        .WithMany("LinkedChildOfEntities")
 221643                        .HasForeignKey("ChildId")
 221644                        .OnDelete(DeleteBehavior.NoAction)
 221645                        .IsRequired();
 221646
 221647                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Parent")
 221648                        .WithMany("LinkedChildEntities")
 221649                        .HasForeignKey("ParentId")
 221650                        .OnDelete(DeleteBehavior.NoAction)
 221651                        .IsRequired();
 221652
 221653                    b.Navigation("Child");
 221654
 221655                    b.Navigation("Parent");
 221656                });
 1657
 221658            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.MediaStreamInfo", b =>
 221659                {
 221660                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221661                        .WithMany("MediaStreams")
 221662                        .HasForeignKey("ItemId")
 221663                        .OnDelete(DeleteBehavior.Cascade)
 221664                        .IsRequired();
 221665
 221666                    b.Navigation("Item");
 221667                });
 1668
 221669            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.PeopleBaseItemMap", b =>
 221670                {
 221671                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221672                        .WithMany("Peoples")
 221673                        .HasForeignKey("ItemId")
 221674                        .OnDelete(DeleteBehavior.Cascade)
 221675                        .IsRequired();
 221676
 221677                    b.HasOne("Jellyfin.Database.Implementations.Entities.People", "People")
 221678                        .WithMany("BaseItems")
 221679                        .HasForeignKey("PeopleId")
 221680                        .OnDelete(DeleteBehavior.Cascade)
 221681                        .IsRequired();
 221682
 221683                    b.Navigation("Item");
 221684
 221685                    b.Navigation("People");
 221686                });
 1687
 221688            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Permission", b =>
 221689                {
 221690                    b.HasOne("Jellyfin.Database.Implementations.Entities.User", null)
 221691                        .WithMany("Permissions")
 221692                        .HasForeignKey("UserId")
 221693                        .OnDelete(DeleteBehavior.Cascade);
 221694                });
 1695
 221696            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Preference", b =>
 221697                {
 221698                    b.HasOne("Jellyfin.Database.Implementations.Entities.User", null)
 221699                        .WithMany("Preferences")
 221700                        .HasForeignKey("UserId")
 221701                        .OnDelete(DeleteBehavior.Cascade);
 221702                });
 1703
 221704            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.Security.Device", b =>
 221705                {
 221706                    b.HasOne("Jellyfin.Database.Implementations.Entities.User", "User")
 221707                        .WithMany()
 221708                        .HasForeignKey("UserId")
 221709                        .OnDelete(DeleteBehavior.Cascade)
 221710                        .IsRequired();
 221711
 221712                    b.Navigation("User");
 221713                });
 1714
 221715            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.UserData", b =>
 221716                {
 221717                    b.HasOne("Jellyfin.Database.Implementations.Entities.BaseItemEntity", "Item")
 221718                        .WithMany("UserData")
 221719                        .HasForeignKey("ItemId")
 221720                        .OnDelete(DeleteBehavior.Cascade)
 221721                        .IsRequired();
 221722
 221723                    b.HasOne("Jellyfin.Database.Implementations.Entities.User", "User")
 221724                        .WithMany()
 221725                        .HasForeignKey("UserId")
 221726                        .OnDelete(DeleteBehavior.Cascade)
 221727                        .IsRequired();
 221728
 221729                    b.Navigation("Item");
 221730
 221731                    b.Navigation("User");
 221732                });
 1733
 221734            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.BaseItemEntity", b =>
 221735                {
 221736                    b.Navigation("Chapters");
 221737
 221738                    b.Navigation("Children");
 221739
 221740                    b.Navigation("DirectChildren");
 221741
 221742                    b.Navigation("Extras");
 221743
 221744                    b.Navigation("Images");
 221745
 221746                    b.Navigation("ItemValues");
 221747
 221748                    b.Navigation("LinkedChildEntities");
 221749
 221750                    b.Navigation("LinkedChildOfEntities");
 221751
 221752                    b.Navigation("LockedFields");
 221753
 221754                    b.Navigation("MediaStreams");
 221755
 221756                    b.Navigation("Parents");
 221757
 221758                    b.Navigation("Peoples");
 221759
 221760                    b.Navigation("Provider");
 221761
 221762                    b.Navigation("TrailerTypes");
 221763
 221764                    b.Navigation("UserData");
 221765                });
 1766
 221767            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.DisplayPreferences", b =>
 221768                {
 221769                    b.Navigation("HomeSections");
 221770                });
 1771
 221772            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.ItemValue", b =>
 221773                {
 221774                    b.Navigation("BaseItemsMap");
 221775                });
 1776
 221777            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.People", b =>
 221778                {
 221779                    b.Navigation("BaseItems");
 221780                });
 1781
 221782            modelBuilder.Entity("Jellyfin.Database.Implementations.Entities.User", b =>
 221783                {
 221784                    b.Navigation("AccessSchedules");
 221785
 221786                    b.Navigation("DisplayPreferences");
 221787
 221788                    b.Navigation("ItemDisplayPreferences");
 221789
 221790                    b.Navigation("Permissions");
 221791
 221792                    b.Navigation("Preferences");
 221793
 221794                    b.Navigation("ProfileImage");
 221795                });
 1796#pragma warning restore 612, 618
 221797        }
 1798    }
 1799}