PlotDirector/PlotLine/Models/StoryIntelligenceReviewCandidateModels.cs

86 lines
3.3 KiB
C#

namespace PlotLine.Models;
public static class StoryIntelligenceReviewModules
{
public const string Characters = "Characters";
public const string Locations = "Locations";
public const string Assets = "Assets";
public const string Relationships = "Relationships";
public const string Knowledge = "Knowledge";
}
public static class StoryIntelligenceReviewCandidateGenerationStatuses
{
public const string Preparing = "Preparing";
public const string Ready = "Ready";
public const string Failed = "Failed";
}
public sealed class StoryIntelligenceReviewCandidateGeneration
{
public int ReviewCandidateGenerationID { get; init; }
public int ProjectID { get; init; }
public int BookID { get; init; }
public string Module { get; init; } = string.Empty;
public string Status { get; init; } = string.Empty;
public string Source { get; init; } = string.Empty;
public int CandidateCount { get; init; }
public int PendingCount { get; init; }
public string? ErrorMessage { get; init; }
public bool IsCurrent { get; init; }
public DateTime CreatedUtc { get; init; }
public DateTime? PreparedUtc { get; init; }
public DateTime? FailedUtc { get; init; }
public DateTime UpdatedUtc { get; init; }
}
public sealed class StoryIntelligenceReviewCandidateRow
{
public int ReviewCandidateID { get; init; }
public int ReviewCandidateGenerationID { get; init; }
public int ProjectID { get; init; }
public int BookID { get; init; }
public string Module { get; init; } = string.Empty;
public string StableKey { get; init; } = string.Empty;
public string? CandidateType { get; init; }
public string DisplayName { get; init; } = string.Empty;
public int SortOrder { get; init; }
public decimal? Confidence { get; init; }
public int? ExistingCanonicalID { get; init; }
public string DecisionStatus { get; init; } = string.Empty;
public string? DecisionAction { get; init; }
public string? DecisionTargetKey { get; init; }
public int? DecisionCanonicalID { get; init; }
public string CandidatePayloadJson { get; init; } = string.Empty;
public DateTime CreatedUtc { get; init; }
public DateTime? ReviewedUtc { get; init; }
public DateTime UpdatedUtc { get; init; }
public int TotalCount { get; init; }
public int PendingCount { get; init; }
}
public sealed class StoryIntelligenceReviewCandidateSaveRequest
{
public int ReviewCandidateGenerationID { get; init; }
public int ProjectID { get; init; }
public int BookID { get; init; }
public string Module { get; init; } = string.Empty;
public string StableKey { get; init; } = string.Empty;
public string? CandidateType { get; init; }
public string DisplayName { get; init; } = string.Empty;
public int SortOrder { get; init; }
public decimal? Confidence { get; init; }
public int? ExistingCanonicalID { get; init; }
public string CandidatePayloadJson { get; init; } = string.Empty;
}
public sealed class StoryIntelligenceReviewCandidateDecisionRequest
{
public int BookID { get; init; }
public string Module { get; init; } = string.Empty;
public string StableKey { get; init; } = string.Empty;
public string DecisionAction { get; init; } = string.Empty;
public string? DecisionTargetKey { get; init; }
public int? DecisionCanonicalID { get; init; }
}