using System.Text.Json;
using System.Text.Json.Serialization;

namespace PlotLine.Models;

public sealed class ChapterStructureModel
{
    public string? SchemaVersion { get; init; }
    public string? ChapterSummary { get; init; }
    public List<ChapterSceneBoundary>? SceneBoundaries { get; init; }

    [JsonExtensionData]
    public Dictionary<string, JsonElement>? ExtensionData { get; init; }
}

public sealed class ChapterSceneBoundary
{
    public int? SceneNumber { get; init; }
    public int? StartParagraph { get; init; }
    public int? EndParagraph { get; init; }
    public decimal? Confidence { get; init; }
    public string? Reason { get; init; }

    [JsonExtensionData]
    public Dictionary<string, JsonElement>? ExtensionData { get; init; }
}
