#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("20200613202153_AddUsers")]
    partial class AddUsers
    {
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasDefaultSchema("jellyfin")
                .HasAnnotation("ProductVersion", "3.1.4");
            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")
                        .HasColumnType("TEXT")
                        .HasMaxLength(256);
                    b.Property("LogSeverity")
                        .HasColumnType("INTEGER");
                    b.Property("Name")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .HasMaxLength(512);
                    b.Property("Overview")
                        .HasColumnType("TEXT")
                        .HasMaxLength(512);
                    b.Property("RowVersion")
                        .IsConcurrencyToken()
                        .HasColumnType("INTEGER");
                    b.Property("ShortOverview")
                        .HasColumnType("TEXT")
                        .HasMaxLength(512);
                    b.Property("Type")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .HasMaxLength(256);
                    b.Property("UserId")
                        .HasColumnType("TEXT");
                    b.HasKey("Id");
                    b.ToTable("ActivityLogs");
                });
            modelBuilder.Entity("Jellyfin.Data.Entities.ImageInfo", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");
                    b.Property("LastModified")
                        .HasColumnType("TEXT");
                    b.Property("Path")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .HasMaxLength(512);
                    b.Property("UserId")
                        .HasColumnType("TEXT");
                    b.HasKey("Id");
                    b.HasIndex("UserId")
                        .IsUnique();
                    b.ToTable("ImageInfos");
                });
            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()
                        .HasColumnType("TEXT")
                        .HasMaxLength(65535);
                    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")
                        .HasColumnType("TEXT")
                        .HasMaxLength(255);
                    b.Property("AuthenticationProviderId")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .HasMaxLength(255);
                    b.Property("DisplayCollectionsView")
                        .HasColumnType("INTEGER");
                    b.Property("DisplayMissingEpisodes")
                        .HasColumnType("INTEGER");
                    b.Property("EasyPassword")
                        .HasColumnType("TEXT")
                        .HasMaxLength(65535);
                    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("MaxParentalAgeRating")
                        .HasColumnType("INTEGER");
                    b.Property("MustUpdatePassword")
                        .HasColumnType("INTEGER");
                    b.Property("Password")
                        .HasColumnType("TEXT")
                        .HasMaxLength(65535);
                    b.Property("PasswordResetProviderId")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .HasMaxLength(255);
                    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")
                        .HasColumnType("TEXT")
                        .HasMaxLength(255);
                    b.Property("SubtitleMode")
                        .HasColumnType("INTEGER");
                    b.Property("SyncPlayAccess")
                        .HasColumnType("INTEGER");
                    b.Property("Username")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .HasMaxLength(255);
                    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.ImageInfo", b =>
                {
                    b.HasOne("Jellyfin.Data.Entities.User", null)
                        .WithOne("ProfileImage")
                        .HasForeignKey("Jellyfin.Data.Entities.ImageInfo", "UserId");
                });
            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");
                });
#pragma warning restore 612, 618
        }
    }
}