// <auto-generated /> using System; using API.Schema.Contexts; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace API.Migrations.pgsql { [DbContext(typeof(PgsqlContext))] [Migration("20250518161710_UpdateCoverJob")] partial class UpdateCoverJob { /// <inheritdoc /> protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.5") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("API.Schema.Author", b => { b.Property<string>("AuthorId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property<string>("AuthorName") .IsRequired() .HasMaxLength(128) .HasColumnType("character varying(128)"); b.HasKey("AuthorId"); b.ToTable("Authors"); }); modelBuilder.Entity("API.Schema.Chapter", b => { b.Property<string>("ChapterId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property<string>("ChapterNumber") .IsRequired() .HasMaxLength(10) .HasColumnType("character varying(10)"); b.Property<bool>("Downloaded") .HasColumnType("boolean"); b.Property<string>("FileName") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<string>("IdOnConnectorSite") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<string>("ParentMangaId") .IsRequired() .HasColumnType("character varying(64)"); b.Property<string>("Title") .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<string>("Url") .IsRequired() .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b.Property<int?>("VolumeNumber") .HasColumnType("integer"); b.HasKey("ChapterId"); b.HasIndex("ParentMangaId"); b.ToTable("Chapters"); }); modelBuilder.Entity("API.Schema.Jobs.Job", b => { b.Property<string>("JobId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property<bool>("Enabled") .HasColumnType("boolean"); b.Property<byte>("JobType") .HasColumnType("smallint"); b.Property<DateTime>("LastExecution") .HasColumnType("timestamp with time zone"); b.Property<string>("ParentJobId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property<decimal>("RecurrenceMs") .HasColumnType("numeric(20,0)"); b.Property<byte>("state") .HasColumnType("smallint"); b.HasKey("JobId"); b.HasIndex("ParentJobId"); b.ToTable("Jobs"); b.HasDiscriminator<byte>("JobType"); b.UseTphMappingStrategy(); }); modelBuilder.Entity("API.Schema.LocalLibrary", b => { b.Property<string>("LocalLibraryId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property<string>("BasePath") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<string>("LibraryName") .IsRequired() .HasMaxLength(512) .HasColumnType("character varying(512)"); b.HasKey("LocalLibraryId"); b.ToTable("LocalLibraries"); }); modelBuilder.Entity("API.Schema.Manga", b => { b.Property<string>("MangaId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property<string>("CoverFileNameInCache") .HasMaxLength(512) .HasColumnType("character varying(512)"); b.Property<string>("CoverUrl") .IsRequired() .HasMaxLength(512) .HasColumnType("character varying(512)"); b.Property<string>("Description") .IsRequired() .HasColumnType("text"); b.Property<string>("DirectoryName") .IsRequired() .HasMaxLength(1024) .HasColumnType("character varying(1024)"); b.Property<string>("IdOnConnectorSite") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<float>("IgnoreChaptersBefore") .HasColumnType("real"); b.Property<string>("LibraryId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property<string>("MangaConnectorName") .IsRequired() .HasMaxLength(32) .HasColumnType("character varying(32)"); b.Property<string>("Name") .IsRequired() .HasMaxLength(512) .HasColumnType("character varying(512)"); b.Property<string>("OriginalLanguage") .HasMaxLength(8) .HasColumnType("character varying(8)"); b.Property<byte>("ReleaseStatus") .HasColumnType("smallint"); b.Property<string>("WebsiteUrl") .IsRequired() .HasMaxLength(512) .HasColumnType("character varying(512)"); b.Property<long?>("Year") .HasColumnType("bigint"); b.HasKey("MangaId"); b.HasIndex("LibraryId"); b.HasIndex("MangaConnectorName"); b.ToTable("Mangas"); }); modelBuilder.Entity("API.Schema.MangaConnectors.MangaConnector", b => { b.Property<string>("Name") .HasMaxLength(32) .HasColumnType("character varying(32)"); b.PrimitiveCollection<string[]>("BaseUris") .IsRequired() .HasMaxLength(256) .HasColumnType("text[]"); b.Property<bool>("Enabled") .HasColumnType("boolean"); b.Property<string>("IconUrl") .IsRequired() .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b.PrimitiveCollection<string[]>("SupportedLanguages") .IsRequired() .HasMaxLength(8) .HasColumnType("text[]"); b.HasKey("Name"); b.ToTable("MangaConnectors"); b.HasDiscriminator<string>("Name").HasValue("MangaConnector"); b.UseTphMappingStrategy(); }); modelBuilder.Entity("API.Schema.MangaTag", b => { b.Property<string>("Tag") .HasMaxLength(64) .HasColumnType("character varying(64)"); b.HasKey("Tag"); b.ToTable("Tags"); }); modelBuilder.Entity("AuthorToManga", b => { b.Property<string>("AuthorIds") .HasColumnType("character varying(64)"); b.Property<string>("MangaIds") .HasColumnType("character varying(64)"); b.HasKey("AuthorIds", "MangaIds"); b.HasIndex("MangaIds"); b.ToTable("AuthorToManga"); }); modelBuilder.Entity("JobJob", b => { b.Property<string>("DependsOnJobsJobId") .HasColumnType("character varying(64)"); b.Property<string>("JobId") .HasColumnType("character varying(64)"); b.HasKey("DependsOnJobsJobId", "JobId"); b.HasIndex("JobId"); b.ToTable("JobJob"); }); modelBuilder.Entity("MangaTagToManga", b => { b.Property<string>("MangaTagIds") .HasColumnType("character varying(64)"); b.Property<string>("MangaIds") .HasColumnType("character varying(64)"); b.HasKey("MangaTagIds", "MangaIds"); b.HasIndex("MangaIds"); b.ToTable("MangaTagToManga"); }); modelBuilder.Entity("API.Schema.Jobs.DownloadAvailableChaptersJob", b => { b.HasBaseType("API.Schema.Jobs.Job"); b.Property<string>("MangaId") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.HasIndex("MangaId"); b.ToTable("Jobs", t => { t.Property("MangaId") .HasColumnName("DownloadAvailableChaptersJob_MangaId"); }); b.HasDiscriminator().HasValue((byte)1); }); modelBuilder.Entity("API.Schema.Jobs.DownloadMangaCoverJob", b => { b.HasBaseType("API.Schema.Jobs.Job"); b.Property<string>("MangaId") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.HasIndex("MangaId"); b.HasDiscriminator().HasValue((byte)4); }); modelBuilder.Entity("API.Schema.Jobs.DownloadSingleChapterJob", b => { b.HasBaseType("API.Schema.Jobs.Job"); b.Property<string>("ChapterId") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.HasIndex("ChapterId"); b.HasDiscriminator().HasValue((byte)0); }); modelBuilder.Entity("API.Schema.Jobs.MoveFileOrFolderJob", b => { b.HasBaseType("API.Schema.Jobs.Job"); b.Property<string>("FromLocation") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.Property<string>("ToLocation") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b.HasDiscriminator().HasValue((byte)3); }); modelBuilder.Entity("API.Schema.Jobs.MoveMangaLibraryJob", b => { b.HasBaseType("API.Schema.Jobs.Job"); b.Property<string>("MangaId") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.Property<string>("ToLibraryId") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.HasIndex("MangaId"); b.HasIndex("ToLibraryId"); b.ToTable("Jobs", t => { t.Property("MangaId") .HasColumnName("MoveMangaLibraryJob_MangaId"); }); b.HasDiscriminator().HasValue((byte)7); }); modelBuilder.Entity("API.Schema.Jobs.RetrieveChaptersJob", b => { b.HasBaseType("API.Schema.Jobs.Job"); b.Property<string>("Language") .IsRequired() .HasMaxLength(8) .HasColumnType("character varying(8)"); b.Property<string>("MangaId") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.HasIndex("MangaId"); b.ToTable("Jobs", t => { t.Property("MangaId") .HasColumnName("RetrieveChaptersJob_MangaId"); }); b.HasDiscriminator().HasValue((byte)5); }); modelBuilder.Entity("API.Schema.Jobs.UpdateChaptersDownloadedJob", b => { b.HasBaseType("API.Schema.Jobs.Job"); b.Property<string>("MangaId") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.HasIndex("MangaId"); b.ToTable("Jobs", t => { t.Property("MangaId") .HasColumnName("UpdateChaptersDownloadedJob_MangaId"); }); b.HasDiscriminator().HasValue((byte)6); }); modelBuilder.Entity("API.Schema.Jobs.UpdateCoverJob", b => { b.HasBaseType("API.Schema.Jobs.Job"); b.Property<string>("MangaId") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.HasIndex("MangaId"); b.ToTable("Jobs", t => { t.Property("MangaId") .HasColumnName("UpdateCoverJob_MangaId"); }); b.HasDiscriminator().HasValue((byte)9); }); modelBuilder.Entity("API.Schema.Jobs.UpdateSingleChapterDownloadedJob", b => { b.HasBaseType("API.Schema.Jobs.Job"); b.Property<string>("ChapterId") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b.HasIndex("ChapterId"); b.ToTable("Jobs", t => { t.Property("ChapterId") .HasColumnName("UpdateSingleChapterDownloadedJob_ChapterId"); }); b.HasDiscriminator().HasValue((byte)8); }); modelBuilder.Entity("API.Schema.MangaConnectors.ComickIo", b => { b.HasBaseType("API.Schema.MangaConnectors.MangaConnector"); b.HasDiscriminator().HasValue("ComickIo"); }); modelBuilder.Entity("API.Schema.MangaConnectors.Global", b => { b.HasBaseType("API.Schema.MangaConnectors.MangaConnector"); b.HasDiscriminator().HasValue("Global"); }); modelBuilder.Entity("API.Schema.MangaConnectors.MangaDex", b => { b.HasBaseType("API.Schema.MangaConnectors.MangaConnector"); b.HasDiscriminator().HasValue("MangaDex"); }); modelBuilder.Entity("API.Schema.Chapter", b => { b.HasOne("API.Schema.Manga", "ParentManga") .WithMany("Chapters") .HasForeignKey("ParentMangaId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("ParentManga"); }); modelBuilder.Entity("API.Schema.Jobs.Job", b => { b.HasOne("API.Schema.Jobs.Job", "ParentJob") .WithMany() .HasForeignKey("ParentJobId") .OnDelete(DeleteBehavior.Cascade); b.Navigation("ParentJob"); }); modelBuilder.Entity("API.Schema.Manga", b => { b.HasOne("API.Schema.LocalLibrary", "Library") .WithMany() .HasForeignKey("LibraryId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("API.Schema.MangaConnectors.MangaConnector", "MangaConnector") .WithMany() .HasForeignKey("MangaConnectorName") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.OwnsMany("API.Schema.Link", "Links", b1 => { b1.Property<string>("LinkId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b1.Property<string>("LinkProvider") .IsRequired() .HasMaxLength(64) .HasColumnType("character varying(64)"); b1.Property<string>("LinkUrl") .IsRequired() .HasMaxLength(2048) .HasColumnType("character varying(2048)"); b1.Property<string>("MangaId") .IsRequired() .HasColumnType("character varying(64)"); b1.HasKey("LinkId"); b1.HasIndex("MangaId"); b1.ToTable("Link"); b1.WithOwner() .HasForeignKey("MangaId"); }); b.OwnsMany("API.Schema.MangaAltTitle", "AltTitles", b1 => { b1.Property<string>("AltTitleId") .HasMaxLength(64) .HasColumnType("character varying(64)"); b1.Property<string>("Language") .IsRequired() .HasMaxLength(8) .HasColumnType("character varying(8)"); b1.Property<string>("MangaId") .IsRequired() .HasColumnType("character varying(64)"); b1.Property<string>("Title") .IsRequired() .HasMaxLength(256) .HasColumnType("character varying(256)"); b1.HasKey("AltTitleId"); b1.HasIndex("MangaId"); b1.ToTable("MangaAltTitle"); b1.WithOwner() .HasForeignKey("MangaId"); }); b.Navigation("AltTitles"); b.Navigation("Library"); b.Navigation("Links"); b.Navigation("MangaConnector"); }); modelBuilder.Entity("AuthorToManga", b => { b.HasOne("API.Schema.Author", null) .WithMany() .HasForeignKey("AuthorIds") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Schema.Manga", null) .WithMany() .HasForeignKey("MangaIds") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("JobJob", b => { b.HasOne("API.Schema.Jobs.Job", null) .WithMany() .HasForeignKey("DependsOnJobsJobId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Schema.Jobs.Job", null) .WithMany() .HasForeignKey("JobId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("MangaTagToManga", b => { b.HasOne("API.Schema.Manga", null) .WithMany() .HasForeignKey("MangaIds") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Schema.MangaTag", null) .WithMany() .HasForeignKey("MangaTagIds") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("API.Schema.Jobs.DownloadAvailableChaptersJob", b => { b.HasOne("API.Schema.Manga", "Manga") .WithMany() .HasForeignKey("MangaId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Manga"); }); modelBuilder.Entity("API.Schema.Jobs.DownloadMangaCoverJob", b => { b.HasOne("API.Schema.Manga", "Manga") .WithMany() .HasForeignKey("MangaId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Manga"); }); modelBuilder.Entity("API.Schema.Jobs.DownloadSingleChapterJob", b => { b.HasOne("API.Schema.Chapter", "Chapter") .WithMany() .HasForeignKey("ChapterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Chapter"); }); modelBuilder.Entity("API.Schema.Jobs.MoveMangaLibraryJob", b => { b.HasOne("API.Schema.Manga", "Manga") .WithMany() .HasForeignKey("MangaId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("API.Schema.LocalLibrary", "ToLibrary") .WithMany() .HasForeignKey("ToLibraryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Manga"); b.Navigation("ToLibrary"); }); modelBuilder.Entity("API.Schema.Jobs.RetrieveChaptersJob", b => { b.HasOne("API.Schema.Manga", "Manga") .WithMany() .HasForeignKey("MangaId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Manga"); }); modelBuilder.Entity("API.Schema.Jobs.UpdateChaptersDownloadedJob", b => { b.HasOne("API.Schema.Manga", "Manga") .WithMany() .HasForeignKey("MangaId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Manga"); }); modelBuilder.Entity("API.Schema.Jobs.UpdateCoverJob", b => { b.HasOne("API.Schema.Manga", "Manga") .WithMany() .HasForeignKey("MangaId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Manga"); }); modelBuilder.Entity("API.Schema.Jobs.UpdateSingleChapterDownloadedJob", b => { b.HasOne("API.Schema.Chapter", "Chapter") .WithMany() .HasForeignKey("ChapterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Chapter"); }); modelBuilder.Entity("API.Schema.Manga", b => { b.Navigation("Chapters"); }); #pragma warning restore 612, 618 } } }