// using System; using API.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; #nullable disable namespace API.Data.Migrations { [DbContext(typeof(DataContext))] [Migration("20240418163829_ChapterSortOrderLock")] partial class ChapterSortOrderLock { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder.HasAnnotation("ProductVersion", "8.0.4"); modelBuilder.Entity("API.Entities.AppRole", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("TEXT"); b.Property("Name") .HasMaxLength(256) .HasColumnType("TEXT"); b.Property("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("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AccessFailedCount") .HasColumnType("INTEGER"); b.Property("AgeRestriction") .HasColumnType("INTEGER"); b.Property("AgeRestrictionIncludeUnknowns") .HasColumnType("INTEGER"); b.Property("AniListAccessToken") .HasColumnType("TEXT"); b.Property("ApiKey") .HasColumnType("TEXT"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("TEXT"); b.Property("ConfirmationToken") .HasColumnType("TEXT"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("Email") .HasMaxLength(256) .HasColumnType("TEXT"); b.Property("EmailConfirmed") .HasColumnType("INTEGER"); b.Property("LastActive") .HasColumnType("TEXT"); b.Property("LastActiveUtc") .HasColumnType("TEXT"); b.Property("LockoutEnabled") .HasColumnType("INTEGER"); b.Property("LockoutEnd") .HasColumnType("TEXT"); b.Property("MalAccessToken") .HasColumnType("TEXT"); b.Property("MalUserName") .HasColumnType("TEXT"); b.Property("NormalizedEmail") .HasMaxLength(256) .HasColumnType("TEXT"); b.Property("NormalizedUserName") .HasMaxLength(256) .HasColumnType("TEXT"); b.Property("PasswordHash") .HasColumnType("TEXT"); b.Property("PhoneNumber") .HasColumnType("TEXT"); b.Property("PhoneNumberConfirmed") .HasColumnType("INTEGER"); b.Property("RowVersion") .IsConcurrencyToken() .HasColumnType("INTEGER"); b.Property("SecurityStamp") .HasColumnType("TEXT"); b.Property("TwoFactorEnabled") .HasColumnType("INTEGER"); b.Property("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("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("ChapterId") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("FileName") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("Page") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("VolumeId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.ToTable("AppUserBookmark"); }); modelBuilder.Entity("API.Entities.AppUserCollection", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AgeRating") .ValueGeneratedOnAdd() .HasColumnType("INTEGER") .HasDefaultValue(0); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("CoverImage") .HasColumnType("TEXT"); b.Property("CoverImageLocked") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("LastSyncUtc") .HasColumnType("TEXT"); b.Property("NormalizedTitle") .HasColumnType("TEXT"); b.Property("Promoted") .HasColumnType("INTEGER"); b.Property("Source") .HasColumnType("INTEGER"); b.Property("SourceUrl") .HasColumnType("TEXT"); b.Property("Summary") .HasColumnType("TEXT"); b.Property("Title") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.ToTable("AppUserCollection"); }); modelBuilder.Entity("API.Entities.AppUserDashboardStream", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("IsProvided") .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.Property("Order") .HasColumnType("INTEGER"); b.Property("SmartFilterId") .HasColumnType("INTEGER"); b.Property("StreamType") .ValueGeneratedOnAdd() .HasColumnType("INTEGER") .HasDefaultValue(4); b.Property("Visible") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.HasIndex("SmartFilterId"); b.HasIndex("Visible"); b.ToTable("AppUserDashboardStream"); }); modelBuilder.Entity("API.Entities.AppUserExternalSource", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("ApiKey") .HasColumnType("TEXT"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("Host") .HasColumnType("TEXT"); b.Property("Name") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.ToTable("AppUserExternalSource"); }); modelBuilder.Entity("API.Entities.AppUserOnDeckRemoval", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.HasIndex("SeriesId"); b.ToTable("AppUserOnDeckRemoval"); }); modelBuilder.Entity("API.Entities.AppUserPreferences", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("AutoCloseMenu") .HasColumnType("INTEGER"); b.Property("BackgroundColor") .ValueGeneratedOnAdd() .HasColumnType("TEXT") .HasDefaultValue("#000000"); b.Property("BlurUnreadSummaries") .HasColumnType("INTEGER"); b.Property("BookReaderFontFamily") .HasColumnType("TEXT"); b.Property("BookReaderFontSize") .HasColumnType("INTEGER"); b.Property("BookReaderImmersiveMode") .HasColumnType("INTEGER"); b.Property("BookReaderLayoutMode") .HasColumnType("INTEGER"); b.Property("BookReaderLineSpacing") .HasColumnType("INTEGER"); b.Property("BookReaderMargin") .HasColumnType("INTEGER"); b.Property("BookReaderReadingDirection") .HasColumnType("INTEGER"); b.Property("BookReaderTapToPaginate") .HasColumnType("INTEGER"); b.Property("BookReaderWritingStyle") .ValueGeneratedOnAdd() .HasColumnType("INTEGER") .HasDefaultValue(0); b.Property("BookThemeName") .ValueGeneratedOnAdd() .HasColumnType("TEXT") .HasDefaultValue("Dark"); b.Property("CollapseSeriesRelationships") .HasColumnType("INTEGER"); b.Property("EmulateBook") .HasColumnType("INTEGER"); b.Property("GlobalPageLayoutMode") .ValueGeneratedOnAdd() .HasColumnType("INTEGER") .HasDefaultValue(0); b.Property("LayoutMode") .HasColumnType("INTEGER"); b.Property("Locale") .IsRequired() .ValueGeneratedOnAdd() .HasColumnType("TEXT") .HasDefaultValue("en"); b.Property("NoTransitions") .HasColumnType("INTEGER"); b.Property("PageSplitOption") .HasColumnType("INTEGER"); b.Property("PdfScrollMode") .HasColumnType("INTEGER"); b.Property("PdfSpreadMode") .HasColumnType("INTEGER"); b.Property("PdfTheme") .HasColumnType("INTEGER"); b.Property("PromptForDownloadSize") .HasColumnType("INTEGER"); b.Property("ReaderMode") .HasColumnType("INTEGER"); b.Property("ReadingDirection") .HasColumnType("INTEGER"); b.Property("ScalingOption") .HasColumnType("INTEGER"); b.Property("ShareReviews") .HasColumnType("INTEGER"); b.Property("ShowScreenHints") .HasColumnType("INTEGER"); b.Property("SwipeToPaginate") .HasColumnType("INTEGER"); b.Property("ThemeId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("AppUserId") .IsUnique(); b.HasIndex("ThemeId"); b.ToTable("AppUserPreferences"); }); modelBuilder.Entity("API.Entities.AppUserProgress", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("BookScrollId") .HasColumnType("TEXT"); b.Property("ChapterId") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("LibraryId") .HasColumnType("INTEGER"); b.Property("PagesRead") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("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("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("HasBeenRated") .HasColumnType("INTEGER"); b.Property("Rating") .HasColumnType("REAL"); b.Property("Review") .HasColumnType("TEXT"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("Tagline") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.HasIndex("SeriesId"); b.ToTable("AppUserRating"); }); modelBuilder.Entity("API.Entities.AppUserRole", b => { b.Property("UserId") .HasColumnType("INTEGER"); b.Property("RoleId") .HasColumnType("INTEGER"); b.HasKey("UserId", "RoleId"); b.HasIndex("RoleId"); b.ToTable("AspNetUserRoles", (string)null); }); modelBuilder.Entity("API.Entities.AppUserSideNavStream", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("ExternalSourceId") .HasColumnType("INTEGER"); b.Property("IsProvided") .HasColumnType("INTEGER"); b.Property("LibraryId") .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.Property("Order") .HasColumnType("INTEGER"); b.Property("SmartFilterId") .HasColumnType("INTEGER"); b.Property("StreamType") .ValueGeneratedOnAdd() .HasColumnType("INTEGER") .HasDefaultValue(5); b.Property("Visible") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.HasIndex("SmartFilterId"); b.HasIndex("Visible"); b.ToTable("AppUserSideNavStream"); }); modelBuilder.Entity("API.Entities.AppUserSmartFilter", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("Filter") .HasColumnType("TEXT"); b.Property("Name") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.ToTable("AppUserSmartFilter"); }); modelBuilder.Entity("API.Entities.AppUserTableOfContent", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("BookScrollId") .HasColumnType("TEXT"); b.Property("ChapterId") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("LibraryId") .HasColumnType("INTEGER"); b.Property("PageNumber") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("Title") .HasColumnType("TEXT"); b.Property("VolumeId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.HasIndex("ChapterId"); b.HasIndex("SeriesId"); b.ToTable("AppUserTableOfContent"); }); modelBuilder.Entity("API.Entities.AppUserWantToRead", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.HasIndex("SeriesId"); b.ToTable("AppUserWantToRead"); }); modelBuilder.Entity("API.Entities.Chapter", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AgeRating") .HasColumnType("INTEGER"); b.Property("AlternateCount") .HasColumnType("INTEGER"); b.Property("AlternateNumber") .HasColumnType("TEXT"); b.Property("AlternateSeries") .HasColumnType("TEXT"); b.Property("AvgHoursToRead") .HasColumnType("INTEGER"); b.Property("Count") .HasColumnType("INTEGER"); b.Property("CoverImage") .HasColumnType("TEXT"); b.Property("CoverImageLocked") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("ISBN") .ValueGeneratedOnAdd() .HasColumnType("TEXT") .HasDefaultValue(""); b.Property("IsSpecial") .HasColumnType("INTEGER"); b.Property("Language") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("MaxHoursToRead") .HasColumnType("INTEGER"); b.Property("MaxNumber") .HasColumnType("REAL"); b.Property("MinHoursToRead") .HasColumnType("INTEGER"); b.Property("MinNumber") .HasColumnType("REAL"); b.Property("Number") .HasColumnType("TEXT"); b.Property("Pages") .HasColumnType("INTEGER"); b.Property("Range") .HasColumnType("TEXT"); b.Property("ReleaseDate") .HasColumnType("TEXT"); b.Property("SeriesGroup") .HasColumnType("TEXT"); b.Property("SortOrder") .HasColumnType("REAL"); b.Property("SortOrderLocked") .HasColumnType("INTEGER"); b.Property("StoryArc") .HasColumnType("TEXT"); b.Property("StoryArcNumber") .HasColumnType("TEXT"); b.Property("Summary") .HasColumnType("TEXT"); b.Property("Title") .HasColumnType("TEXT"); b.Property("TitleName") .HasColumnType("TEXT"); b.Property("TotalCount") .HasColumnType("INTEGER"); b.Property("VolumeId") .HasColumnType("INTEGER"); b.Property("WebLinks") .ValueGeneratedOnAdd() .HasColumnType("TEXT") .HasDefaultValue(""); b.Property("WordCount") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("VolumeId"); b.ToTable("Chapter"); }); modelBuilder.Entity("API.Entities.CollectionTag", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("CoverImage") .HasColumnType("TEXT"); b.Property("CoverImageLocked") .HasColumnType("INTEGER"); b.Property("NormalizedTitle") .HasColumnType("TEXT"); b.Property("Promoted") .HasColumnType("INTEGER"); b.Property("RowVersion") .HasColumnType("INTEGER"); b.Property("Summary") .HasColumnType("TEXT"); b.Property("Title") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("Id", "Promoted") .IsUnique(); b.ToTable("CollectionTag"); }); modelBuilder.Entity("API.Entities.Device", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("EmailAddress") .HasColumnType("TEXT"); b.Property("IpAddress") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("LastUsed") .HasColumnType("TEXT"); b.Property("LastUsedUtc") .HasColumnType("TEXT"); b.Property("Name") .HasColumnType("TEXT"); b.Property("Platform") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.ToTable("Device"); }); modelBuilder.Entity("API.Entities.FolderPath", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("LastScanned") .HasColumnType("TEXT"); b.Property("LibraryId") .HasColumnType("INTEGER"); b.Property("Path") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("LibraryId"); b.ToTable("FolderPath"); }); modelBuilder.Entity("API.Entities.Genre", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("NormalizedTitle") .HasColumnType("TEXT"); b.Property("Title") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("NormalizedTitle") .IsUnique(); b.ToTable("Genre"); }); modelBuilder.Entity("API.Entities.Library", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AllowScrobbling") .ValueGeneratedOnAdd() .HasColumnType("INTEGER") .HasDefaultValue(true); b.Property("CoverImage") .HasColumnType("TEXT"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("FolderWatching") .HasColumnType("INTEGER"); b.Property("IncludeInDashboard") .HasColumnType("INTEGER"); b.Property("IncludeInRecommended") .HasColumnType("INTEGER"); b.Property("IncludeInSearch") .HasColumnType("INTEGER"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("LastScanned") .HasColumnType("TEXT"); b.Property("ManageCollections") .HasColumnType("INTEGER"); b.Property("ManageReadingLists") .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.Property("Type") .HasColumnType("INTEGER"); b.HasKey("Id"); b.ToTable("Library"); }); modelBuilder.Entity("API.Entities.LibraryExcludePattern", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("LibraryId") .HasColumnType("INTEGER"); b.Property("Pattern") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("LibraryId"); b.ToTable("LibraryExcludePattern"); }); modelBuilder.Entity("API.Entities.LibraryFileTypeGroup", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("FileTypeGroup") .HasColumnType("INTEGER"); b.Property("LibraryId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("LibraryId"); b.ToTable("LibraryFileTypeGroup"); }); modelBuilder.Entity("API.Entities.MangaFile", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Bytes") .HasColumnType("INTEGER"); b.Property("ChapterId") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("Extension") .HasColumnType("TEXT"); b.Property("FileName") .HasColumnType("TEXT"); b.Property("FilePath") .HasColumnType("TEXT"); b.Property("Format") .HasColumnType("INTEGER"); b.Property("LastFileAnalysis") .HasColumnType("TEXT"); b.Property("LastFileAnalysisUtc") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("Pages") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("ChapterId"); b.ToTable("MangaFile"); }); modelBuilder.Entity("API.Entities.ManualMigrationHistory", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.Property("ProductVersion") .HasColumnType("TEXT"); b.Property("RanAt") .HasColumnType("TEXT"); b.HasKey("Id"); b.ToTable("ManualMigrationHistory"); }); modelBuilder.Entity("API.Entities.MediaError", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Comment") .HasColumnType("TEXT"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("Details") .HasColumnType("TEXT"); b.Property("Extension") .HasColumnType("TEXT"); b.Property("FilePath") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.HasKey("Id"); b.ToTable("MediaError"); }); modelBuilder.Entity("API.Entities.Metadata.ExternalRating", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AverageScore") .HasColumnType("INTEGER"); b.Property("FavoriteCount") .HasColumnType("INTEGER"); b.Property("Provider") .HasColumnType("INTEGER"); b.Property("ProviderUrl") .HasColumnType("TEXT"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.ToTable("ExternalRating"); }); modelBuilder.Entity("API.Entities.Metadata.ExternalRecommendation", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AniListId") .HasColumnType("INTEGER"); b.Property("CoverUrl") .HasColumnType("TEXT"); b.Property("MalId") .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.Property("Provider") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("Summary") .HasColumnType("TEXT"); b.Property("Url") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("SeriesId"); b.ToTable("ExternalRecommendation"); }); modelBuilder.Entity("API.Entities.Metadata.ExternalReview", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Body") .HasColumnType("TEXT"); b.Property("BodyJustText") .HasColumnType("TEXT"); b.Property("Provider") .HasColumnType("INTEGER"); b.Property("Rating") .HasColumnType("INTEGER"); b.Property("RawBody") .HasColumnType("TEXT"); b.Property("Score") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("SiteUrl") .HasColumnType("TEXT"); b.Property("Tagline") .HasColumnType("TEXT"); b.Property("TotalVotes") .HasColumnType("INTEGER"); b.Property("Username") .HasColumnType("TEXT"); b.HasKey("Id"); b.ToTable("ExternalReview"); }); modelBuilder.Entity("API.Entities.Metadata.ExternalSeriesMetadata", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AniListId") .HasColumnType("INTEGER"); b.Property("AverageExternalRating") .HasColumnType("INTEGER"); b.Property("GoogleBooksId") .HasColumnType("TEXT"); b.Property("MalId") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("ValidUntilUtc") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("SeriesId") .IsUnique(); b.ToTable("ExternalSeriesMetadata"); }); modelBuilder.Entity("API.Entities.Metadata.SeriesBlacklist", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("LastChecked") .HasColumnType("TEXT"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("SeriesId"); b.ToTable("SeriesBlacklist"); }); modelBuilder.Entity("API.Entities.Metadata.SeriesMetadata", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AgeRating") .HasColumnType("INTEGER"); b.Property("AgeRatingLocked") .HasColumnType("INTEGER"); b.Property("CharacterLocked") .HasColumnType("INTEGER"); b.Property("ColoristLocked") .HasColumnType("INTEGER"); b.Property("CoverArtistLocked") .HasColumnType("INTEGER"); b.Property("EditorLocked") .HasColumnType("INTEGER"); b.Property("GenresLocked") .HasColumnType("INTEGER"); b.Property("ImprintLocked") .HasColumnType("INTEGER"); b.Property("InkerLocked") .HasColumnType("INTEGER"); b.Property("Language") .HasColumnType("TEXT"); b.Property("LanguageLocked") .HasColumnType("INTEGER"); b.Property("LettererLocked") .HasColumnType("INTEGER"); b.Property("LocationLocked") .HasColumnType("INTEGER"); b.Property("MaxCount") .HasColumnType("INTEGER"); b.Property("PencillerLocked") .HasColumnType("INTEGER"); b.Property("PublicationStatus") .HasColumnType("INTEGER"); b.Property("PublicationStatusLocked") .HasColumnType("INTEGER"); b.Property("PublisherLocked") .HasColumnType("INTEGER"); b.Property("ReleaseYear") .HasColumnType("INTEGER"); b.Property("ReleaseYearLocked") .HasColumnType("INTEGER"); b.Property("RowVersion") .IsConcurrencyToken() .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("Summary") .HasColumnType("TEXT"); b.Property("SummaryLocked") .HasColumnType("INTEGER"); b.Property("TagsLocked") .HasColumnType("INTEGER"); b.Property("TeamLocked") .HasColumnType("INTEGER"); b.Property("TotalCount") .HasColumnType("INTEGER"); b.Property("TranslatorLocked") .HasColumnType("INTEGER"); b.Property("WebLinks") .ValueGeneratedOnAdd() .HasColumnType("TEXT") .HasDefaultValue(""); b.Property("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("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("RelationKind") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("TargetSeriesId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("SeriesId"); b.HasIndex("TargetSeriesId"); b.ToTable("SeriesRelation"); }); modelBuilder.Entity("API.Entities.Person", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.Property("NormalizedName") .HasColumnType("TEXT"); b.Property("Role") .HasColumnType("INTEGER"); b.HasKey("Id"); b.ToTable("Person"); }); modelBuilder.Entity("API.Entities.ReadingList", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AgeRating") .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("CoverImage") .HasColumnType("TEXT"); b.Property("CoverImageLocked") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("EndingMonth") .HasColumnType("INTEGER"); b.Property("EndingYear") .HasColumnType("INTEGER"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("NormalizedTitle") .IsRequired() .HasColumnType("TEXT"); b.Property("Promoted") .HasColumnType("INTEGER"); b.Property("StartingMonth") .HasColumnType("INTEGER"); b.Property("StartingYear") .HasColumnType("INTEGER"); b.Property("Summary") .HasColumnType("TEXT"); b.Property("Title") .IsRequired() .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.ToTable("ReadingList"); }); modelBuilder.Entity("API.Entities.ReadingListItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("ChapterId") .HasColumnType("INTEGER"); b.Property("Order") .HasColumnType("INTEGER"); b.Property("ReadingListId") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("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.Scrobble.ScrobbleError", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Comment") .HasColumnType("TEXT"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("Details") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("LibraryId") .HasColumnType("INTEGER"); b.Property("ScrobbleEventId") .HasColumnType("INTEGER"); b.Property("ScrobbleEventId1") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("ScrobbleEventId1"); b.HasIndex("SeriesId"); b.ToTable("ScrobbleError"); }); modelBuilder.Entity("API.Entities.Scrobble.ScrobbleEvent", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AniListId") .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("ChapterNumber") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("ErrorDetails") .HasColumnType("TEXT"); b.Property("Format") .HasColumnType("INTEGER"); b.Property("IsErrored") .HasColumnType("INTEGER"); b.Property("IsProcessed") .HasColumnType("INTEGER"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("LibraryId") .HasColumnType("INTEGER"); b.Property("MalId") .HasColumnType("INTEGER"); b.Property("ProcessDateUtc") .HasColumnType("TEXT"); b.Property("Rating") .HasColumnType("REAL"); b.Property("ReviewBody") .HasColumnType("TEXT"); b.Property("ReviewTitle") .HasColumnType("TEXT"); b.Property("ScrobbleEventType") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("VolumeNumber") .HasColumnType("REAL"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.HasIndex("LibraryId"); b.HasIndex("SeriesId"); b.ToTable("ScrobbleEvent"); }); modelBuilder.Entity("API.Entities.Scrobble.ScrobbleHold", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AppUserId") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("AppUserId"); b.HasIndex("SeriesId"); b.ToTable("ScrobbleHold"); }); modelBuilder.Entity("API.Entities.Series", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AvgHoursToRead") .HasColumnType("INTEGER"); b.Property("CoverImage") .HasColumnType("TEXT"); b.Property("CoverImageLocked") .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("FolderPath") .HasColumnType("TEXT"); b.Property("Format") .HasColumnType("INTEGER"); b.Property("LastChapterAdded") .HasColumnType("TEXT"); b.Property("LastChapterAddedUtc") .HasColumnType("TEXT"); b.Property("LastFolderScanned") .HasColumnType("TEXT"); b.Property("LastFolderScannedUtc") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("LibraryId") .HasColumnType("INTEGER"); b.Property("LocalizedName") .HasColumnType("TEXT"); b.Property("LocalizedNameLocked") .HasColumnType("INTEGER"); b.Property("LowestFolderPath") .HasColumnType("TEXT"); b.Property("MaxHoursToRead") .HasColumnType("INTEGER"); b.Property("MinHoursToRead") .HasColumnType("INTEGER"); b.Property("Name") .HasColumnType("TEXT"); b.Property("NormalizedLocalizedName") .HasColumnType("TEXT"); b.Property("NormalizedName") .HasColumnType("TEXT"); b.Property("OriginalName") .HasColumnType("TEXT"); b.Property("Pages") .HasColumnType("INTEGER"); b.Property("SortName") .HasColumnType("TEXT"); b.Property("SortNameLocked") .HasColumnType("INTEGER"); b.Property("WordCount") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("LibraryId"); b.ToTable("Series"); }); modelBuilder.Entity("API.Entities.ServerSetting", b => { b.Property("Key") .HasColumnType("INTEGER"); b.Property("RowVersion") .IsConcurrencyToken() .HasColumnType("INTEGER"); b.Property("Value") .HasColumnType("TEXT"); b.HasKey("Key"); b.ToTable("ServerSetting"); }); modelBuilder.Entity("API.Entities.ServerStatistics", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("ChapterCount") .HasColumnType("INTEGER"); b.Property("FileCount") .HasColumnType("INTEGER"); b.Property("GenreCount") .HasColumnType("INTEGER"); b.Property("PersonCount") .HasColumnType("INTEGER"); b.Property("SeriesCount") .HasColumnType("INTEGER"); b.Property("TagCount") .HasColumnType("INTEGER"); b.Property("UserCount") .HasColumnType("INTEGER"); b.Property("VolumeCount") .HasColumnType("INTEGER"); b.Property("Year") .HasColumnType("INTEGER"); b.HasKey("Id"); b.ToTable("ServerStatistics"); }); modelBuilder.Entity("API.Entities.SiteTheme", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("FileName") .HasColumnType("TEXT"); b.Property("IsDefault") .HasColumnType("INTEGER"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("Name") .HasColumnType("TEXT"); b.Property("NormalizedName") .HasColumnType("TEXT"); b.Property("Provider") .HasColumnType("INTEGER"); b.HasKey("Id"); b.ToTable("SiteTheme"); }); modelBuilder.Entity("API.Entities.Tag", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("NormalizedTitle") .HasColumnType("TEXT"); b.Property("Title") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("NormalizedTitle") .IsUnique(); b.ToTable("Tag"); }); modelBuilder.Entity("API.Entities.Volume", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("AvgHoursToRead") .HasColumnType("INTEGER"); b.Property("CoverImage") .HasColumnType("TEXT"); b.Property("Created") .HasColumnType("TEXT"); b.Property("CreatedUtc") .HasColumnType("TEXT"); b.Property("LastModified") .HasColumnType("TEXT"); b.Property("LastModifiedUtc") .HasColumnType("TEXT"); b.Property("LookupName") .HasColumnType("TEXT"); b.Property("MaxHoursToRead") .HasColumnType("INTEGER"); b.Property("MaxNumber") .HasColumnType("REAL"); b.Property("MinHoursToRead") .HasColumnType("INTEGER"); b.Property("MinNumber") .HasColumnType("REAL"); b.Property("Name") .HasColumnType("TEXT"); b.Property("Number") .HasColumnType("INTEGER"); b.Property("Pages") .HasColumnType("INTEGER"); b.Property("SeriesId") .HasColumnType("INTEGER"); b.Property("WordCount") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("SeriesId"); b.ToTable("Volume"); }); modelBuilder.Entity("AppUserCollectionSeries", b => { b.Property("CollectionsId") .HasColumnType("INTEGER"); b.Property("ItemsId") .HasColumnType("INTEGER"); b.HasKey("CollectionsId", "ItemsId"); b.HasIndex("ItemsId"); b.ToTable("AppUserCollectionSeries"); }); modelBuilder.Entity("AppUserLibrary", b => { b.Property("AppUsersId") .HasColumnType("INTEGER"); b.Property("LibrariesId") .HasColumnType("INTEGER"); b.HasKey("AppUsersId", "LibrariesId"); b.HasIndex("LibrariesId"); b.ToTable("AppUserLibrary"); }); modelBuilder.Entity("ChapterGenre", b => { b.Property("ChaptersId") .HasColumnType("INTEGER"); b.Property("GenresId") .HasColumnType("INTEGER"); b.HasKey("ChaptersId", "GenresId"); b.HasIndex("GenresId"); b.ToTable("ChapterGenre"); }); modelBuilder.Entity("ChapterPerson", b => { b.Property("ChapterMetadatasId") .HasColumnType("INTEGER"); b.Property("PeopleId") .HasColumnType("INTEGER"); b.HasKey("ChapterMetadatasId", "PeopleId"); b.HasIndex("PeopleId"); b.ToTable("ChapterPerson"); }); modelBuilder.Entity("ChapterTag", b => { b.Property("ChaptersId") .HasColumnType("INTEGER"); b.Property("TagsId") .HasColumnType("INTEGER"); b.HasKey("ChaptersId", "TagsId"); b.HasIndex("TagsId"); b.ToTable("ChapterTag"); }); modelBuilder.Entity("CollectionTagSeriesMetadata", b => { b.Property("CollectionTagsId") .HasColumnType("INTEGER"); b.Property("SeriesMetadatasId") .HasColumnType("INTEGER"); b.HasKey("CollectionTagsId", "SeriesMetadatasId"); b.HasIndex("SeriesMetadatasId"); b.ToTable("CollectionTagSeriesMetadata"); }); modelBuilder.Entity("ExternalRatingExternalSeriesMetadata", b => { b.Property("ExternalRatingsId") .HasColumnType("INTEGER"); b.Property("ExternalSeriesMetadatasId") .HasColumnType("INTEGER"); b.HasKey("ExternalRatingsId", "ExternalSeriesMetadatasId"); b.HasIndex("ExternalSeriesMetadatasId"); b.ToTable("ExternalRatingExternalSeriesMetadata"); }); modelBuilder.Entity("ExternalRecommendationExternalSeriesMetadata", b => { b.Property("ExternalRecommendationsId") .HasColumnType("INTEGER"); b.Property("ExternalSeriesMetadatasId") .HasColumnType("INTEGER"); b.HasKey("ExternalRecommendationsId", "ExternalSeriesMetadatasId"); b.HasIndex("ExternalSeriesMetadatasId"); b.ToTable("ExternalRecommendationExternalSeriesMetadata"); }); modelBuilder.Entity("ExternalReviewExternalSeriesMetadata", b => { b.Property("ExternalReviewsId") .HasColumnType("INTEGER"); b.Property("ExternalSeriesMetadatasId") .HasColumnType("INTEGER"); b.HasKey("ExternalReviewsId", "ExternalSeriesMetadatasId"); b.HasIndex("ExternalSeriesMetadatasId"); b.ToTable("ExternalReviewExternalSeriesMetadata"); }); modelBuilder.Entity("GenreSeriesMetadata", b => { b.Property("GenresId") .HasColumnType("INTEGER"); b.Property("SeriesMetadatasId") .HasColumnType("INTEGER"); b.HasKey("GenresId", "SeriesMetadatasId"); b.HasIndex("SeriesMetadatasId"); b.ToTable("GenreSeriesMetadata"); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("ClaimType") .HasColumnType("TEXT"); b.Property("ClaimValue") .HasColumnType("TEXT"); b.Property("RoleId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("RoleId"); b.ToTable("AspNetRoleClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); b.Property("ClaimType") .HasColumnType("TEXT"); b.Property("ClaimValue") .HasColumnType("TEXT"); b.Property("UserId") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("AspNetUserClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.Property("LoginProvider") .HasColumnType("TEXT"); b.Property("ProviderKey") .HasColumnType("TEXT"); b.Property("ProviderDisplayName") .HasColumnType("TEXT"); b.Property("UserId") .HasColumnType("INTEGER"); b.HasKey("LoginProvider", "ProviderKey"); b.HasIndex("UserId"); b.ToTable("AspNetUserLogins", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.Property("UserId") .HasColumnType("INTEGER"); b.Property("LoginProvider") .HasColumnType("TEXT"); b.Property("Name") .HasColumnType("TEXT"); b.Property("Value") .HasColumnType("TEXT"); b.HasKey("UserId", "LoginProvider", "Name"); b.ToTable("AspNetUserTokens", (string)null); }); modelBuilder.Entity("PersonSeriesMetadata", b => { b.Property("PeopleId") .HasColumnType("INTEGER"); b.Property("SeriesMetadatasId") .HasColumnType("INTEGER"); b.HasKey("PeopleId", "SeriesMetadatasId"); b.HasIndex("SeriesMetadatasId"); b.ToTable("PersonSeriesMetadata"); }); modelBuilder.Entity("SeriesMetadataTag", b => { b.Property("SeriesMetadatasId") .HasColumnType("INTEGER"); b.Property("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.AppUserCollection", b => { b.HasOne("API.Entities.AppUser", "AppUser") .WithMany("Collections") .HasForeignKey("AppUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AppUser"); }); modelBuilder.Entity("API.Entities.AppUserDashboardStream", b => { b.HasOne("API.Entities.AppUser", "AppUser") .WithMany("DashboardStreams") .HasForeignKey("AppUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.AppUserSmartFilter", "SmartFilter") .WithMany() .HasForeignKey("SmartFilterId"); b.Navigation("AppUser"); b.Navigation("SmartFilter"); }); modelBuilder.Entity("API.Entities.AppUserExternalSource", b => { b.HasOne("API.Entities.AppUser", "AppUser") .WithMany("ExternalSources") .HasForeignKey("AppUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AppUser"); }); modelBuilder.Entity("API.Entities.AppUserOnDeckRemoval", b => { b.HasOne("API.Entities.AppUser", "AppUser") .WithMany() .HasForeignKey("AppUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.Series", "Series") .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AppUser"); b.Navigation("Series"); }); 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.AppUserSideNavStream", b => { b.HasOne("API.Entities.AppUser", "AppUser") .WithMany("SideNavStreams") .HasForeignKey("AppUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.AppUserSmartFilter", "SmartFilter") .WithMany() .HasForeignKey("SmartFilterId"); b.Navigation("AppUser"); b.Navigation("SmartFilter"); }); modelBuilder.Entity("API.Entities.AppUserSmartFilter", b => { b.HasOne("API.Entities.AppUser", "AppUser") .WithMany("SmartFilters") .HasForeignKey("AppUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AppUser"); }); modelBuilder.Entity("API.Entities.AppUserTableOfContent", b => { b.HasOne("API.Entities.AppUser", "AppUser") .WithMany("TableOfContents") .HasForeignKey("AppUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.Chapter", "Chapter") .WithMany() .HasForeignKey("ChapterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.Series", "Series") .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AppUser"); b.Navigation("Chapter"); b.Navigation("Series"); }); modelBuilder.Entity("API.Entities.AppUserWantToRead", b => { b.HasOne("API.Entities.AppUser", "AppUser") .WithMany("WantToRead") .HasForeignKey("AppUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.Series", "Series") .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AppUser"); b.Navigation("Series"); }); 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.LibraryExcludePattern", b => { b.HasOne("API.Entities.Library", "Library") .WithMany("LibraryExcludePatterns") .HasForeignKey("LibraryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Library"); }); modelBuilder.Entity("API.Entities.LibraryFileTypeGroup", b => { b.HasOne("API.Entities.Library", "Library") .WithMany("LibraryFileTypes") .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.ExternalSeriesMetadata", b => { b.HasOne("API.Entities.Series", "Series") .WithOne("ExternalSeriesMetadata") .HasForeignKey("API.Entities.Metadata.ExternalSeriesMetadata", "SeriesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Series"); }); modelBuilder.Entity("API.Entities.Metadata.SeriesBlacklist", b => { b.HasOne("API.Entities.Series", "Series") .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Series"); }); 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.Scrobble.ScrobbleError", b => { b.HasOne("API.Entities.Scrobble.ScrobbleEvent", "ScrobbleEvent") .WithMany() .HasForeignKey("ScrobbleEventId1"); b.HasOne("API.Entities.Series", "Series") .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("ScrobbleEvent"); b.Navigation("Series"); }); modelBuilder.Entity("API.Entities.Scrobble.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.Scrobble.ScrobbleHold", b => { b.HasOne("API.Entities.AppUser", "AppUser") .WithMany("ScrobbleHolds") .HasForeignKey("AppUserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.Series", "Series") .WithMany() .HasForeignKey("SeriesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AppUser"); b.Navigation("Series"); }); modelBuilder.Entity("API.Entities.Series", b => { 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("AppUserCollectionSeries", b => { b.HasOne("API.Entities.AppUserCollection", null) .WithMany() .HasForeignKey("CollectionsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.Series", null) .WithMany() .HasForeignKey("ItemsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); 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("ExternalRatingExternalSeriesMetadata", b => { b.HasOne("API.Entities.Metadata.ExternalRating", null) .WithMany() .HasForeignKey("ExternalRatingsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.Metadata.ExternalSeriesMetadata", null) .WithMany() .HasForeignKey("ExternalSeriesMetadatasId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ExternalRecommendationExternalSeriesMetadata", b => { b.HasOne("API.Entities.Metadata.ExternalRecommendation", null) .WithMany() .HasForeignKey("ExternalRecommendationsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.Metadata.ExternalSeriesMetadata", null) .WithMany() .HasForeignKey("ExternalSeriesMetadatasId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ExternalReviewExternalSeriesMetadata", b => { b.HasOne("API.Entities.Metadata.ExternalReview", null) .WithMany() .HasForeignKey("ExternalReviewsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Entities.Metadata.ExternalSeriesMetadata", null) .WithMany() .HasForeignKey("ExternalSeriesMetadatasId") .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", b => { b.HasOne("API.Entities.AppRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.HasOne("API.Entities.AppUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.HasOne("API.Entities.AppUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", 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("Collections"); b.Navigation("DashboardStreams"); b.Navigation("Devices"); b.Navigation("ExternalSources"); b.Navigation("Progresses"); b.Navigation("Ratings"); b.Navigation("ReadingLists"); b.Navigation("ScrobbleHolds"); b.Navigation("SideNavStreams"); b.Navigation("SmartFilters"); b.Navigation("TableOfContents"); 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("LibraryExcludePatterns"); b.Navigation("LibraryFileTypes"); b.Navigation("Series"); }); modelBuilder.Entity("API.Entities.ReadingList", b => { b.Navigation("Items"); }); modelBuilder.Entity("API.Entities.Series", b => { b.Navigation("ExternalSeriesMetadata"); 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 } } }