#pragma warning disable CS1591
// 
using System;
using Jellyfin.Server.Implementations;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace Jellyfin.Server.Implementations.Migrations
{
    [DbContext(typeof(JellyfinDb))]
    [Migration("20201204223655_AddCustomDisplayPreferences")]
    partial class AddCustomDisplayPreferences
    {
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasDefaultSchema("jellyfin")
                .HasAnnotation("ProductVersion", "5.0.0");
            modelBuilder.Entity("Jellyfin.Data.Entities.AccessSchedule", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("DayOfWeek")
                        .HasColumnType("INTEGER");
                    b.Property("EndHour")
                        .HasColumnType("REAL");
                    b.Property("StartHour")
                        .HasColumnType("REAL");
                    b.Property("UserId")
                        .HasColumnType("TEXT");
                    b.HasKey("Id");
                    b.HasIndex("UserId");
                    b.ToTable("AccessSchedules");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.ActivityLog", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("DateCreated")
                        .HasColumnType("TEXT");
                    b.Property("ItemId")
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");
                    b.Property("LogSeverity")
                        .HasColumnType("INTEGER");
                    b.Property("Name")
                        .IsRequired()
                        .HasMaxLength(512)
                        .HasColumnType("TEXT");
                    b.Property("Overview")
                        .HasMaxLength(512)
                        .HasColumnType("TEXT");
                    b.Property("RowVersion")
                        .IsConcurrencyToken()
                        .HasColumnType("INTEGER");
                    b.Property("ShortOverview")
                        .HasMaxLength(512)
                        .HasColumnType("TEXT");
                    b.Property("Type")
                        .IsRequired()
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");
                    b.Property("UserId")
                        .HasColumnType("TEXT");
                    b.HasKey("Id");
                    b.ToTable("ActivityLogs");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.CustomItemDisplayPreferences", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("Client")
                        .IsRequired()
                        .HasMaxLength(32)
                        .HasColumnType("TEXT");
                    b.Property("ItemId")
                        .HasColumnType("TEXT");
                    b.Property("Key")
                        .IsRequired()
                        .HasColumnType("TEXT");
                    b.Property("UserId")
                        .HasColumnType("TEXT");
                    b.Property("Value")
                        .IsRequired()
                        .HasColumnType("TEXT");
                    b.HasKey("Id");
                    b.HasIndex("UserId");
                    b.HasIndex("UserId", "ItemId", "Client", "Key")
                        .IsUnique();
                    b.ToTable("CustomItemDisplayPreferences");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("ChromecastVersion")
                        .HasColumnType("INTEGER");
                    b.Property("Client")
                        .IsRequired()
                        .HasMaxLength(32)
                        .HasColumnType("TEXT");
                    b.Property("DashboardTheme")
                        .HasMaxLength(32)
                        .HasColumnType("TEXT");
                    b.Property("EnableNextVideoInfoOverlay")
                        .HasColumnType("INTEGER");
                    b.Property("IndexBy")
                        .HasColumnType("INTEGER");
                    b.Property("ItemId")
                        .HasColumnType("TEXT");
                    b.Property("ScrollDirection")
                        .HasColumnType("INTEGER");
                    b.Property("ShowBackdrop")
                        .HasColumnType("INTEGER");
                    b.Property("ShowSidebar")
                        .HasColumnType("INTEGER");
                    b.Property("SkipBackwardLength")
                        .HasColumnType("INTEGER");
                    b.Property("SkipForwardLength")
                        .HasColumnType("INTEGER");
                    b.Property("TvHome")
                        .HasMaxLength(32)
                        .HasColumnType("TEXT");
                    b.Property("UserId")
                        .HasColumnType("TEXT");
                    b.HasKey("Id");
                    b.HasIndex("UserId");
                    b.HasIndex("UserId", "ItemId", "Client")
                        .IsUnique();
                    b.ToTable("DisplayPreferences");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.HomeSection", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("DisplayPreferencesId")
                        .HasColumnType("INTEGER");
                    b.Property("Order")
                        .HasColumnType("INTEGER");
                    b.Property("Type")
                        .HasColumnType("INTEGER");
                    b.HasKey("Id");
                    b.HasIndex("DisplayPreferencesId");
                    b.ToTable("HomeSection");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.ImageInfo", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("LastModified")
                        .HasColumnType("TEXT");
                    b.Property("Path")
                        .IsRequired()
                        .HasMaxLength(512)
                        .HasColumnType("TEXT");
                    b.Property("UserId")
                        .HasColumnType("TEXT");
                    b.HasKey("Id");
                    b.HasIndex("UserId")
                        .IsUnique();
                    b.ToTable("ImageInfos");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.ItemDisplayPreferences", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("Client")
                        .IsRequired()
                        .HasMaxLength(32)
                        .HasColumnType("TEXT");
                    b.Property("IndexBy")
                        .HasColumnType("INTEGER");
                    b.Property("ItemId")
                        .HasColumnType("TEXT");
                    b.Property("RememberIndexing")
                        .HasColumnType("INTEGER");
                    b.Property("RememberSorting")
                        .HasColumnType("INTEGER");
                    b.Property("SortBy")
                        .IsRequired()
                        .HasMaxLength(64)
                        .HasColumnType("TEXT");
                    b.Property("SortOrder")
                        .HasColumnType("INTEGER");
                    b.Property("UserId")
                        .HasColumnType("TEXT");
                    b.Property("ViewType")
                        .HasColumnType("INTEGER");
                    b.HasKey("Id");
                    b.HasIndex("UserId");
                    b.ToTable("ItemDisplayPreferences");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.Permission", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("Kind")
                        .HasColumnType("INTEGER");
                    b.Property("Permission_Permissions_Guid")
                        .HasColumnType("TEXT");
                    b.Property("RowVersion")
                        .IsConcurrencyToken()
                        .HasColumnType("INTEGER");
                    b.Property("Value")
                        .HasColumnType("INTEGER");
                    b.HasKey("Id");
                    b.HasIndex("Permission_Permissions_Guid");
                    b.ToTable("Permissions");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.Preference", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("Kind")
                        .HasColumnType("INTEGER");
                    b.Property("Preference_Preferences_Guid")
                        .HasColumnType("TEXT");
                    b.Property("RowVersion")
                        .IsConcurrencyToken()
                        .HasColumnType("INTEGER");
                    b.Property("Value")
                        .IsRequired()
                        .HasMaxLength(65535)
                        .HasColumnType("TEXT");
                    b.HasKey("Id");
                    b.HasIndex("Preference_Preferences_Guid");
                    b.ToTable("Preferences");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.User", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT");
                    b.Property("AudioLanguagePreference")
                        .HasMaxLength(255)
                        .HasColumnType("TEXT");
                    b.Property("AuthenticationProviderId")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("TEXT");
                    b.Property("DisplayCollectionsView")
                        .HasColumnType("INTEGER");
                    b.Property("DisplayMissingEpisodes")
                        .HasColumnType("INTEGER");
                    b.Property("EasyPassword")
                        .HasMaxLength(65535)
                        .HasColumnType("TEXT");
                    b.Property("EnableAutoLogin")
                        .HasColumnType("INTEGER");
                    b.Property("EnableLocalPassword")
                        .HasColumnType("INTEGER");
                    b.Property("EnableNextEpisodeAutoPlay")
                        .HasColumnType("INTEGER");
                    b.Property("EnableUserPreferenceAccess")
                        .HasColumnType("INTEGER");
                    b.Property("HidePlayedInLatest")
                        .HasColumnType("INTEGER");
                    b.Property("InternalId")
                        .HasColumnType("INTEGER");
                    b.Property("InvalidLoginAttemptCount")
                        .HasColumnType("INTEGER");
                    b.Property("LastActivityDate")
                        .HasColumnType("TEXT");
                    b.Property("LastLoginDate")
                        .HasColumnType("TEXT");
                    b.Property("LoginAttemptsBeforeLockout")
                        .HasColumnType("INTEGER");
                    b.Property("MaxActiveSessions")
                        .HasColumnType("INTEGER");
                    b.Property("MaxParentalAgeRating")
                        .HasColumnType("INTEGER");
                    b.Property("MustUpdatePassword")
                        .HasColumnType("INTEGER");
                    b.Property("Password")
                        .HasMaxLength(65535)
                        .HasColumnType("TEXT");
                    b.Property("PasswordResetProviderId")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("TEXT");
                    b.Property("PlayDefaultAudioTrack")
                        .HasColumnType("INTEGER");
                    b.Property("RememberAudioSelections")
                        .HasColumnType("INTEGER");
                    b.Property("RememberSubtitleSelections")
                        .HasColumnType("INTEGER");
                    b.Property("RemoteClientBitrateLimit")
                        .HasColumnType("INTEGER");
                    b.Property("RowVersion")
                        .IsConcurrencyToken()
                        .HasColumnType("INTEGER");
                    b.Property("SubtitleLanguagePreference")
                        .HasMaxLength(255)
                        .HasColumnType("TEXT");
                    b.Property("SubtitleMode")
                        .HasColumnType("INTEGER");
                    b.Property("SyncPlayAccess")
                        .HasColumnType("INTEGER");
                    b.Property("Username")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("TEXT");
                    b.HasKey("Id");
                    b.ToTable("Users");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.AccessSchedule", b =>
                {
                    b.HasOne("Jellyfin.Data.Entities.User", null)
                        .WithMany("AccessSchedules")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
                {
                    b.HasOne("Jellyfin.Data.Entities.User", null)
                        .WithOne("DisplayPreferences")
                        .HasForeignKey("Jellyfin.Data.Entities.DisplayPreferences", "UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.HomeSection", b =>
                {
                    b.HasOne("Jellyfin.Data.Entities.DisplayPreferences", null)
                        .WithMany("HomeSections")
                        .HasForeignKey("DisplayPreferencesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.ImageInfo", b =>
                {
                    b.HasOne("Jellyfin.Data.Entities.User", null)
                        .WithOne("ProfileImage")
                        .HasForeignKey("Jellyfin.Data.Entities.ImageInfo", "UserId");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.ItemDisplayPreferences", b =>
                {
                    b.HasOne("Jellyfin.Data.Entities.User", null)
                        .WithMany("ItemDisplayPreferences")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.Permission", b =>
                {
                    b.HasOne("Jellyfin.Data.Entities.User", null)
                        .WithMany("Permissions")
                        .HasForeignKey("Permission_Permissions_Guid");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.Preference", b =>
                {
                    b.HasOne("Jellyfin.Data.Entities.User", null)
                        .WithMany("Preferences")
                        .HasForeignKey("Preference_Preferences_Guid");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.DisplayPreferences", b =>
                {
                    b.Navigation("HomeSections");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.User", b =>
                {
                    b.Navigation("AccessSchedules");
                    b.Navigation("DisplayPreferences")
                        .IsRequired();
                    b.Navigation("ItemDisplayPreferences");
                    b.Navigation("Permissions");
                    b.Navigation("Preferences");
                    b.Navigation("ProfileImage");
                });
#pragma warning restore 612, 618
        }
    }
}