namespace NovelSoftware.Domain.Entities; /// A chapter: an ordered container of scenes plus its own planning fields. public class Chapter { public Guid Id { get; set; } = Guid.NewGuid(); public Guid ProjectId { get; set; } public Project? Project { get; set; } /// Position in the manuscript, 1-based. public int Number { get; set; } public string Title { get; set; } = string.Empty; /// /// The paragraph that opens the chapter's outline, above the beat table. /// public string? Summary { get; set; } /// Whose head we are in for this chapter. public Guid? PovCharacterId { get; set; } public Character? PovCharacter { get; set; } public string? Setting { get; set; } public string? Notes { get; set; } public DraftStatus Status { get; set; } = DraftStatus.Planned; public int? TargetWordCount { get; set; } public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow; public DateTimeOffset UpdatedAt { get; set; } = DateTimeOffset.UtcNow; /// The chapter's outline: an ordered, flat list of beats. public List Beats { get; set; } = []; /// The prose layer. Beats may optionally be grouped under these. public List Scenes { get; set; } = []; public List Tags { get; set; } = []; }