// using System; using ChapterX.Infrastructure.Data.DataContext; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace ChapterX.Infrastructure.Migrations { [DbContext(typeof(ApplicationDbContext))] partial class ApplicationDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("ChapterX.Domain.Entities.AISuggestion", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Accepted") .HasColumnType("boolean"); b.Property("AppliedAt") .HasColumnType("timestamp with time zone"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("OriginalText") .IsRequired() .HasColumnType("text"); b.Property("StoryId") .HasColumnType("integer"); b.Property("SuggestedText") .IsRequired() .HasColumnType("text"); b.PrimitiveCollection("SuggestionTypes") .IsRequired() .HasColumnType("integer[]"); b.HasKey("Id"); b.HasIndex("StoryId"); b.ToTable("AISuggestions", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Admin", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("UserId") .IsUnique(); b.ToTable("Admins", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Chapter", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Content") .IsRequired() .HasColumnType("text"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("Number") .HasColumnType("integer"); b.Property("PublishedAt") .HasColumnType("timestamp with time zone"); b.Property("Rating") .HasColumnType("numeric"); b.Property("StoryId") .HasColumnType("integer"); b.Property("Title") .IsRequired() .HasColumnType("text"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property("ViewCount") .HasColumnType("integer"); b.Property("WordCount") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("StoryId"); b.ToTable("Chapters", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Collaboration", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("JoinedAt") .HasColumnType("timestamp with time zone"); b.Property("Role") .IsRequired() .HasColumnType("text"); b.Property("StoryId") .HasColumnType("integer"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("StoryId"); b.HasIndex("UserId"); b.ToTable("Collaborations", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Comment", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Content") .IsRequired() .HasColumnType("text"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("StoryId") .HasColumnType("integer"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("StoryId"); b.HasIndex("UserId"); b.ToTable("Comments", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Genre", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Name") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Genres", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.HasGenre", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("GenreId") .HasColumnType("integer"); b.Property("StoryId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("GenreId"); b.HasIndex("StoryId"); b.ToTable("HasGenres", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Likes", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ChapterId") .HasColumnType("integer"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("StoryId") .HasColumnType("integer"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("ChapterId"); b.HasIndex("StoryId"); b.HasIndex("UserId"); b.ToTable("Likes", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.NeedApproval", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AISuggestionId") .HasColumnType("integer"); b.Property("AdminId") .HasColumnType("integer"); b.Property("Approved") .HasColumnType("boolean"); b.Property("ChapterId") .HasColumnType("integer"); b.Property("RequestedAt") .HasColumnType("timestamp with time zone"); b.Property("StoryId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("AISuggestionId"); b.HasIndex("AdminId"); b.HasIndex("ChapterId"); b.HasIndex("StoryId"); b.ToTable("NeedApprovals", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Notification", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Content") .IsRequired() .HasColumnType("text"); b.PrimitiveCollection("ContentTypes") .IsRequired() .HasColumnType("integer[]"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("IsRead") .HasColumnType("boolean"); b.HasKey("Id"); b.ToTable("Notifications", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Notify", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("IsRead") .HasColumnType("boolean"); b.Property("NotificationId") .HasColumnType("integer"); b.Property("StoryId") .HasColumnType("integer"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("NotificationId"); b.HasIndex("StoryId"); b.HasIndex("UserId"); b.ToTable("Notifies", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.ReadingList", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Content") .HasColumnType("text"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("IsPublic") .HasColumnType("boolean"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("ReadingLists", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.ReadingListItems", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AddedAt") .HasColumnType("timestamp with time zone"); b.Property("ReadingListId") .HasColumnType("integer"); b.Property("StoryId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("ReadingListId"); b.HasIndex("StoryId"); b.ToTable("ReadingListItems", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.RegularUser", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("UserId") .IsUnique(); b.ToTable("RegularUsers", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Story", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Content") .IsRequired() .HasColumnType("text"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Image") .HasColumnType("text"); b.Property("MatureContent") .HasColumnType("boolean"); b.Property("ShortDescription") .IsRequired() .HasColumnType("text"); b.PrimitiveCollection("Statuses") .IsRequired() .HasColumnType("integer[]"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property("UserId") .HasColumnType("integer"); b.Property("WriterId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("WriterId"); b.ToTable("Stories", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("Email") .IsRequired() .HasColumnType("text"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("Password") .IsRequired() .HasColumnType("text"); b.Property("Surname") .IsRequired() .HasColumnType("text"); b.Property("UpdatedAt") .HasColumnType("timestamp with time zone"); b.Property("Username") .IsRequired() .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Users", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.Writer", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Bio") .IsRequired() .HasColumnType("text"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("UserId") .IsUnique(); b.ToTable("Writers", (string)null); }); modelBuilder.Entity("ChapterX.Domain.Entities.AISuggestion", b => { b.HasOne("ChapterX.Domain.Entities.Story", "Story") .WithMany("AISuggestions") .HasForeignKey("StoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Story"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Admin", b => { b.HasOne("ChapterX.Domain.Entities.User", "User") .WithOne("Admin") .HasForeignKey("ChapterX.Domain.Entities.Admin", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Chapter", b => { b.HasOne("ChapterX.Domain.Entities.Story", "Story") .WithMany("Chapters") .HasForeignKey("StoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Story"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Collaboration", b => { b.HasOne("ChapterX.Domain.Entities.Story", "Story") .WithMany("Collaborations") .HasForeignKey("StoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ChapterX.Domain.Entities.User", "User") .WithMany("Collaborations") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Story"); b.Navigation("User"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Comment", b => { b.HasOne("ChapterX.Domain.Entities.Story", "Story") .WithMany("Comments") .HasForeignKey("StoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ChapterX.Domain.Entities.User", "User") .WithMany("Comments") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Story"); b.Navigation("User"); }); modelBuilder.Entity("ChapterX.Domain.Entities.HasGenre", b => { b.HasOne("ChapterX.Domain.Entities.Genre", "Genre") .WithMany("HasGenres") .HasForeignKey("GenreId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ChapterX.Domain.Entities.Story", "Story") .WithMany("HasGenres") .HasForeignKey("StoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Genre"); b.Navigation("Story"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Likes", b => { b.HasOne("ChapterX.Domain.Entities.Chapter", "Chapter") .WithMany() .HasForeignKey("ChapterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ChapterX.Domain.Entities.Story", null) .WithMany("Likes") .HasForeignKey("StoryId"); b.HasOne("ChapterX.Domain.Entities.User", "User") .WithMany("Likes") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Chapter"); b.Navigation("User"); }); modelBuilder.Entity("ChapterX.Domain.Entities.NeedApproval", b => { b.HasOne("ChapterX.Domain.Entities.AISuggestion", null) .WithMany("NeedApprovals") .HasForeignKey("AISuggestionId"); b.HasOne("ChapterX.Domain.Entities.Admin", "Admin") .WithMany() .HasForeignKey("AdminId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ChapterX.Domain.Entities.Chapter", null) .WithMany("NeedApprovals") .HasForeignKey("ChapterId"); b.HasOne("ChapterX.Domain.Entities.Story", "Story") .WithMany("NeedApprovals") .HasForeignKey("StoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Admin"); b.Navigation("Story"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Notify", b => { b.HasOne("ChapterX.Domain.Entities.Notification", "Notification") .WithMany("Notifies") .HasForeignKey("NotificationId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ChapterX.Domain.Entities.Story", null) .WithMany("Notifies") .HasForeignKey("StoryId"); b.HasOne("ChapterX.Domain.Entities.User", "User") .WithMany("Notifies") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Notification"); b.Navigation("User"); }); modelBuilder.Entity("ChapterX.Domain.Entities.ReadingList", b => { b.HasOne("ChapterX.Domain.Entities.User", "User") .WithMany("ReadingLists") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("ChapterX.Domain.Entities.ReadingListItems", b => { b.HasOne("ChapterX.Domain.Entities.ReadingList", "ReadingList") .WithMany("ReadingListItems") .HasForeignKey("ReadingListId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("ChapterX.Domain.Entities.Story", "Story") .WithMany("ReadingListItems") .HasForeignKey("StoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("ReadingList"); b.Navigation("Story"); }); modelBuilder.Entity("ChapterX.Domain.Entities.RegularUser", b => { b.HasOne("ChapterX.Domain.Entities.User", "User") .WithOne("RegularUser") .HasForeignKey("ChapterX.Domain.Entities.RegularUser", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Story", b => { b.HasOne("ChapterX.Domain.Entities.Writer", "Writer") .WithMany("Stories") .HasForeignKey("WriterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Writer"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Writer", b => { b.HasOne("ChapterX.Domain.Entities.User", "User") .WithOne("Writer") .HasForeignKey("ChapterX.Domain.Entities.Writer", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("ChapterX.Domain.Entities.AISuggestion", b => { b.Navigation("NeedApprovals"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Chapter", b => { b.Navigation("NeedApprovals"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Genre", b => { b.Navigation("HasGenres"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Notification", b => { b.Navigation("Notifies"); }); modelBuilder.Entity("ChapterX.Domain.Entities.ReadingList", b => { b.Navigation("ReadingListItems"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Story", b => { b.Navigation("AISuggestions"); b.Navigation("Chapters"); b.Navigation("Collaborations"); b.Navigation("Comments"); b.Navigation("HasGenres"); b.Navigation("Likes"); b.Navigation("NeedApprovals"); b.Navigation("Notifies"); b.Navigation("ReadingListItems"); }); modelBuilder.Entity("ChapterX.Domain.Entities.User", b => { b.Navigation("Admin"); b.Navigation("Collaborations"); b.Navigation("Comments"); b.Navigation("Likes"); b.Navigation("Notifies"); b.Navigation("ReadingLists"); b.Navigation("RegularUser"); b.Navigation("Writer"); }); modelBuilder.Entity("ChapterX.Domain.Entities.Writer", b => { b.Navigation("Stories"); }); #pragma warning restore 612, 618 } } }