// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Novelly.Api.Data; #nullable disable namespace Novelly.Api.Data.Migrations { [DbContext(typeof(NovelDbContext))] [Migration("20260818180738_RenameSettingToLocations")] partial class RenameSettingToLocations { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder.HasAnnotation("ProductVersion", "10.0.10"); modelBuilder.Entity("BeatCharacter", b => { b.Property("BeatsId") .HasColumnType("TEXT"); b.Property("CharactersId") .HasColumnType("TEXT"); b.HasKey("BeatsId", "CharactersId"); b.HasIndex("CharactersId"); b.ToTable("BeatCharacters", (string)null); }); modelBuilder.Entity("BeatCharacterArcStage", b => { b.Property("ArcStagesId") .HasColumnType("TEXT"); b.Property("BeatsId") .HasColumnType("TEXT"); b.HasKey("ArcStagesId", "BeatsId"); b.HasIndex("BeatsId"); b.ToTable("ArcStageBeats", (string)null); }); modelBuilder.Entity("BeatTag", b => { b.Property("BeatsId") .HasColumnType("TEXT"); b.Property("TagsId") .HasColumnType("TEXT"); b.HasKey("BeatsId", "TagsId"); b.HasIndex("TagsId"); b.ToTable("BeatTags", (string)null); }); modelBuilder.Entity("ChapterLocation", b => { b.Property("ChaptersId") .HasColumnType("TEXT"); b.Property("LocationsId") .HasColumnType("TEXT"); b.HasKey("ChaptersId", "LocationsId"); b.HasIndex("LocationsId"); b.ToTable("ChapterLocations", (string)null); }); modelBuilder.Entity("ChapterTag", b => { b.Property("ChaptersId") .HasColumnType("TEXT"); b.Property("TagsId") .HasColumnType("TEXT"); b.HasKey("ChaptersId", "TagsId"); b.HasIndex("TagsId"); b.ToTable("ChapterTags", (string)null); }); modelBuilder.Entity("CharacterTag", b => { b.Property("CharactersId") .HasColumnType("TEXT"); b.Property("TagsId") .HasColumnType("TEXT"); b.HasKey("CharactersId", "TagsId"); b.HasIndex("TagsId"); b.ToTable("CharacterTags", (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("TEXT"); 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("TEXT"); b.HasKey("LoginProvider", "ProviderKey"); b.HasIndex("UserId"); b.ToTable("AspNetUserLogins", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.Property("UserId") .HasColumnType("TEXT"); 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("Novelly.Api.Agent.AgentConversation", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("NovelId") .HasColumnType("TEXT"); b.Property("Title") .IsRequired() .HasMaxLength(200) .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("NovelId"); b.ToTable("Conversations"); }); modelBuilder.Entity("Novelly.Api.Agent.AgentMessage", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Content") .IsRequired() .HasColumnType("TEXT"); b.Property("ConversationId") .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("Role") .IsRequired() .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("Sequence") .HasColumnType("INTEGER"); b.Property("ToolCallsJson") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("ConversationId", "Sequence") .IsUnique(); b.ToTable("AgentMessages"); }); modelBuilder.Entity("Novelly.Api.Beats.Beat", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("ChapterId") .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("SortOrder") .HasColumnType("INTEGER"); b.Property("Title") .IsRequired() .HasMaxLength(200) .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.Property("WhatHappened") .HasColumnType("TEXT"); b.Property("WhatsNext") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("ChapterId", "SortOrder"); b.ToTable("Beats"); }); modelBuilder.Entity("Novelly.Api.Chapters.Chapter", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("Notes") .HasColumnType("TEXT"); b.Property("NovelId") .HasColumnType("TEXT"); b.Property("Number") .HasColumnType("INTEGER"); b.Property("Prose") .HasColumnType("TEXT"); b.Property("Status") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("Summary") .HasColumnType("TEXT"); b.Property("TargetWordCount") .HasColumnType("INTEGER"); b.Property("Title") .IsRequired() .HasMaxLength(300) .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.Property("WordCount") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("NovelId", "Number"); b.ToTable("Chapters"); }); modelBuilder.Entity("Novelly.Api.Characters.Character", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Age") .HasColumnType("TEXT"); b.PrimitiveCollection("Aliases") .IsRequired() .HasColumnType("TEXT"); b.Property("Appearance") .HasColumnType("TEXT"); b.Property("ArcSummary") .HasColumnType("TEXT"); b.Property("Backstory") .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("ExternalConflict") .HasColumnType("TEXT"); b.Property("IdentityNote") .HasColumnType("TEXT"); b.Property("Importance") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("InternalConflict") .HasColumnType("TEXT"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("TEXT"); b.Property("Need") .HasColumnType("TEXT"); b.Property("Notes") .HasColumnType("TEXT"); b.Property("NovelId") .HasColumnType("TEXT"); b.Property("Occupation") .HasColumnType("TEXT"); b.Property("Personality") .HasColumnType("TEXT"); b.Property("Pronouns") .HasColumnType("TEXT"); b.Property("RevealedInChapterId") .HasColumnType("TEXT"); b.Property("Role") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("SameCharacterAsId") .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.Property("Voice") .HasColumnType("TEXT"); b.Property("Want") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("NovelId"); b.HasIndex("RevealedInChapterId"); b.HasIndex("SameCharacterAsId"); b.ToTable("Characters"); }); modelBuilder.Entity("Novelly.Api.Characters.CharacterArcStage", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("ChapterId") .HasColumnType("TEXT"); b.Property("CharacterId") .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("Result") .HasColumnType("TEXT"); b.Property("SortOrder") .HasColumnType("INTEGER"); b.Property("Title") .IsRequired() .HasMaxLength(200) .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("ChapterId"); b.HasIndex("CharacterId", "SortOrder"); b.ToTable("CharacterArcStages"); }); modelBuilder.Entity("Novelly.Api.Characters.CharacterRelationship", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("CharacterId") .HasColumnType("TEXT"); b.Property("Description") .HasColumnType("TEXT"); b.Property("RelatedCharacterId") .HasColumnType("TEXT"); b.Property("RelationshipType") .IsRequired() .HasMaxLength(120) .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("CharacterId"); b.HasIndex("RelatedCharacterId"); b.ToTable("CharacterRelationships"); }); modelBuilder.Entity("Novelly.Api.Genres.Genre", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("Name") .IsUnique(); b.ToTable("Genres"); b.HasData( new { Id = new Guid("b89aadb3-ee96-5a33-897d-94946b037f96"), Name = "Adventure" }, new { Id = new Guid("1295b746-5de1-5724-aab8-186d4220c84f"), Name = "Contemporary Fiction" }, new { Id = new Guid("786d6d01-be6c-5dff-ab53-17081d2979ed"), Name = "Crime" }, new { Id = new Guid("800eea0a-52cb-5e03-8b6f-5e1ceaec8554"), Name = "Dystopian" }, new { Id = new Guid("8dbe0291-1ab6-5045-b327-00f2025a7b0a"), Name = "Fantasy" }, new { Id = new Guid("93face5a-9a61-5d63-9a8d-7fd5d49eab7d"), Name = "Historical Fiction" }, new { Id = new Guid("4eba456f-b706-5f1f-bfc9-5d32cab0da62"), Name = "Horror" }, new { Id = new Guid("d49c5adf-3ed9-5bc9-8652-1f7a9a098ecb"), Name = "Literary Fiction" }, new { Id = new Guid("f72c6437-c8e7-519f-8d35-5aefeebbff9e"), Name = "Magical Realism" }, new { Id = new Guid("1b670010-b4cc-5b22-a879-d36eb1bf3429"), Name = "Memoir" }, new { Id = new Guid("03063bbf-de5d-5dd0-af06-0ee939de58bc"), Name = "Middle Grade" }, new { Id = new Guid("c22ed045-52e5-54b0-8cdd-cd1d6a699c19"), Name = "Mystery" }, new { Id = new Guid("abe2e8bc-a35e-5a30-a07f-7ae30a00d838"), Name = "Non-Fiction" }, new { Id = new Guid("f8543db0-c519-56a0-996a-c6028176e57e"), Name = "Poetry" }, new { Id = new Guid("b6251b9e-63a1-563f-94c0-834162fb580b"), Name = "Romance" }, new { Id = new Guid("4f188842-488e-567a-b31d-831e0c551fa5"), Name = "Science Fiction" }, new { Id = new Guid("ae67fc84-1ed9-55ae-8c9f-8a37adb52b57"), Name = "Thriller" }, new { Id = new Guid("37956a94-e9c4-5d29-abbc-f121d687f997"), Name = "Young Adult" }); }); modelBuilder.Entity("Novelly.Api.Imports.ImportJob", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("ChaptersCompleted") .HasColumnType("INTEGER"); b.Property("ChaptersTotal") .HasColumnType("INTEGER"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("NovelId") .HasColumnType("TEXT"); b.Property("RequestedByUserId") .HasColumnType("TEXT"); b.Property("SourceRoot") .IsRequired() .HasMaxLength(1000) .HasColumnType("TEXT"); b.Property("Status") .IsRequired() .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("StatusMessage") .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("SourceRoot"); b.ToTable("ImportJobs"); }); modelBuilder.Entity("Novelly.Api.Locations.Location", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("Name") .IsRequired() .HasMaxLength(120) .HasColumnType("TEXT"); b.Property("NovelId") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("NovelId", "Name") .IsUnique(); b.ToTable("Locations"); }); modelBuilder.Entity("Novelly.Api.Novels.Novel", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Author") .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("Genre") .HasColumnType("TEXT"); b.Property("Logline") .HasColumnType("TEXT"); b.Property("Notes") .HasColumnType("TEXT"); b.Property("OwnerId") .HasColumnType("TEXT"); b.Property("Phase") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("Synopsis") .HasColumnType("TEXT"); b.Property("TargetWordCount") .HasColumnType("INTEGER"); b.Property("Title") .IsRequired() .HasMaxLength(300) .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("OwnerId"); b.ToTable("Novels"); }); modelBuilder.Entity("Novelly.Api.Questions.OpenQuestion", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("ChapterId") .HasColumnType("TEXT"); b.Property("CharacterId") .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("Detail") .HasColumnType("TEXT"); b.Property("NovelId") .HasColumnType("TEXT"); b.Property("Question") .IsRequired() .HasMaxLength(500) .HasColumnType("TEXT"); b.Property("Resolution") .HasColumnType("TEXT"); b.Property("ResolvedAt") .HasColumnType("INTEGER"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("ChapterId"); b.HasIndex("CharacterId"); b.HasIndex("NovelId"); b.ToTable("OpenQuestions"); }); modelBuilder.Entity("Novelly.Api.Tags.Tag", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Color") .HasMaxLength(16) .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("Name") .IsRequired() .HasMaxLength(64) .HasColumnType("TEXT"); b.Property("NovelId") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("NovelId", "Name") .IsUnique(); b.ToTable("Tags"); }); modelBuilder.Entity("Novelly.Api.Users.NovelMember", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("GrantedAt") .HasColumnType("INTEGER"); b.Property("GrantedByUserId") .HasColumnType("TEXT"); b.Property("NovelId") .HasColumnType("TEXT"); b.Property("NovelRole") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("UserId") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("UserId"); b.HasIndex("NovelId", "UserId") .IsUnique(); b.ToTable("NovelMembers"); }); modelBuilder.Entity("Novelly.Api.Users.NovellyUser", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("AccessFailedCount") .HasColumnType("INTEGER"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("DisplayName") .IsRequired() .HasMaxLength(200) .HasColumnType("TEXT"); b.Property("Email") .HasMaxLength(256) .HasColumnType("TEXT"); b.Property("EmailConfirmed") .HasColumnType("INTEGER"); b.Property("GlobalRole") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("LockoutEnabled") .HasColumnType("INTEGER"); b.Property("LockoutEnd") .HasColumnType("INTEGER"); 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("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("BeatCharacter", b => { b.HasOne("Novelly.Api.Beats.Beat", null) .WithMany() .HasForeignKey("BeatsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Characters.Character", null) .WithMany() .HasForeignKey("CharactersId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("BeatCharacterArcStage", b => { b.HasOne("Novelly.Api.Characters.CharacterArcStage", null) .WithMany() .HasForeignKey("ArcStagesId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Beats.Beat", null) .WithMany() .HasForeignKey("BeatsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("BeatTag", b => { b.HasOne("Novelly.Api.Beats.Beat", null) .WithMany() .HasForeignKey("BeatsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Tags.Tag", null) .WithMany() .HasForeignKey("TagsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ChapterLocation", b => { b.HasOne("Novelly.Api.Chapters.Chapter", null) .WithMany() .HasForeignKey("ChaptersId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Locations.Location", null) .WithMany() .HasForeignKey("LocationsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("ChapterTag", b => { b.HasOne("Novelly.Api.Chapters.Chapter", null) .WithMany() .HasForeignKey("ChaptersId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Tags.Tag", null) .WithMany() .HasForeignKey("TagsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("CharacterTag", b => { b.HasOne("Novelly.Api.Characters.Character", null) .WithMany() .HasForeignKey("CharactersId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Tags.Tag", null) .WithMany() .HasForeignKey("TagsId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.HasOne("Novelly.Api.Users.NovellyUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.HasOne("Novelly.Api.Users.NovellyUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.HasOne("Novelly.Api.Users.NovellyUser", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Novelly.Api.Agent.AgentConversation", b => { b.HasOne("Novelly.Api.Novels.Novel", "Novel") .WithMany("Conversations") .HasForeignKey("NovelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Novel"); }); modelBuilder.Entity("Novelly.Api.Agent.AgentMessage", b => { b.HasOne("Novelly.Api.Agent.AgentConversation", "Conversation") .WithMany("Messages") .HasForeignKey("ConversationId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Conversation"); }); modelBuilder.Entity("Novelly.Api.Beats.Beat", b => { b.HasOne("Novelly.Api.Chapters.Chapter", "Chapter") .WithMany("Beats") .HasForeignKey("ChapterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Chapter"); }); modelBuilder.Entity("Novelly.Api.Chapters.Chapter", b => { b.HasOne("Novelly.Api.Novels.Novel", "Novel") .WithMany("Chapters") .HasForeignKey("NovelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Novel"); }); modelBuilder.Entity("Novelly.Api.Characters.Character", b => { b.HasOne("Novelly.Api.Novels.Novel", "Novel") .WithMany("Characters") .HasForeignKey("NovelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Chapters.Chapter", "RevealedInChapter") .WithMany() .HasForeignKey("RevealedInChapterId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Novelly.Api.Characters.Character", "SameCharacterAs") .WithMany("OtherIdentities") .HasForeignKey("SameCharacterAsId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("Novel"); b.Navigation("RevealedInChapter"); b.Navigation("SameCharacterAs"); }); modelBuilder.Entity("Novelly.Api.Characters.CharacterArcStage", b => { b.HasOne("Novelly.Api.Chapters.Chapter", "Chapter") .WithMany() .HasForeignKey("ChapterId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Novelly.Api.Characters.Character", "Character") .WithMany("ArcStages") .HasForeignKey("CharacterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Chapter"); b.Navigation("Character"); }); modelBuilder.Entity("Novelly.Api.Characters.CharacterRelationship", b => { b.HasOne("Novelly.Api.Characters.Character", "Character") .WithMany("Relationships") .HasForeignKey("CharacterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Characters.Character", "RelatedCharacter") .WithMany() .HasForeignKey("RelatedCharacterId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Character"); b.Navigation("RelatedCharacter"); }); modelBuilder.Entity("Novelly.Api.Locations.Location", b => { b.HasOne("Novelly.Api.Novels.Novel", "Novel") .WithMany() .HasForeignKey("NovelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Novel"); }); modelBuilder.Entity("Novelly.Api.Novels.Novel", b => { b.HasOne("Novelly.Api.Users.NovellyUser", "Owner") .WithMany() .HasForeignKey("OwnerId") .OnDelete(DeleteBehavior.Restrict); b.Navigation("Owner"); }); modelBuilder.Entity("Novelly.Api.Questions.OpenQuestion", b => { b.HasOne("Novelly.Api.Chapters.Chapter", "Chapter") .WithMany() .HasForeignKey("ChapterId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Novelly.Api.Characters.Character", "Character") .WithMany() .HasForeignKey("CharacterId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Novelly.Api.Novels.Novel", "Novel") .WithMany() .HasForeignKey("NovelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Chapter"); b.Navigation("Character"); b.Navigation("Novel"); }); modelBuilder.Entity("Novelly.Api.Tags.Tag", b => { b.HasOne("Novelly.Api.Novels.Novel", "Novel") .WithMany("Tags") .HasForeignKey("NovelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Novel"); }); modelBuilder.Entity("Novelly.Api.Users.NovelMember", b => { b.HasOne("Novelly.Api.Novels.Novel", "Novel") .WithMany("Members") .HasForeignKey("NovelId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Users.NovellyUser", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Novel"); b.Navigation("User"); }); modelBuilder.Entity("Novelly.Api.Agent.AgentConversation", b => { b.Navigation("Messages"); }); modelBuilder.Entity("Novelly.Api.Chapters.Chapter", b => { b.Navigation("Beats"); }); modelBuilder.Entity("Novelly.Api.Characters.Character", b => { b.Navigation("ArcStages"); b.Navigation("OtherIdentities"); b.Navigation("Relationships"); }); modelBuilder.Entity("Novelly.Api.Novels.Novel", b => { b.Navigation("Chapters"); b.Navigation("Characters"); b.Navigation("Conversations"); b.Navigation("Members"); b.Navigation("Tags"); }); #pragma warning restore 612, 618 } } }