// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Novelly.Api.Data; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; #nullable disable namespace Novelly.Api.Migrations { [DbContext(typeof(NovelDbContext))] partial class NovelDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder.HasAnnotation("ProductVersion", "10.0.10"); 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("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("Novelly.Api.Agent.AgentConversation", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("ProjectId") .HasColumnType("TEXT"); b.Property("Title") .IsRequired() .HasMaxLength(200) .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("ProjectId"); 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("CharacterId") .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("SceneId") .HasColumnType("TEXT"); 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("CharacterId"); b.HasIndex("SceneId"); 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("Number") .HasColumnType("INTEGER"); b.Property("PovCharacterId") .HasColumnType("TEXT"); b.Property("ProjectId") .HasColumnType("TEXT"); b.Property("Setting") .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.HasKey("Id"); b.HasIndex("PovCharacterId"); b.HasIndex("ProjectId", "Number"); b.ToTable("Chapters"); }); modelBuilder.Entity("Novelly.Api.Characters.Character", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("Age") .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("InternalConflict") .HasColumnType("TEXT"); b.Property("Name") .IsRequired() .HasMaxLength(200) .HasColumnType("TEXT"); b.Property("Need") .HasColumnType("TEXT"); b.Property("Notes") .HasColumnType("TEXT"); b.Property("Occupation") .HasColumnType("TEXT"); b.Property("Personality") .HasColumnType("TEXT"); b.Property("ProjectId") .HasColumnType("TEXT"); b.Property("Pronouns") .HasColumnType("TEXT"); b.Property("Role") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.Property("Voice") .HasColumnType("TEXT"); b.Property("Want") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("ProjectId"); b.ToTable("Characters"); }); 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.Projects.Project", 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("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.ToTable("Projects"); }); modelBuilder.Entity("Novelly.Api.Scenes.Scene", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("TEXT"); b.Property("ChapterId") .HasColumnType("TEXT"); b.Property("Conflict") .HasColumnType("TEXT"); b.Property("CreatedAt") .HasColumnType("INTEGER"); b.Property("Goal") .HasColumnType("TEXT"); b.Property("Location") .HasColumnType("TEXT"); b.Property("Outcome") .HasColumnType("TEXT"); b.Property("PovCharacterId") .HasColumnType("TEXT"); b.Property("Prose") .HasColumnType("TEXT"); b.Property("SortOrder") .HasColumnType("INTEGER"); b.Property("Status") .IsRequired() .HasMaxLength(32) .HasColumnType("TEXT"); b.Property("Summary") .HasColumnType("TEXT"); b.Property("Title") .IsRequired() .HasMaxLength(300) .HasColumnType("TEXT"); b.Property("UpdatedAt") .HasColumnType("INTEGER"); b.Property("WordCount") .HasColumnType("INTEGER"); b.HasKey("Id"); b.HasIndex("PovCharacterId"); b.HasIndex("ChapterId", "SortOrder"); b.ToTable("Scenes"); }); 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("ProjectId") .HasColumnType("TEXT"); b.HasKey("Id"); b.HasIndex("ProjectId", "Name") .IsUnique(); b.ToTable("Tags"); }); 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("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("Novelly.Api.Agent.AgentConversation", b => { b.HasOne("Novelly.Api.Projects.Project", "Project") .WithMany("Conversations") .HasForeignKey("ProjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Project"); }); 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.HasOne("Novelly.Api.Characters.Character", "Character") .WithMany() .HasForeignKey("CharacterId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Novelly.Api.Scenes.Scene", "Scene") .WithMany() .HasForeignKey("SceneId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("Chapter"); b.Navigation("Character"); b.Navigation("Scene"); }); modelBuilder.Entity("Novelly.Api.Chapters.Chapter", b => { b.HasOne("Novelly.Api.Characters.Character", "PovCharacter") .WithMany() .HasForeignKey("PovCharacterId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Novelly.Api.Projects.Project", "Project") .WithMany("Chapters") .HasForeignKey("ProjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("PovCharacter"); b.Navigation("Project"); }); modelBuilder.Entity("Novelly.Api.Characters.Character", b => { b.HasOne("Novelly.Api.Projects.Project", "Project") .WithMany("Characters") .HasForeignKey("ProjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Project"); }); 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.Scenes.Scene", b => { b.HasOne("Novelly.Api.Chapters.Chapter", "Chapter") .WithMany("Scenes") .HasForeignKey("ChapterId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Novelly.Api.Characters.Character", "PovCharacter") .WithMany() .HasForeignKey("PovCharacterId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("Chapter"); b.Navigation("PovCharacter"); }); modelBuilder.Entity("Novelly.Api.Tags.Tag", b => { b.HasOne("Novelly.Api.Projects.Project", "Project") .WithMany("Tags") .HasForeignKey("ProjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Project"); }); modelBuilder.Entity("Novelly.Api.Agent.AgentConversation", b => { b.Navigation("Messages"); }); modelBuilder.Entity("Novelly.Api.Chapters.Chapter", b => { b.Navigation("Beats"); b.Navigation("Scenes"); }); modelBuilder.Entity("Novelly.Api.Characters.Character", b => { b.Navigation("Relationships"); }); modelBuilder.Entity("Novelly.Api.Projects.Project", b => { b.Navigation("Chapters"); b.Navigation("Characters"); b.Navigation("Conversations"); b.Navigation("Tags"); }); #pragma warning restore 612, 618 } } }