PlotDirector/PlotLine/Models/StoryIntelligenceNarrativeModels.cs

136 lines
5.8 KiB
C#

namespace PlotLine.Models;
public static class StoryIntelligenceNarrativeCandidateTypes
{
public const string PlotLine = "PlotLine";
public const string Thread = "Thread";
}
public static class StoryIntelligenceNarrativeCandidateStatuses
{
public const string Pending = "Pending";
public const string Accepted = "Accepted";
public const string Rejected = "Rejected";
public const string Merged = "Merged";
}
public static class StoryIntelligenceNarrativeReviewActions
{
public const string AcceptNew = "AcceptNew";
public const string MergeExisting = "MergeExisting";
public const string MergeCandidate = "MergeCandidate";
public const string Reject = "Reject";
}
public sealed class StoryIntelligenceNarrativeCandidate
{
public int NarrativeCandidateID { get; set; }
public int ProjectID { get; set; }
public int BookID { get; set; }
public string CandidateType { get; set; } = string.Empty;
public string CandidateKey { get; set; } = string.Empty;
public string ProposedTitle { get; set; } = string.Empty;
public string? ProposedDescription { get; set; }
public string? Category { get; set; }
public string? InferredState { get; set; }
public string? ChangeType { get; set; }
public string? Significance { get; set; }
public int? ExistingPlotLineID { get; set; }
public string? ExistingPlotLineName { get; set; }
public int? ExistingPlotThreadID { get; set; }
public string? ExistingPlotThreadTitle { get; set; }
public int? WholeBookPlotSynthesisRunID { get; set; }
public int? AuthorPlotSeedID { get; set; }
public string? AuthorPlotSeedDescription { get; set; }
public string? AuthorPlotSeedSource { get; set; }
public decimal? ExistingPlotLineMatchConfidence { get; set; }
public string? ExistingPlotLineMatchReason { get; set; }
public decimal? SeedMatchConfidence { get; set; }
public string? SeedMatchReason { get; set; }
public string? Source { get; set; }
public int? RelatedPlotLineID { get; set; }
public string? RelatedPlotLineName { get; set; }
public string? ParentCandidateKey { get; set; }
public int? ParentNarrativeCandidateID { get; set; }
public string? ParentCandidateTitle { get; set; }
public int? MergeTargetNarrativeCandidateID { get; set; }
public decimal? Confidence { get; set; }
public string Status { get; set; } = StoryIntelligenceNarrativeCandidateStatuses.Pending;
public string? ReviewAction { get; set; }
public int? AcceptedPlotLineID { get; set; }
public string? AcceptedPlotLineName { get; set; }
public int? AcceptedPlotThreadID { get; set; }
public string? AcceptedPlotThreadTitle { get; set; }
public int? ReviewedByUserID { get; set; }
public DateTime? ReviewedUtc { get; set; }
public DateTime CreatedUtc { get; set; }
public DateTime UpdatedUtc { get; set; }
public IReadOnlyList<StoryIntelligenceNarrativeCandidateEvidence> Evidence { get; set; } = [];
public IReadOnlyList<StoryIntelligenceNarrativeCandidateEvent> Events { get; set; } = [];
}
public sealed class StoryIntelligenceNarrativeCandidateEvidence
{
public int NarrativeCandidateEvidenceID { get; set; }
public int NarrativeCandidateID { get; set; }
public int SceneID { get; set; }
public decimal SceneNumber { get; set; }
public string SceneTitle { get; set; } = string.Empty;
public decimal ChapterNumber { get; set; }
public string ChapterTitle { get; set; } = string.Empty;
public string? ContributionType { get; set; }
public string? Evidence { get; set; }
public int SortOrder { get; set; }
public DateTime CreatedUtc { get; set; }
}
public sealed class StoryIntelligenceNarrativeCandidateSeed
{
public int ProjectID { get; init; }
public int BookID { get; init; }
public string CandidateType { get; init; } = string.Empty;
public string CandidateKey { get; init; } = string.Empty;
public string ProposedTitle { get; init; } = string.Empty;
public string? ProposedDescription { get; init; }
public string? Category { get; init; }
public string? InferredState { get; init; }
public string? ChangeType { get; init; }
public string? Significance { get; init; }
public int? ExistingPlotLineID { get; init; }
public int? ExistingPlotThreadID { get; init; }
public int? WholeBookPlotSynthesisRunID { get; init; }
public int? AuthorPlotSeedID { get; init; }
public decimal? ExistingPlotLineMatchConfidence { get; init; }
public string? ExistingPlotLineMatchReason { get; init; }
public decimal? SeedMatchConfidence { get; init; }
public string? SeedMatchReason { get; init; }
public string? Source { get; init; }
public int? RelatedPlotLineID { get; init; }
public string? ParentCandidateKey { get; init; }
public int? ParentNarrativeCandidateID { get; init; }
public decimal? Confidence { get; init; }
}
public sealed class StoryIntelligenceNarrativeCandidateEvent
{
public int NarrativeCandidateEventID { get; set; }
public int NarrativeCandidateID { get; set; }
public int? WholeBookPlotSynthesisRunID { get; set; }
public string EventKey { get; set; } = string.Empty;
public int SceneID { get; set; }
public decimal SceneNumber { get; set; }
public string SceneTitle { get; set; } = string.Empty;
public decimal ChapterNumber { get; set; }
public string ChapterTitle { get; set; } = string.Empty;
public string EventType { get; set; } = string.Empty;
public string EventTitle { get; set; } = string.Empty;
public string? EventDescription { get; set; }
public string? Evidence { get; set; }
public decimal? Confidence { get; set; }
public int SortOrder { get; set; }
public bool IsIgnored { get; set; }
public int? AcceptedThreadEventID { get; set; }
public DateTime CreatedUtc { get; set; }
public DateTime UpdatedUtc { get; set; }
}