//
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using PageManager.Api.Data;
#nullable disable
namespace PageManager.Api.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260315185207_PendingMigration")]
partial class PendingMigration
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.4")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("PageManager.Api.Data.Models.Author", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("Name")
.IsRequired()
.HasColumnType("text")
.HasColumnName("name");
b.HasKey("Id")
.HasName("pk_authors");
b.ToTable("authors", (string)null);
});
modelBuilder.Entity("PageManager.Api.Data.Models.Book", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("Color")
.IsRequired()
.HasColumnType("text")
.HasColumnName("color");
b.Property("CoverUrl")
.HasColumnType("text")
.HasColumnName("cover_url");
b.Property("Description")
.HasColumnType("text")
.HasColumnName("description");
b.PrimitiveCollection("Formats")
.IsRequired()
.HasColumnType("text[]")
.HasColumnName("formats");
b.PrimitiveCollection("Genres")
.IsRequired()
.HasColumnType("text[]")
.HasColumnName("genres");
b.Property("HardcoverId")
.HasColumnType("integer")
.HasColumnName("hardcover_id");
b.Property("Isbn")
.HasColumnType("text")
.HasColumnName("isbn");
b.Property("Pages")
.HasColumnType("integer")
.HasColumnName("pages");
b.Property("Publisher")
.HasColumnType("text")
.HasColumnName("publisher");
b.Property("Title")
.IsRequired()
.HasColumnType("text")
.HasColumnName("title");
b.Property("Year")
.HasColumnType("integer")
.HasColumnName("year");
b.HasKey("Id")
.HasName("pk_books");
b.HasIndex("HardcoverId")
.HasDatabaseName("ix_books_hardcover_id");
b.HasIndex("Isbn")
.HasDatabaseName("ix_books_isbn");
b.ToTable("books", (string)null);
});
modelBuilder.Entity("PageManager.Api.Data.Models.BookAuthor", b =>
{
b.Property("BookId")
.HasColumnType("integer")
.HasColumnName("book_id");
b.Property("AuthorId")
.HasColumnType("integer")
.HasColumnName("author_id");
b.Property("Role")
.IsRequired()
.HasColumnType("text")
.HasColumnName("role");
b.HasKey("BookId", "AuthorId")
.HasName("pk_book_authors");
b.HasIndex("AuthorId")
.HasDatabaseName("ix_book_authors_author_id");
b.ToTable("book_authors", (string)null);
});
modelBuilder.Entity("PageManager.Api.Data.Models.ImportQueueItem", b =>
{
b.Property("Id")
.HasColumnType("text")
.HasColumnName("id");
b.Property("DownloadedBytes")
.HasColumnType("bigint")
.HasColumnName("downloaded_bytes");
b.Property("Error")
.HasColumnType("text")
.HasColumnName("error");
b.Property("Filename")
.IsRequired()
.HasColumnType("text")
.HasColumnName("filename");
b.Property("SizeBytes")
.HasColumnType("bigint")
.HasColumnName("size_bytes");
b.Property("Source")
.IsRequired()
.HasColumnType("text")
.HasColumnName("source");
b.Property("Status")
.IsRequired()
.HasColumnType("text")
.HasColumnName("status");
b.HasKey("Id")
.HasName("pk_import_queue_items");
b.ToTable("import_queue_items", (string)null);
});
modelBuilder.Entity("PageManager.Api.Data.Models.ImportSource", b =>
{
b.Property("Id")
.HasColumnType("text")
.HasColumnName("id");
b.Property("Enabled")
.HasColumnType("boolean")
.HasColumnName("enabled");
b.Property("Name")
.IsRequired()
.HasColumnType("text")
.HasColumnName("name");
b.Property("Path")
.IsRequired()
.HasColumnType("text")
.HasColumnName("path");
b.Property("Type")
.IsRequired()
.HasColumnType("text")
.HasColumnName("type");
b.HasKey("Id")
.HasName("pk_import_sources");
b.ToTable("import_sources", (string)null);
});
modelBuilder.Entity("PageManager.Api.Data.Models.Series", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasColumnName("id");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
b.Property("Name")
.IsRequired()
.HasColumnType("text")
.HasColumnName("name");
b.Property("Type")
.IsRequired()
.HasColumnType("text")
.HasColumnName("type");
b.HasKey("Id")
.HasName("pk_series");
b.ToTable("series", (string)null);
});
modelBuilder.Entity("PageManager.Api.Data.Models.SeriesEntry", b =>
{
b.Property("SeriesId")
.HasColumnType("integer")
.HasColumnName("series_id");
b.Property("BookId")
.HasColumnType("integer")
.HasColumnName("book_id");
b.Property("Arc")
.HasColumnType("text")
.HasColumnName("arc");
b.Property("Position")
.HasColumnType("double precision")
.HasColumnName("position");
b.HasKey("SeriesId", "BookId")
.HasName("pk_series_entries");
b.HasIndex("BookId")
.HasDatabaseName("ix_series_entries_book_id");
b.ToTable("series_entries", (string)null);
});
modelBuilder.Entity("PageManager.Api.Data.Models.BookAuthor", b =>
{
b.HasOne("PageManager.Api.Data.Models.Author", "Author")
.WithMany("BookAuthors")
.HasForeignKey("AuthorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_book_authors_authors_author_id");
b.HasOne("PageManager.Api.Data.Models.Book", "Book")
.WithMany("BookAuthors")
.HasForeignKey("BookId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_book_authors_books_book_id");
b.Navigation("Author");
b.Navigation("Book");
});
modelBuilder.Entity("PageManager.Api.Data.Models.SeriesEntry", b =>
{
b.HasOne("PageManager.Api.Data.Models.Book", "Book")
.WithMany("SeriesEntries")
.HasForeignKey("BookId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_series_entries_books_book_id");
b.HasOne("PageManager.Api.Data.Models.Series", "Series")
.WithMany("Entries")
.HasForeignKey("SeriesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_series_entries_series_series_id");
b.Navigation("Book");
b.Navigation("Series");
});
modelBuilder.Entity("PageManager.Api.Data.Models.Author", b =>
{
b.Navigation("BookAuthors");
});
modelBuilder.Entity("PageManager.Api.Data.Models.Book", b =>
{
b.Navigation("BookAuthors");
b.Navigation("SeriesEntries");
});
modelBuilder.Entity("PageManager.Api.Data.Models.Series", b =>
{
b.Navigation("Entries");
});
#pragma warning restore 612, 618
}
}
}