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; } = [];
}