// using System; using FictionArchive.Service.UserNovelDataService.Services; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using NodaTime; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace FictionArchive.Service.UserNovelDataService.Migrations { [DbContext(typeof(UserNovelDataServiceDbContext))] [Migration("20260120014840_AddReadingLists")] partial class AddReadingLists { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.11") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.Bookmark", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ChapterId") .HasColumnType("bigint"); b.Property("CreatedTime") .HasColumnType("timestamp with time zone"); b.Property("Description") .HasColumnType("text"); b.Property("LastUpdatedTime") .HasColumnType("timestamp with time zone"); b.Property("NovelId") .HasColumnType("bigint"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("UserId", "ChapterId") .IsUnique(); b.HasIndex("UserId", "NovelId"); b.ToTable("Bookmarks"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.Chapter", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedTime") .HasColumnType("timestamp with time zone"); b.Property("LastUpdatedTime") .HasColumnType("timestamp with time zone"); b.Property("VolumeId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("VolumeId"); b.ToTable("Chapters"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.Novel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedTime") .HasColumnType("timestamp with time zone"); b.Property("LastUpdatedTime") .HasColumnType("timestamp with time zone"); b.HasKey("Id"); b.ToTable("Novels"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.ReadingList", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedTime") .HasColumnType("timestamp with time zone"); b.Property("Description") .HasColumnType("text"); b.Property("LastUpdatedTime") .HasColumnType("timestamp with time zone"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UserId") .HasColumnType("uuid"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("ReadingLists"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.ReadingListItem", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedTime") .HasColumnType("timestamp with time zone"); b.Property("LastUpdatedTime") .HasColumnType("timestamp with time zone"); b.Property("NovelId") .HasColumnType("bigint"); b.Property("Order") .HasColumnType("integer"); b.Property("ReadingListId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("ReadingListId", "NovelId") .IsUnique(); b.HasIndex("ReadingListId", "Order"); b.ToTable("ReadingListItems"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uuid"); b.Property("CreatedTime") .HasColumnType("timestamp with time zone"); b.Property("LastUpdatedTime") .HasColumnType("timestamp with time zone"); b.Property("OAuthProviderId") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Users"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.Volume", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedTime") .HasColumnType("timestamp with time zone"); b.Property("LastUpdatedTime") .HasColumnType("timestamp with time zone"); b.Property("NovelId") .HasColumnType("bigint"); b.HasKey("Id"); b.HasIndex("NovelId"); b.ToTable("Volumes"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.Bookmark", b => { b.HasOne("FictionArchive.Service.UserNovelDataService.Models.Database.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.Chapter", b => { b.HasOne("FictionArchive.Service.UserNovelDataService.Models.Database.Volume", "Volume") .WithMany("Chapters") .HasForeignKey("VolumeId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Volume"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.ReadingList", b => { b.HasOne("FictionArchive.Service.UserNovelDataService.Models.Database.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.ReadingListItem", b => { b.HasOne("FictionArchive.Service.UserNovelDataService.Models.Database.ReadingList", "ReadingList") .WithMany("Items") .HasForeignKey("ReadingListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("ReadingList"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.Volume", b => { b.HasOne("FictionArchive.Service.UserNovelDataService.Models.Database.Novel", "Novel") .WithMany("Volumes") .HasForeignKey("NovelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Novel"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.Novel", b => { b.Navigation("Volumes"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.ReadingList", b => { b.Navigation("Items"); }); modelBuilder.Entity("FictionArchive.Service.UserNovelDataService.Models.Database.Volume", b => { b.Navigation("Chapters"); }); #pragma warning restore 612, 618 } } }