// <auto-generated />
using System;
using Kavita.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

#nullable disable

namespace Kavita.Database.Migrations
{
    [DbContext(typeof(DataContext))]
    [Migration("20230527215722_LicenseAndScrobble")]
    partial class LicenseAndScrobble
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder.HasAnnotation("ProductVersion", "7.0.5");

            modelBuilder.Entity("API.Entities.AppRole", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("ConcurrencyStamp")
                        .IsConcurrencyToken()
                        .HasColumnType("TEXT");

                    b.Property<string>("Name")
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");

                    b.Property<string>("NormalizedName")
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("NormalizedName")
                        .IsUnique()
                        .HasDatabaseName("RoleNameIndex");

                    b.ToTable("AspNetRoles", (string)null);
                });

            modelBuilder.Entity("API.Entities.AppUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AccessFailedCount")
                        .HasColumnType("INTEGER");

                    b.Property<int>("AgeRestriction")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AgeRestrictionIncludeUnknowns")
                        .HasColumnType("INTEGER");

                    b.Property<string>("AniListAccessToken")
                        .HasColumnType("TEXT");

                    b.Property<string>("ApiKey")
                        .HasColumnType("TEXT");

                    b.Property<string>("ConcurrencyStamp")
                        .IsConcurrencyToken()
                        .HasColumnType("TEXT");

                    b.Property<string>("ConfirmationToken")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("Email")
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");

                    b.Property<bool>("EmailConfirmed")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastActive")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastActiveUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("License")
                        .HasColumnType("TEXT");

                    b.Property<bool>("LockoutEnabled")
                        .HasColumnType("INTEGER");

                    b.Property<DateTimeOffset?>("LockoutEnd")
                        .HasColumnType("TEXT");

                    b.Property<string>("NormalizedEmail")
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");

                    b.Property<string>("NormalizedUserName")
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");

                    b.Property<string>("PasswordHash")
                        .HasColumnType("TEXT");

                    b.Property<string>("PhoneNumber")
                        .HasColumnType("TEXT");

                    b.Property<bool>("PhoneNumberConfirmed")
                        .HasColumnType("INTEGER");

                    b.Property<uint>("RowVersion")
                        .IsConcurrencyToken()
                        .HasColumnType("INTEGER");

                    b.Property<string>("SecurityStamp")
                        .HasColumnType("TEXT");

                    b.Property<bool>("TwoFactorEnabled")
                        .HasColumnType("INTEGER");

                    b.Property<string>("UserName")
                        .HasMaxLength(256)
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("NormalizedEmail")
                        .HasDatabaseName("EmailIndex");

                    b.HasIndex("NormalizedUserName")
                        .IsUnique()
                        .HasDatabaseName("UserNameIndex");

                    b.ToTable("AspNetUsers", (string)null);
                });

            modelBuilder.Entity("API.Entities.AppUserBookmark", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AppUserId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ChapterId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("FileName")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<int>("Page")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("VolumeId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AppUserId");

                    b.ToTable("AppUserBookmark");
                });

            modelBuilder.Entity("API.Entities.AppUserPreferences", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AppUserId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AutoCloseMenu")
                        .HasColumnType("INTEGER");

                    b.Property<string>("BackgroundColor")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT")
                        .HasDefaultValue("#000000");

                    b.Property<bool>("BlurUnreadSummaries")
                        .HasColumnType("INTEGER");

                    b.Property<string>("BookReaderFontFamily")
                        .HasColumnType("TEXT");

                    b.Property<int>("BookReaderFontSize")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("BookReaderImmersiveMode")
                        .HasColumnType("INTEGER");

                    b.Property<int>("BookReaderLayoutMode")
                        .HasColumnType("INTEGER");

                    b.Property<int>("BookReaderLineSpacing")
                        .HasColumnType("INTEGER");

                    b.Property<int>("BookReaderMargin")
                        .HasColumnType("INTEGER");

                    b.Property<int>("BookReaderReadingDirection")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("BookReaderTapToPaginate")
                        .HasColumnType("INTEGER");

                    b.Property<int>("BookReaderWritingStyle")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(0);

                    b.Property<string>("BookThemeName")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT")
                        .HasDefaultValue("Dark");

                    b.Property<bool>("CollapseSeriesRelationships")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("EmulateBook")
                        .HasColumnType("INTEGER");

                    b.Property<int>("GlobalPageLayoutMode")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(0);

                    b.Property<int>("LayoutMode")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("NoTransitions")
                        .HasColumnType("INTEGER");

                    b.Property<int>("PageSplitOption")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("PromptForDownloadSize")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ReaderMode")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ReadingDirection")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ScalingOption")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ShowScreenHints")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SwipeToPaginate")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ThemeId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AppUserId")
                        .IsUnique();

                    b.HasIndex("ThemeId");

                    b.ToTable("AppUserPreferences");
                });

            modelBuilder.Entity("API.Entities.AppUserProgress", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AppUserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("BookScrollId")
                        .HasColumnType("TEXT");

                    b.Property<int>("ChapterId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<int>("LibraryId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("PagesRead")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("VolumeId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AppUserId");

                    b.HasIndex("ChapterId");

                    b.HasIndex("SeriesId");

                    b.ToTable("AppUserProgresses");
                });

            modelBuilder.Entity("API.Entities.AppUserRating", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AppUserId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Rating")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Review")
                        .HasColumnType("TEXT");

                    b.Property<int>("SeriesId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AppUserId");

                    b.HasIndex("SeriesId");

                    b.ToTable("AppUserRating");
                });

            modelBuilder.Entity("API.Entities.AppUserRole", b =>
                {
                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("RoleId")
                        .HasColumnType("INTEGER");

                    b.HasKey("UserId", "RoleId");

                    b.HasIndex("RoleId");

                    b.ToTable("AspNetUserRoles", (string)null);
                });

            modelBuilder.Entity("API.Entities.Chapter", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AgeRating")
                        .HasColumnType("INTEGER");

                    b.Property<int>("AlternateCount")
                        .HasColumnType("INTEGER");

                    b.Property<string>("AlternateNumber")
                        .HasColumnType("TEXT");

                    b.Property<string>("AlternateSeries")
                        .HasColumnType("TEXT");

                    b.Property<int>("AvgHoursToRead")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Count")
                        .HasColumnType("INTEGER");

                    b.Property<string>("CoverImage")
                        .HasColumnType("TEXT");

                    b.Property<bool>("CoverImageLocked")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("ISBN")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT")
                        .HasDefaultValue("");

                    b.Property<bool>("IsSpecial")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Language")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<int>("MaxHoursToRead")
                        .HasColumnType("INTEGER");

                    b.Property<int>("MinHoursToRead")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Number")
                        .HasColumnType("TEXT");

                    b.Property<int>("Pages")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Range")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("ReleaseDate")
                        .HasColumnType("TEXT");

                    b.Property<string>("SeriesGroup")
                        .HasColumnType("TEXT");

                    b.Property<string>("StoryArc")
                        .HasColumnType("TEXT");

                    b.Property<string>("StoryArcNumber")
                        .HasColumnType("TEXT");

                    b.Property<string>("Summary")
                        .HasColumnType("TEXT");

                    b.Property<string>("Title")
                        .HasColumnType("TEXT");

                    b.Property<string>("TitleName")
                        .HasColumnType("TEXT");

                    b.Property<int>("TotalCount")
                        .HasColumnType("INTEGER");

                    b.Property<int>("VolumeId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("WebLinks")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT")
                        .HasDefaultValue("");

                    b.Property<long>("WordCount")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("VolumeId");

                    b.ToTable("Chapter");
                });

            modelBuilder.Entity("API.Entities.CollectionTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CoverImage")
                        .HasColumnType("TEXT");

                    b.Property<bool>("CoverImageLocked")
                        .HasColumnType("INTEGER");

                    b.Property<string>("NormalizedTitle")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Promoted")
                        .HasColumnType("INTEGER");

                    b.Property<uint>("RowVersion")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Summary")
                        .HasColumnType("TEXT");

                    b.Property<string>("Title")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("Id", "Promoted")
                        .IsUnique();

                    b.ToTable("CollectionTag");
                });

            modelBuilder.Entity("API.Entities.Device", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AppUserId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("EmailAddress")
                        .HasColumnType("TEXT");

                    b.Property<string>("IpAddress")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastUsed")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastUsedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<int>("Platform")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AppUserId");

                    b.ToTable("Device");
                });

            modelBuilder.Entity("API.Entities.FolderPath", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastScanned")
                        .HasColumnType("TEXT");

                    b.Property<int>("LibraryId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Path")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("LibraryId");

                    b.ToTable("FolderPath");
                });

            modelBuilder.Entity("API.Entities.Genre", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("NormalizedTitle")
                        .HasColumnType("TEXT");

                    b.Property<string>("Title")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("NormalizedTitle")
                        .IsUnique();

                    b.ToTable("Genre");
                });

            modelBuilder.Entity("API.Entities.Library", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AllowScrobbling")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(true);

                    b.Property<string>("CoverImage")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<bool>("FolderWatching")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(true);

                    b.Property<bool>("IncludeInDashboard")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(true);

                    b.Property<bool>("IncludeInRecommended")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(true);

                    b.Property<bool>("IncludeInSearch")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(true);

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastScanned")
                        .HasColumnType("TEXT");

                    b.Property<bool>("ManageCollections")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(true);

                    b.Property<bool>("ManageReadingLists")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(true);

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<int>("Type")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("Library");
                });

            modelBuilder.Entity("API.Entities.MangaFile", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<long>("Bytes")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ChapterId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("Extension")
                        .HasColumnType("TEXT");

                    b.Property<string>("FilePath")
                        .HasColumnType("TEXT");

                    b.Property<int>("Format")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastFileAnalysis")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastFileAnalysisUtc")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<int>("Pages")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ChapterId");

                    b.ToTable("MangaFile");
                });

            modelBuilder.Entity("API.Entities.MediaError", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Comment")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("Details")
                        .HasColumnType("TEXT");

                    b.Property<string>("Extension")
                        .HasColumnType("TEXT");

                    b.Property<string>("FilePath")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("MediaError");
                });

            modelBuilder.Entity("API.Entities.Metadata.SeriesMetadata", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AgeRating")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AgeRatingLocked")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CharacterLocked")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ColoristLocked")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CoverArtistLocked")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("EditorLocked")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("GenresLocked")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("InkerLocked")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Language")
                        .HasColumnType("TEXT");

                    b.Property<bool>("LanguageLocked")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("LettererLocked")
                        .HasColumnType("INTEGER");

                    b.Property<int>("MaxCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("PencillerLocked")
                        .HasColumnType("INTEGER");

                    b.Property<int>("PublicationStatus")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("PublicationStatusLocked")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("PublisherLocked")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ReleaseYear")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ReleaseYearLocked")
                        .HasColumnType("INTEGER");

                    b.Property<uint>("RowVersion")
                        .IsConcurrencyToken()
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Summary")
                        .HasColumnType("TEXT");

                    b.Property<bool>("SummaryLocked")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("TagsLocked")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TotalCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("TranslatorLocked")
                        .HasColumnType("INTEGER");

                    b.Property<string>("WebLinks")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT")
                        .HasDefaultValue("");

                    b.Property<bool>("WriterLocked")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("SeriesId")
                        .IsUnique();

                    b.HasIndex("Id", "SeriesId")
                        .IsUnique();

                    b.ToTable("SeriesMetadata");
                });

            modelBuilder.Entity("API.Entities.Metadata.SeriesRelation", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("RelationKind")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TargetSeriesId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("SeriesId");

                    b.HasIndex("TargetSeriesId");

                    b.ToTable("SeriesRelation");
                });

            modelBuilder.Entity("API.Entities.Person", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<string>("NormalizedName")
                        .HasColumnType("TEXT");

                    b.Property<int>("Role")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("Person");
                });

            modelBuilder.Entity("API.Entities.ReadingList", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AgeRating")
                        .HasColumnType("INTEGER");

                    b.Property<int>("AppUserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("CoverImage")
                        .HasColumnType("TEXT");

                    b.Property<bool>("CoverImageLocked")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<int>("EndingMonth")
                        .HasColumnType("INTEGER");

                    b.Property<int>("EndingYear")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("NormalizedTitle")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Promoted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("StartingMonth")
                        .HasColumnType("INTEGER");

                    b.Property<int>("StartingYear")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Summary")
                        .HasColumnType("TEXT");

                    b.Property<string>("Title")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("AppUserId");

                    b.ToTable("ReadingList");
                });

            modelBuilder.Entity("API.Entities.ReadingListItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("ChapterId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Order")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ReadingListId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("VolumeId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ChapterId");

                    b.HasIndex("ReadingListId");

                    b.HasIndex("SeriesId");

                    b.HasIndex("VolumeId");

                    b.ToTable("ReadingListItem");
                });

            modelBuilder.Entity("API.Entities.ScrobbleEvent", b =>
                {
                    b.Property<long>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("AniListId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("AppUserId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ChapterNumber")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<int>("Format")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<int>("LibraryId")
                        .HasColumnType("INTEGER");

                    b.Property<float?>("Rating")
                        .HasColumnType("REAL");

                    b.Property<int>("ScrobbleEventType")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("VolumeNumber")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AppUserId");

                    b.HasIndex("LibraryId");

                    b.HasIndex("SeriesId");

                    b.ToTable("ScrobbleEvent");
                });

            modelBuilder.Entity("API.Entities.Series", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("AppUserId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("AvgHoursToRead")
                        .HasColumnType("INTEGER");

                    b.Property<string>("CoverImage")
                        .HasColumnType("TEXT");

                    b.Property<bool>("CoverImageLocked")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("FolderPath")
                        .HasColumnType("TEXT");

                    b.Property<int>("Format")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastChapterAdded")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastChapterAddedUtc")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastFolderScanned")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastFolderScannedUtc")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<int>("LibraryId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("LocalizedName")
                        .HasColumnType("TEXT");

                    b.Property<bool>("LocalizedNameLocked")
                        .HasColumnType("INTEGER");

                    b.Property<int>("MaxHoursToRead")
                        .HasColumnType("INTEGER");

                    b.Property<int>("MinHoursToRead")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<bool>("NameLocked")
                        .HasColumnType("INTEGER");

                    b.Property<string>("NormalizedLocalizedName")
                        .HasColumnType("TEXT");

                    b.Property<string>("NormalizedName")
                        .HasColumnType("TEXT");

                    b.Property<string>("OriginalName")
                        .HasColumnType("TEXT");

                    b.Property<int>("Pages")
                        .HasColumnType("INTEGER");

                    b.Property<string>("SortName")
                        .HasColumnType("TEXT");

                    b.Property<bool>("SortNameLocked")
                        .HasColumnType("INTEGER");

                    b.Property<long>("WordCount")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AppUserId");

                    b.HasIndex("LibraryId");

                    b.ToTable("Series");
                });

            modelBuilder.Entity("API.Entities.ServerSetting", b =>
                {
                    b.Property<int>("Key")
                        .HasColumnType("INTEGER");

                    b.Property<uint>("RowVersion")
                        .IsConcurrencyToken()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Value")
                        .HasColumnType("TEXT");

                    b.HasKey("Key");

                    b.ToTable("ServerSetting");
                });

            modelBuilder.Entity("API.Entities.ServerStatistics", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<long>("ChapterCount")
                        .HasColumnType("INTEGER");

                    b.Property<long>("FileCount")
                        .HasColumnType("INTEGER");

                    b.Property<long>("GenreCount")
                        .HasColumnType("INTEGER");

                    b.Property<long>("PersonCount")
                        .HasColumnType("INTEGER");

                    b.Property<long>("SeriesCount")
                        .HasColumnType("INTEGER");

                    b.Property<long>("TagCount")
                        .HasColumnType("INTEGER");

                    b.Property<long>("UserCount")
                        .HasColumnType("INTEGER");

                    b.Property<long>("VolumeCount")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Year")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("ServerStatistics");
                });

            modelBuilder.Entity("API.Entities.SiteTheme", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("FileName")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsDefault")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<string>("NormalizedName")
                        .HasColumnType("TEXT");

                    b.Property<int>("Provider")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("SiteTheme");
                });

            modelBuilder.Entity("API.Entities.SyncHistory", b =>
                {
                    b.Property<int>("Key")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Value")
                        .HasColumnType("TEXT");

                    b.HasKey("Key");

                    b.ToTable("SyncHistory");
                });

            modelBuilder.Entity("API.Entities.Tag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("NormalizedTitle")
                        .HasColumnType("TEXT");

                    b.Property<string>("Title")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("NormalizedTitle")
                        .IsUnique();

                    b.ToTable("Tag");
                });

            modelBuilder.Entity("API.Entities.Volume", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AvgHoursToRead")
                        .HasColumnType("INTEGER");

                    b.Property<string>("CoverImage")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("CreatedUtc")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModified")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastModifiedUtc")
                        .HasColumnType("TEXT");

                    b.Property<int>("MaxHoursToRead")
                        .HasColumnType("INTEGER");

                    b.Property<int>("MinHoursToRead")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<int>("Number")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Pages")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesId")
                        .HasColumnType("INTEGER");

                    b.Property<long>("WordCount")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("SeriesId");

                    b.ToTable("Volume");
                });

            modelBuilder.Entity("AppUserLibrary", b =>
                {
                    b.Property<int>("AppUsersId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("LibrariesId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AppUsersId", "LibrariesId");

                    b.HasIndex("LibrariesId");

                    b.ToTable("AppUserLibrary");
                });

            modelBuilder.Entity("ChapterGenre", b =>
                {
                    b.Property<int>("ChaptersId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("GenresId")
                        .HasColumnType("INTEGER");

                    b.HasKey("ChaptersId", "GenresId");

                    b.HasIndex("GenresId");

                    b.ToTable("ChapterGenre");
                });

            modelBuilder.Entity("ChapterPerson", b =>
                {
                    b.Property<int>("ChapterMetadatasId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("PeopleId")
                        .HasColumnType("INTEGER");

                    b.HasKey("ChapterMetadatasId", "PeopleId");

                    b.HasIndex("PeopleId");

                    b.ToTable("ChapterPerson");
                });

            modelBuilder.Entity("ChapterTag", b =>
                {
                    b.Property<int>("ChaptersId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("ChaptersId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("ChapterTag");
                });

            modelBuilder.Entity("CollectionTagSeriesMetadata", b =>
                {
                    b.Property<int>("CollectionTagsId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesMetadatasId")
                        .HasColumnType("INTEGER");

                    b.HasKey("CollectionTagsId", "SeriesMetadatasId");

                    b.HasIndex("SeriesMetadatasId");

                    b.ToTable("CollectionTagSeriesMetadata");
                });

            modelBuilder.Entity("GenreSeriesMetadata", b =>
                {
                    b.Property<int>("GenresId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesMetadatasId")
                        .HasColumnType("INTEGER");

                    b.HasKey("GenresId", "SeriesMetadatasId");

                    b.HasIndex("SeriesMetadatasId");

                    b.ToTable("GenreSeriesMetadata");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("ClaimType")
                        .HasColumnType("TEXT");

                    b.Property<string>("ClaimValue")
                        .HasColumnType("TEXT");

                    b.Property<int>("RoleId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("RoleId");

                    b.ToTable("AspNetRoleClaims", (string)null);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("ClaimType")
                        .HasColumnType("TEXT");

                    b.Property<string>("ClaimValue")
                        .HasColumnType("TEXT");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("AspNetUserClaims", (string)null);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b =>
                {
                    b.Property<string>("LoginProvider")
                        .HasColumnType("TEXT");

                    b.Property<string>("ProviderKey")
                        .HasColumnType("TEXT");

                    b.Property<string>("ProviderDisplayName")
                        .HasColumnType("TEXT");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("LoginProvider", "ProviderKey");

                    b.HasIndex("UserId");

                    b.ToTable("AspNetUserLogins", (string)null);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b =>
                {
                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("LoginProvider")
                        .HasColumnType("TEXT");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<string>("Value")
                        .HasColumnType("TEXT");

                    b.HasKey("UserId", "LoginProvider", "Name");

                    b.ToTable("AspNetUserTokens", (string)null);
                });

            modelBuilder.Entity("PersonSeriesMetadata", b =>
                {
                    b.Property<int>("PeopleId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SeriesMetadatasId")
                        .HasColumnType("INTEGER");

                    b.HasKey("PeopleId", "SeriesMetadatasId");

                    b.HasIndex("SeriesMetadatasId");

                    b.ToTable("PersonSeriesMetadata");
                });

            modelBuilder.Entity("SeriesMetadataTag", b =>
                {
                    b.Property<int>("SeriesMetadatasId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("SeriesMetadatasId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("SeriesMetadataTag");
                });

            modelBuilder.Entity("API.Entities.AppUserBookmark", b =>
                {
                    b.HasOne("API.Entities.AppUser", "AppUser")
                        .WithMany("Bookmarks")
                        .HasForeignKey("AppUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("AppUser");
                });

            modelBuilder.Entity("API.Entities.AppUserPreferences", b =>
                {
                    b.HasOne("API.Entities.AppUser", "AppUser")
                        .WithOne("UserPreferences")
                        .HasForeignKey("API.Entities.AppUserPreferences", "AppUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.SiteTheme", "Theme")
                        .WithMany()
                        .HasForeignKey("ThemeId");

                    b.Navigation("AppUser");

                    b.Navigation("Theme");
                });

            modelBuilder.Entity("API.Entities.AppUserProgress", b =>
                {
                    b.HasOne("API.Entities.AppUser", "AppUser")
                        .WithMany("Progresses")
                        .HasForeignKey("AppUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Chapter", null)
                        .WithMany("UserProgress")
                        .HasForeignKey("ChapterId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Series", null)
                        .WithMany("Progress")
                        .HasForeignKey("SeriesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("AppUser");
                });

            modelBuilder.Entity("API.Entities.AppUserRating", b =>
                {
                    b.HasOne("API.Entities.AppUser", "AppUser")
                        .WithMany("Ratings")
                        .HasForeignKey("AppUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Series", "Series")
                        .WithMany("Ratings")
                        .HasForeignKey("SeriesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("AppUser");

                    b.Navigation("Series");
                });

            modelBuilder.Entity("API.Entities.AppUserRole", b =>
                {
                    b.HasOne("API.Entities.AppRole", "Role")
                        .WithMany("UserRoles")
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.AppUser", "User")
                        .WithMany("UserRoles")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Role");

                    b.Navigation("User");
                });

            modelBuilder.Entity("API.Entities.Chapter", b =>
                {
                    b.HasOne("API.Entities.Volume", "Volume")
                        .WithMany("Chapters")
                        .HasForeignKey("VolumeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Volume");
                });

            modelBuilder.Entity("API.Entities.Device", b =>
                {
                    b.HasOne("API.Entities.AppUser", "AppUser")
                        .WithMany("Devices")
                        .HasForeignKey("AppUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("AppUser");
                });

            modelBuilder.Entity("API.Entities.FolderPath", b =>
                {
                    b.HasOne("API.Entities.Library", "Library")
                        .WithMany("Folders")
                        .HasForeignKey("LibraryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Library");
                });

            modelBuilder.Entity("API.Entities.MangaFile", b =>
                {
                    b.HasOne("API.Entities.Chapter", "Chapter")
                        .WithMany("Files")
                        .HasForeignKey("ChapterId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Chapter");
                });

            modelBuilder.Entity("API.Entities.Metadata.SeriesMetadata", b =>
                {
                    b.HasOne("API.Entities.Series", "Series")
                        .WithOne("Metadata")
                        .HasForeignKey("API.Entities.Metadata.SeriesMetadata", "SeriesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Series");
                });

            modelBuilder.Entity("API.Entities.Metadata.SeriesRelation", b =>
                {
                    b.HasOne("API.Entities.Series", "Series")
                        .WithMany("Relations")
                        .HasForeignKey("SeriesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Series", "TargetSeries")
                        .WithMany("RelationOf")
                        .HasForeignKey("TargetSeriesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Series");

                    b.Navigation("TargetSeries");
                });

            modelBuilder.Entity("API.Entities.ReadingList", b =>
                {
                    b.HasOne("API.Entities.AppUser", "AppUser")
                        .WithMany("ReadingLists")
                        .HasForeignKey("AppUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("AppUser");
                });

            modelBuilder.Entity("API.Entities.ReadingListItem", b =>
                {
                    b.HasOne("API.Entities.Chapter", "Chapter")
                        .WithMany()
                        .HasForeignKey("ChapterId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.ReadingList", "ReadingList")
                        .WithMany("Items")
                        .HasForeignKey("ReadingListId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Series", "Series")
                        .WithMany()
                        .HasForeignKey("SeriesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Volume", "Volume")
                        .WithMany()
                        .HasForeignKey("VolumeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Chapter");

                    b.Navigation("ReadingList");

                    b.Navigation("Series");

                    b.Navigation("Volume");
                });

            modelBuilder.Entity("API.Entities.ScrobbleEvent", b =>
                {
                    b.HasOne("API.Entities.AppUser", "AppUser")
                        .WithMany()
                        .HasForeignKey("AppUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Library", "Library")
                        .WithMany()
                        .HasForeignKey("LibraryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Series", "Series")
                        .WithMany()
                        .HasForeignKey("SeriesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("AppUser");

                    b.Navigation("Library");

                    b.Navigation("Series");
                });

            modelBuilder.Entity("API.Entities.Series", b =>
                {
                    b.HasOne("API.Entities.AppUser", null)
                        .WithMany("WantToRead")
                        .HasForeignKey("AppUserId");

                    b.HasOne("API.Entities.Library", "Library")
                        .WithMany("Series")
                        .HasForeignKey("LibraryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Library");
                });

            modelBuilder.Entity("API.Entities.Volume", b =>
                {
                    b.HasOne("API.Entities.Series", "Series")
                        .WithMany("Volumes")
                        .HasForeignKey("SeriesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Series");
                });

            modelBuilder.Entity("AppUserLibrary", b =>
                {
                    b.HasOne("API.Entities.AppUser", null)
                        .WithMany()
                        .HasForeignKey("AppUsersId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Library", null)
                        .WithMany()
                        .HasForeignKey("LibrariesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("ChapterGenre", b =>
                {
                    b.HasOne("API.Entities.Chapter", null)
                        .WithMany()
                        .HasForeignKey("ChaptersId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Genre", null)
                        .WithMany()
                        .HasForeignKey("GenresId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("ChapterPerson", b =>
                {
                    b.HasOne("API.Entities.Chapter", null)
                        .WithMany()
                        .HasForeignKey("ChapterMetadatasId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Person", null)
                        .WithMany()
                        .HasForeignKey("PeopleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("ChapterTag", b =>
                {
                    b.HasOne("API.Entities.Chapter", null)
                        .WithMany()
                        .HasForeignKey("ChaptersId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Tag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("CollectionTagSeriesMetadata", b =>
                {
                    b.HasOne("API.Entities.CollectionTag", null)
                        .WithMany()
                        .HasForeignKey("CollectionTagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Metadata.SeriesMetadata", null)
                        .WithMany()
                        .HasForeignKey("SeriesMetadatasId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("GenreSeriesMetadata", b =>
                {
                    b.HasOne("API.Entities.Genre", null)
                        .WithMany()
                        .HasForeignKey("GenresId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Metadata.SeriesMetadata", null)
                        .WithMany()
                        .HasForeignKey("SeriesMetadatasId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<int>", b =>
                {
                    b.HasOne("API.Entities.AppRole", null)
                        .WithMany()
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<int>", b =>
                {
                    b.HasOne("API.Entities.AppUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<int>", b =>
                {
                    b.HasOne("API.Entities.AppUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<int>", b =>
                {
                    b.HasOne("API.Entities.AppUser", null)
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("PersonSeriesMetadata", b =>
                {
                    b.HasOne("API.Entities.Person", null)
                        .WithMany()
                        .HasForeignKey("PeopleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Metadata.SeriesMetadata", null)
                        .WithMany()
                        .HasForeignKey("SeriesMetadatasId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("SeriesMetadataTag", b =>
                {
                    b.HasOne("API.Entities.Metadata.SeriesMetadata", null)
                        .WithMany()
                        .HasForeignKey("SeriesMetadatasId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("API.Entities.Tag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("API.Entities.AppRole", b =>
                {
                    b.Navigation("UserRoles");
                });

            modelBuilder.Entity("API.Entities.AppUser", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Devices");

                    b.Navigation("Progresses");

                    b.Navigation("Ratings");

                    b.Navigation("ReadingLists");

                    b.Navigation("UserPreferences");

                    b.Navigation("UserRoles");

                    b.Navigation("WantToRead");
                });

            modelBuilder.Entity("API.Entities.Chapter", b =>
                {
                    b.Navigation("Files");

                    b.Navigation("UserProgress");
                });

            modelBuilder.Entity("API.Entities.Library", b =>
                {
                    b.Navigation("Folders");

                    b.Navigation("Series");
                });

            modelBuilder.Entity("API.Entities.ReadingList", b =>
                {
                    b.Navigation("Items");
                });

            modelBuilder.Entity("API.Entities.Series", b =>
                {
                    b.Navigation("Metadata");

                    b.Navigation("Progress");

                    b.Navigation("Ratings");

                    b.Navigation("RelationOf");

                    b.Navigation("Relations");

                    b.Navigation("Volumes");
                });

            modelBuilder.Entity("API.Entities.Volume", b =>
                {
                    b.Navigation("Chapters");
                });
#pragma warning restore 612, 618
        }
    }
}
