< Summary - Jellyfin

Line coverage
91%
Covered lines: 661
Uncovered lines: 62
Coverable lines: 723
Total lines: 814
Line coverage: 91.4%
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/16/2026 - 12:15:55 AM Line coverage: 91.4% (661/723) Total lines: 814

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/20230526173516_RemoveEasyPassword.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Migrations;
 2
 3#nullable disable
 4
 5namespace Jellyfin.Server.Implementations.Migrations
 6{
 7    /// <inheritdoc />
 8    public partial class RemoveEasyPassword : Migration
 9    {
 10        /// <inheritdoc />
 11        protected override void Up(MigrationBuilder migrationBuilder)
 12        {
 2713            migrationBuilder.DropColumn(
 2714                name: "EasyPassword",
 2715                schema: "jellyfin",
 2716                table: "Users");
 17
 2718            migrationBuilder.RenameTable(
 2719                name: "Users",
 2720                schema: "jellyfin",
 2721                newName: "Users");
 22
 2723            migrationBuilder.RenameTable(
 2724                name: "Preferences",
 2725                schema: "jellyfin",
 2726                newName: "Preferences");
 27
 2728            migrationBuilder.RenameTable(
 2729                name: "Permissions",
 2730                schema: "jellyfin",
 2731                newName: "Permissions");
 32
 2733            migrationBuilder.RenameTable(
 2734                name: "ItemDisplayPreferences",
 2735                schema: "jellyfin",
 2736                newName: "ItemDisplayPreferences");
 37
 2738            migrationBuilder.RenameTable(
 2739                name: "ImageInfos",
 2740                schema: "jellyfin",
 2741                newName: "ImageInfos");
 42
 2743            migrationBuilder.RenameTable(
 2744                name: "HomeSection",
 2745                schema: "jellyfin",
 2746                newName: "HomeSection");
 47
 2748            migrationBuilder.RenameTable(
 2749                name: "DisplayPreferences",
 2750                schema: "jellyfin",
 2751                newName: "DisplayPreferences");
 52
 2753            migrationBuilder.RenameTable(
 2754                name: "Devices",
 2755                schema: "jellyfin",
 2756                newName: "Devices");
 57
 2758            migrationBuilder.RenameTable(
 2759                name: "DeviceOptions",
 2760                schema: "jellyfin",
 2761                newName: "DeviceOptions");
 62
 2763            migrationBuilder.RenameTable(
 2764                name: "CustomItemDisplayPreferences",
 2765                schema: "jellyfin",
 2766                newName: "CustomItemDisplayPreferences");
 67
 2768            migrationBuilder.RenameTable(
 2769                name: "ApiKeys",
 2770                schema: "jellyfin",
 2771                newName: "ApiKeys");
 72
 2773            migrationBuilder.RenameTable(
 2774                name: "ActivityLogs",
 2775                schema: "jellyfin",
 2776                newName: "ActivityLogs");
 77
 2778            migrationBuilder.RenameTable(
 2779                name: "AccessSchedules",
 2780                schema: "jellyfin",
 2781                newName: "AccessSchedules");
 2782        }
 83
 84        /// <inheritdoc />
 85        protected override void Down(MigrationBuilder migrationBuilder)
 86        {
 087            migrationBuilder.EnsureSchema(
 088                name: "jellyfin");
 89
 090            migrationBuilder.RenameTable(
 091                name: "Users",
 092                newName: "Users",
 093                newSchema: "jellyfin");
 94
 095            migrationBuilder.RenameTable(
 096                name: "Preferences",
 097                newName: "Preferences",
 098                newSchema: "jellyfin");
 99
 0100            migrationBuilder.RenameTable(
 0101                name: "Permissions",
 0102                newName: "Permissions",
 0103                newSchema: "jellyfin");
 104
 0105            migrationBuilder.RenameTable(
 0106                name: "ItemDisplayPreferences",
 0107                newName: "ItemDisplayPreferences",
 0108                newSchema: "jellyfin");
 109
 0110            migrationBuilder.RenameTable(
 0111                name: "ImageInfos",
 0112                newName: "ImageInfos",
 0113                newSchema: "jellyfin");
 114
 0115            migrationBuilder.RenameTable(
 0116                name: "HomeSection",
 0117                newName: "HomeSection",
 0118                newSchema: "jellyfin");
 119
 0120            migrationBuilder.RenameTable(
 0121                name: "DisplayPreferences",
 0122                newName: "DisplayPreferences",
 0123                newSchema: "jellyfin");
 124
 0125            migrationBuilder.RenameTable(
 0126                name: "Devices",
 0127                newName: "Devices",
 0128                newSchema: "jellyfin");
 129
 0130            migrationBuilder.RenameTable(
 0131                name: "DeviceOptions",
 0132                newName: "DeviceOptions",
 0133                newSchema: "jellyfin");
 134
 0135            migrationBuilder.RenameTable(
 0136                name: "CustomItemDisplayPreferences",
 0137                newName: "CustomItemDisplayPreferences",
 0138                newSchema: "jellyfin");
 139
 0140            migrationBuilder.RenameTable(
 0141                name: "ApiKeys",
 0142                newName: "ApiKeys",
 0143                newSchema: "jellyfin");
 144
 0145            migrationBuilder.RenameTable(
 0146                name: "ActivityLogs",
 0147                newName: "ActivityLogs",
 0148                newSchema: "jellyfin");
 149
 0150            migrationBuilder.RenameTable(
 0151                name: "AccessSchedules",
 0152                newName: "AccessSchedules",
 0153                newSchema: "jellyfin");
 154
 0155            migrationBuilder.AddColumn<string>(
 0156                name: "EasyPassword",
 0157                schema: "jellyfin",
 0158                table: "Users",
 0159                type: "TEXT",
 0160                maxLength: 65535,
 0161                nullable: true);
 0162        }
 163    }
 164}

/srv/git/jellyfin/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20230526173516_RemoveEasyPassword.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.Server.Implementations.Migrations
 12{
 13    [DbContext(typeof(JellyfinDbContext))]
 14    [Migration("20230526173516_RemoveEasyPassword")]
 15    partial class RemoveEasyPassword
 16    {
 17        /// <inheritdoc />
 18        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 19        {
 20#pragma warning disable 612, 618
 2721            modelBuilder.HasAnnotation("ProductVersion", "7.0.5");
 22
 2723            modelBuilder.Entity("Jellyfin.Data.Entities.AccessSchedule", b =>
 2724                {
 2725                    b.Property<int>("Id")
 2726                        .ValueGeneratedOnAdd()
 2727                        .HasColumnType("INTEGER");
 2728
 2729                    b.Property<int>("DayOfWeek")
 2730                        .HasColumnType("INTEGER");
 2731
 2732                    b.Property<double>("EndHour")
 2733                        .HasColumnType("REAL");
 2734
 2735                    b.Property<double>("StartHour")
 2736                        .HasColumnType("REAL");
 2737
 2738                    b.Property<Guid>("UserId")
 2739                        .HasColumnType("TEXT");
 2740
 2741                    b.HasKey("Id");
 2742
 2743                    b.HasIndex("UserId");
 2744
 2745                    b.ToTable("AccessSchedules");
 2746                });
 47
 2748            modelBuilder.Entity("Jellyfin.Data.Entities.ActivityLog", b =>
 2749                {
 2750                    b.Property<int>("Id")
 2751                        .ValueGeneratedOnAdd()
 2752                        .HasColumnType("INTEGER");
 2753
 2754                    b.Property<DateTime>("DateCreated")
 2755                        .HasColumnType("TEXT");
 2756
 2757                    b.Property<string>("ItemId")
 2758                        .HasMaxLength(256)
 2759                        .HasColumnType("TEXT");
 2760
 2761                    b.Property<int>("LogSeverity")
 2762                        .HasColumnType("INTEGER");
 2763
 2764                    b.Property<string>("Name")
 2765                        .IsRequired()
 2766                        .HasMaxLength(512)
 2767                        .HasColumnType("TEXT");
 2768
 2769                    b.Property<string>("Overview")
 2770                        .HasMaxLength(512)
 2771                        .HasColumnType("TEXT");
 2772
 2773                    b.Property<uint>("RowVersion")
 2774                        .IsConcurrencyToken()
 2775                        .HasColumnType("INTEGER");
 2776
 2777                    b.Property<string>("ShortOverview")
 2778                        .HasMaxLength(512)
 2779                        .HasColumnType("TEXT");
 2780
 2781                    b.Property<string>("Type")
 2782                        .IsRequired()
 2783                        .HasMaxLength(256)
 2784                        .HasColumnType("TEXT");
 2785
 2786                    b.Property<Guid>("UserId")
 2787                        .HasColumnType("TEXT");
 2788
 2789                    b.HasKey("Id");
 2790
 2791                    b.HasIndex("DateCreated");
 2792
 2793                    b.ToTable("ActivityLogs");
 2794                });
 95
 2796            modelBuilder.Entity("Jellyfin.Data.Entities.CustomItemDisplayPreferences", b =>
 2797                {
 2798                    b.Property<int>("Id")
 2799                        .ValueGeneratedOnAdd()
 27100                        .HasColumnType("INTEGER");
 27101
 27102                    b.Property<string>("Client")
 27103                        .IsRequired()
 27104                        .HasMaxLength(32)
 27105                        .HasColumnType("TEXT");
 27106
 27107                    b.Property<Guid>("ItemId")
 27108                        .HasColumnType("TEXT");
 27109
 27110                    b.Property<string>("Key")
 27111                        .IsRequired()
 27112                        .HasColumnType("TEXT");
 27113
 27114                    b.Property<Guid>("UserId")
 27115                        .HasColumnType("TEXT");
 27116
 27117                    b.Property<string>("Value")
 27118                        .HasColumnType("TEXT");
 27119
 27120                    b.HasKey("Id");
 27121
 27122                    b.HasIndex("UserId", "ItemId", "Client", "Key")
 27123                        .IsUnique();
 27124
 27125                    b.ToTable("CustomItemDisplayPreferences");
 27126                });
 127
 27128            modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
 27129                {
 27130                    b.Property<int>("Id")
 27131                        .ValueGeneratedOnAdd()
 27132                        .HasColumnType("INTEGER");
 27133
 27134                    b.Property<int>("ChromecastVersion")
 27135                        .HasColumnType("INTEGER");
 27136
 27137                    b.Property<string>("Client")
 27138                        .IsRequired()
 27139                        .HasMaxLength(32)
 27140                        .HasColumnType("TEXT");
 27141
 27142                    b.Property<string>("DashboardTheme")
 27143                        .HasMaxLength(32)
 27144                        .HasColumnType("TEXT");
 27145
 27146                    b.Property<bool>("EnableNextVideoInfoOverlay")
 27147                        .HasColumnType("INTEGER");
 27148
 27149                    b.Property<int?>("IndexBy")
 27150                        .HasColumnType("INTEGER");
 27151
 27152                    b.Property<Guid>("ItemId")
 27153                        .HasColumnType("TEXT");
 27154
 27155                    b.Property<int>("ScrollDirection")
 27156                        .HasColumnType("INTEGER");
 27157
 27158                    b.Property<bool>("ShowBackdrop")
 27159                        .HasColumnType("INTEGER");
 27160
 27161                    b.Property<bool>("ShowSidebar")
 27162                        .HasColumnType("INTEGER");
 27163
 27164                    b.Property<int>("SkipBackwardLength")
 27165                        .HasColumnType("INTEGER");
 27166
 27167                    b.Property<int>("SkipForwardLength")
 27168                        .HasColumnType("INTEGER");
 27169
 27170                    b.Property<string>("TvHome")
 27171                        .HasMaxLength(32)
 27172                        .HasColumnType("TEXT");
 27173
 27174                    b.Property<Guid>("UserId")
 27175                        .HasColumnType("TEXT");
 27176
 27177                    b.HasKey("Id");
 27178
 27179                    b.HasIndex("UserId", "ItemId", "Client")
 27180                        .IsUnique();
 27181
 27182                    b.ToTable("DisplayPreferences");
 27183                });
 184
 27185            modelBuilder.Entity("Jellyfin.Data.Entities.HomeSection", b =>
 27186                {
 27187                    b.Property<int>("Id")
 27188                        .ValueGeneratedOnAdd()
 27189                        .HasColumnType("INTEGER");
 27190
 27191                    b.Property<int>("DisplayPreferencesId")
 27192                        .HasColumnType("INTEGER");
 27193
 27194                    b.Property<int>("Order")
 27195                        .HasColumnType("INTEGER");
 27196
 27197                    b.Property<int>("Type")
 27198                        .HasColumnType("INTEGER");
 27199
 27200                    b.HasKey("Id");
 27201
 27202                    b.HasIndex("DisplayPreferencesId");
 27203
 27204                    b.ToTable("HomeSection");
 27205                });
 206
 27207            modelBuilder.Entity("Jellyfin.Data.Entities.ImageInfo", b =>
 27208                {
 27209                    b.Property<int>("Id")
 27210                        .ValueGeneratedOnAdd()
 27211                        .HasColumnType("INTEGER");
 27212
 27213                    b.Property<DateTime>("LastModified")
 27214                        .HasColumnType("TEXT");
 27215
 27216                    b.Property<string>("Path")
 27217                        .IsRequired()
 27218                        .HasMaxLength(512)
 27219                        .HasColumnType("TEXT");
 27220
 27221                    b.Property<Guid?>("UserId")
 27222                        .HasColumnType("TEXT");
 27223
 27224                    b.HasKey("Id");
 27225
 27226                    b.HasIndex("UserId")
 27227                        .IsUnique();
 27228
 27229                    b.ToTable("ImageInfos");
 27230                });
 231
 27232            modelBuilder.Entity("Jellyfin.Data.Entities.ItemDisplayPreferences", b =>
 27233                {
 27234                    b.Property<int>("Id")
 27235                        .ValueGeneratedOnAdd()
 27236                        .HasColumnType("INTEGER");
 27237
 27238                    b.Property<string>("Client")
 27239                        .IsRequired()
 27240                        .HasMaxLength(32)
 27241                        .HasColumnType("TEXT");
 27242
 27243                    b.Property<int?>("IndexBy")
 27244                        .HasColumnType("INTEGER");
 27245
 27246                    b.Property<Guid>("ItemId")
 27247                        .HasColumnType("TEXT");
 27248
 27249                    b.Property<bool>("RememberIndexing")
 27250                        .HasColumnType("INTEGER");
 27251
 27252                    b.Property<bool>("RememberSorting")
 27253                        .HasColumnType("INTEGER");
 27254
 27255                    b.Property<string>("SortBy")
 27256                        .IsRequired()
 27257                        .HasMaxLength(64)
 27258                        .HasColumnType("TEXT");
 27259
 27260                    b.Property<int>("SortOrder")
 27261                        .HasColumnType("INTEGER");
 27262
 27263                    b.Property<Guid>("UserId")
 27264                        .HasColumnType("TEXT");
 27265
 27266                    b.Property<int>("ViewType")
 27267                        .HasColumnType("INTEGER");
 27268
 27269                    b.HasKey("Id");
 27270
 27271                    b.HasIndex("UserId");
 27272
 27273                    b.ToTable("ItemDisplayPreferences");
 27274                });
 275
 27276            modelBuilder.Entity("Jellyfin.Data.Entities.Permission", b =>
 27277                {
 27278                    b.Property<int>("Id")
 27279                        .ValueGeneratedOnAdd()
 27280                        .HasColumnType("INTEGER");
 27281
 27282                    b.Property<int>("Kind")
 27283                        .HasColumnType("INTEGER");
 27284
 27285                    b.Property<Guid?>("Permission_Permissions_Guid")
 27286                        .HasColumnType("TEXT");
 27287
 27288                    b.Property<uint>("RowVersion")
 27289                        .IsConcurrencyToken()
 27290                        .HasColumnType("INTEGER");
 27291
 27292                    b.Property<Guid?>("UserId")
 27293                        .HasColumnType("TEXT");
 27294
 27295                    b.Property<bool>("Value")
 27296                        .HasColumnType("INTEGER");
 27297
 27298                    b.HasKey("Id");
 27299
 27300                    b.HasIndex("UserId", "Kind")
 27301                        .IsUnique()
 27302                        .HasFilter("[UserId] IS NOT NULL");
 27303
 27304                    b.ToTable("Permissions");
 27305                });
 306
 27307            modelBuilder.Entity("Jellyfin.Data.Entities.Preference", b =>
 27308                {
 27309                    b.Property<int>("Id")
 27310                        .ValueGeneratedOnAdd()
 27311                        .HasColumnType("INTEGER");
 27312
 27313                    b.Property<int>("Kind")
 27314                        .HasColumnType("INTEGER");
 27315
 27316                    b.Property<Guid?>("Preference_Preferences_Guid")
 27317                        .HasColumnType("TEXT");
 27318
 27319                    b.Property<uint>("RowVersion")
 27320                        .IsConcurrencyToken()
 27321                        .HasColumnType("INTEGER");
 27322
 27323                    b.Property<Guid?>("UserId")
 27324                        .HasColumnType("TEXT");
 27325
 27326                    b.Property<string>("Value")
 27327                        .IsRequired()
 27328                        .HasMaxLength(65535)
 27329                        .HasColumnType("TEXT");
 27330
 27331                    b.HasKey("Id");
 27332
 27333                    b.HasIndex("UserId", "Kind")
 27334                        .IsUnique()
 27335                        .HasFilter("[UserId] IS NOT NULL");
 27336
 27337                    b.ToTable("Preferences");
 27338                });
 339
 27340            modelBuilder.Entity("Jellyfin.Data.Entities.Security.ApiKey", b =>
 27341                {
 27342                    b.Property<int>("Id")
 27343                        .ValueGeneratedOnAdd()
 27344                        .HasColumnType("INTEGER");
 27345
 27346                    b.Property<string>("AccessToken")
 27347                        .IsRequired()
 27348                        .HasColumnType("TEXT");
 27349
 27350                    b.Property<DateTime>("DateCreated")
 27351                        .HasColumnType("TEXT");
 27352
 27353                    b.Property<DateTime>("DateLastActivity")
 27354                        .HasColumnType("TEXT");
 27355
 27356                    b.Property<string>("Name")
 27357                        .IsRequired()
 27358                        .HasMaxLength(64)
 27359                        .HasColumnType("TEXT");
 27360
 27361                    b.HasKey("Id");
 27362
 27363                    b.HasIndex("AccessToken")
 27364                        .IsUnique();
 27365
 27366                    b.ToTable("ApiKeys");
 27367                });
 368
 27369            modelBuilder.Entity("Jellyfin.Data.Entities.Security.Device", b =>
 27370                {
 27371                    b.Property<int>("Id")
 27372                        .ValueGeneratedOnAdd()
 27373                        .HasColumnType("INTEGER");
 27374
 27375                    b.Property<string>("AccessToken")
 27376                        .IsRequired()
 27377                        .HasColumnType("TEXT");
 27378
 27379                    b.Property<string>("AppName")
 27380                        .IsRequired()
 27381                        .HasMaxLength(64)
 27382                        .HasColumnType("TEXT");
 27383
 27384                    b.Property<string>("AppVersion")
 27385                        .IsRequired()
 27386                        .HasMaxLength(32)
 27387                        .HasColumnType("TEXT");
 27388
 27389                    b.Property<DateTime>("DateCreated")
 27390                        .HasColumnType("TEXT");
 27391
 27392                    b.Property<DateTime>("DateLastActivity")
 27393                        .HasColumnType("TEXT");
 27394
 27395                    b.Property<DateTime>("DateModified")
 27396                        .HasColumnType("TEXT");
 27397
 27398                    b.Property<string>("DeviceId")
 27399                        .IsRequired()
 27400                        .HasMaxLength(256)
 27401                        .HasColumnType("TEXT");
 27402
 27403                    b.Property<string>("DeviceName")
 27404                        .IsRequired()
 27405                        .HasMaxLength(64)
 27406                        .HasColumnType("TEXT");
 27407
 27408                    b.Property<bool>("IsActive")
 27409                        .HasColumnType("INTEGER");
 27410
 27411                    b.Property<Guid>("UserId")
 27412                        .HasColumnType("TEXT");
 27413
 27414                    b.HasKey("Id");
 27415
 27416                    b.HasIndex("DeviceId");
 27417
 27418                    b.HasIndex("AccessToken", "DateLastActivity");
 27419
 27420                    b.HasIndex("DeviceId", "DateLastActivity");
 27421
 27422                    b.HasIndex("UserId", "DeviceId");
 27423
 27424                    b.ToTable("Devices");
 27425                });
 426
 27427            modelBuilder.Entity("Jellyfin.Data.Entities.Security.DeviceOptions", b =>
 27428                {
 27429                    b.Property<int>("Id")
 27430                        .ValueGeneratedOnAdd()
 27431                        .HasColumnType("INTEGER");
 27432
 27433                    b.Property<string>("CustomName")
 27434                        .HasColumnType("TEXT");
 27435
 27436                    b.Property<string>("DeviceId")
 27437                        .IsRequired()
 27438                        .HasColumnType("TEXT");
 27439
 27440                    b.HasKey("Id");
 27441
 27442                    b.HasIndex("DeviceId")
 27443                        .IsUnique();
 27444
 27445                    b.ToTable("DeviceOptions");
 27446                });
 447
 27448            modelBuilder.Entity("Jellyfin.Data.Entities.User", b =>
 27449                {
 27450                    b.Property<Guid>("Id")
 27451                        .ValueGeneratedOnAdd()
 27452                        .HasColumnType("TEXT");
 27453
 27454                    b.Property<string>("AudioLanguagePreference")
 27455                        .HasMaxLength(255)
 27456                        .HasColumnType("TEXT");
 27457
 27458                    b.Property<string>("AuthenticationProviderId")
 27459                        .IsRequired()
 27460                        .HasMaxLength(255)
 27461                        .HasColumnType("TEXT");
 27462
 27463                    b.Property<bool>("DisplayCollectionsView")
 27464                        .HasColumnType("INTEGER");
 27465
 27466                    b.Property<bool>("DisplayMissingEpisodes")
 27467                        .HasColumnType("INTEGER");
 27468
 27469                    b.Property<bool>("EnableAutoLogin")
 27470                        .HasColumnType("INTEGER");
 27471
 27472                    b.Property<bool>("EnableLocalPassword")
 27473                        .HasColumnType("INTEGER");
 27474
 27475                    b.Property<bool>("EnableNextEpisodeAutoPlay")
 27476                        .HasColumnType("INTEGER");
 27477
 27478                    b.Property<bool>("EnableUserPreferenceAccess")
 27479                        .HasColumnType("INTEGER");
 27480
 27481                    b.Property<bool>("HidePlayedInLatest")
 27482                        .HasColumnType("INTEGER");
 27483
 27484                    b.Property<long>("InternalId")
 27485                        .HasColumnType("INTEGER");
 27486
 27487                    b.Property<int>("InvalidLoginAttemptCount")
 27488                        .HasColumnType("INTEGER");
 27489
 27490                    b.Property<DateTime?>("LastActivityDate")
 27491                        .HasColumnType("TEXT");
 27492
 27493                    b.Property<DateTime?>("LastLoginDate")
 27494                        .HasColumnType("TEXT");
 27495
 27496                    b.Property<int?>("LoginAttemptsBeforeLockout")
 27497                        .HasColumnType("INTEGER");
 27498
 27499                    b.Property<int>("MaxActiveSessions")
 27500                        .HasColumnType("INTEGER");
 27501
 27502                    b.Property<int?>("MaxParentalAgeRating")
 27503                        .HasColumnType("INTEGER");
 27504
 27505                    b.Property<bool>("MustUpdatePassword")
 27506                        .HasColumnType("INTEGER");
 27507
 27508                    b.Property<string>("Password")
 27509                        .HasMaxLength(65535)
 27510                        .HasColumnType("TEXT");
 27511
 27512                    b.Property<string>("PasswordResetProviderId")
 27513                        .IsRequired()
 27514                        .HasMaxLength(255)
 27515                        .HasColumnType("TEXT");
 27516
 27517                    b.Property<bool>("PlayDefaultAudioTrack")
 27518                        .HasColumnType("INTEGER");
 27519
 27520                    b.Property<bool>("RememberAudioSelections")
 27521                        .HasColumnType("INTEGER");
 27522
 27523                    b.Property<bool>("RememberSubtitleSelections")
 27524                        .HasColumnType("INTEGER");
 27525
 27526                    b.Property<int?>("RemoteClientBitrateLimit")
 27527                        .HasColumnType("INTEGER");
 27528
 27529                    b.Property<uint>("RowVersion")
 27530                        .IsConcurrencyToken()
 27531                        .HasColumnType("INTEGER");
 27532
 27533                    b.Property<string>("SubtitleLanguagePreference")
 27534                        .HasMaxLength(255)
 27535                        .HasColumnType("TEXT");
 27536
 27537                    b.Property<int>("SubtitleMode")
 27538                        .HasColumnType("INTEGER");
 27539
 27540                    b.Property<int>("SyncPlayAccess")
 27541                        .HasColumnType("INTEGER");
 27542
 27543                    b.Property<string>("Username")
 27544                        .IsRequired()
 27545                        .HasMaxLength(255)
 27546                        .HasColumnType("TEXT")
 27547                        .UseCollation("NOCASE");
 27548
 27549                    b.HasKey("Id");
 27550
 27551                    b.HasIndex("Username")
 27552                        .IsUnique();
 27553
 27554                    b.ToTable("Users");
 27555                });
 556
 27557            modelBuilder.Entity("Jellyfin.Data.Entities.AccessSchedule", b =>
 27558                {
 27559                    b.HasOne("Jellyfin.Data.Entities.User", null)
 27560                        .WithMany("AccessSchedules")
 27561                        .HasForeignKey("UserId")
 27562                        .OnDelete(DeleteBehavior.Cascade)
 27563                        .IsRequired();
 27564                });
 565
 27566            modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
 27567                {
 27568                    b.HasOne("Jellyfin.Data.Entities.User", null)
 27569                        .WithMany("DisplayPreferences")
 27570                        .HasForeignKey("UserId")
 27571                        .OnDelete(DeleteBehavior.Cascade)
 27572                        .IsRequired();
 27573                });
 574
 27575            modelBuilder.Entity("Jellyfin.Data.Entities.HomeSection", b =>
 27576                {
 27577                    b.HasOne("Jellyfin.Data.Entities.DisplayPreferences", null)
 27578                        .WithMany("HomeSections")
 27579                        .HasForeignKey("DisplayPreferencesId")
 27580                        .OnDelete(DeleteBehavior.Cascade)
 27581                        .IsRequired();
 27582                });
 583
 27584            modelBuilder.Entity("Jellyfin.Data.Entities.ImageInfo", b =>
 27585                {
 27586                    b.HasOne("Jellyfin.Data.Entities.User", null)
 27587                        .WithOne("ProfileImage")
 27588                        .HasForeignKey("Jellyfin.Data.Entities.ImageInfo", "UserId")
 27589                        .OnDelete(DeleteBehavior.Cascade);
 27590                });
 591
 27592            modelBuilder.Entity("Jellyfin.Data.Entities.ItemDisplayPreferences", b =>
 27593                {
 27594                    b.HasOne("Jellyfin.Data.Entities.User", null)
 27595                        .WithMany("ItemDisplayPreferences")
 27596                        .HasForeignKey("UserId")
 27597                        .OnDelete(DeleteBehavior.Cascade)
 27598                        .IsRequired();
 27599                });
 600
 27601            modelBuilder.Entity("Jellyfin.Data.Entities.Permission", b =>
 27602                {
 27603                    b.HasOne("Jellyfin.Data.Entities.User", null)
 27604                        .WithMany("Permissions")
 27605                        .HasForeignKey("UserId")
 27606                        .OnDelete(DeleteBehavior.Cascade);
 27607                });
 608
 27609            modelBuilder.Entity("Jellyfin.Data.Entities.Preference", b =>
 27610                {
 27611                    b.HasOne("Jellyfin.Data.Entities.User", null)
 27612                        .WithMany("Preferences")
 27613                        .HasForeignKey("UserId")
 27614                        .OnDelete(DeleteBehavior.Cascade);
 27615                });
 616
 27617            modelBuilder.Entity("Jellyfin.Data.Entities.Security.Device", b =>
 27618                {
 27619                    b.HasOne("Jellyfin.Data.Entities.User", "User")
 27620                        .WithMany()
 27621                        .HasForeignKey("UserId")
 27622                        .OnDelete(DeleteBehavior.Cascade)
 27623                        .IsRequired();
 27624
 27625                    b.Navigation("User");
 27626                });
 627
 27628            modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
 27629                {
 27630                    b.Navigation("HomeSections");
 27631                });
 632
 27633            modelBuilder.Entity("Jellyfin.Data.Entities.User", b =>
 27634                {
 27635                    b.Navigation("AccessSchedules");
 27636
 27637                    b.Navigation("DisplayPreferences");
 27638
 27639                    b.Navigation("ItemDisplayPreferences");
 27640
 27641                    b.Navigation("Permissions");
 27642
 27643                    b.Navigation("Preferences");
 27644
 27645                    b.Navigation("ProfileImage");
 27646                });
 647#pragma warning restore 612, 618
 27648        }
 649    }
 650}