208 lines
9.0 KiB
C#
208 lines
9.0 KiB
C#
namespace PlotLine.Models;
|
|
|
|
public static class StoryIntelligenceRunStatuses
|
|
{
|
|
public const string Pending = "Pending";
|
|
public const string Running = "Running";
|
|
public const string Completed = "Completed";
|
|
public const string CompletedWithWarnings = "CompletedWithWarnings";
|
|
public const string Failed = "Failed";
|
|
public const string Cancelled = "Cancelled";
|
|
}
|
|
|
|
public static class StoryIntelligenceFailureStages
|
|
{
|
|
public const string DocumentRead = "DocumentRead";
|
|
public const string ChapterStructure = "ChapterStructure";
|
|
public const string SceneSplit = "SceneSplit";
|
|
public const string SceneIntelligence = "SceneIntelligence";
|
|
public const string Validation = "Validation";
|
|
public const string Persistence = "Persistence";
|
|
public const string DomainImport = "DomainImport";
|
|
}
|
|
|
|
public sealed class StoryIntelligenceRunSaveRequest
|
|
{
|
|
public int UserID { get; init; }
|
|
public int? ProjectID { get; init; }
|
|
public int? BookID { get; init; }
|
|
public string Status { get; init; } = StoryIntelligenceRunStatuses.Completed;
|
|
public string SourceType { get; init; } = "AdminDryRun";
|
|
public string? SourceFileName { get; init; }
|
|
public long? SourceFileSizeBytes { get; init; }
|
|
public int? SourceWordCount { get; init; }
|
|
public int? SourceCharacterCount { get; init; }
|
|
public int? SourceChapterCount { get; init; }
|
|
public int? SourceDetectedImagesCount { get; init; }
|
|
public int? SourceDetectedTablesCount { get; init; }
|
|
public int? SourceDetectedFootnotesCount { get; init; }
|
|
public int? SourceDetectedCommentsCount { get; init; }
|
|
public string PromptVersion { get; init; } = string.Empty;
|
|
public string Model { get; init; } = string.Empty;
|
|
public DateTime StartedUtc { get; init; }
|
|
public DateTime? CompletedUtc { get; init; }
|
|
public string? FailureStage { get; init; }
|
|
public int? TotalInputTokens { get; init; }
|
|
public int? TotalOutputTokens { get; init; }
|
|
public int? TotalTokens { get; init; }
|
|
public long? TotalDurationMs { get; init; }
|
|
public decimal? EstimatedCostGBP { get; init; }
|
|
public decimal? EstimatedCostUSD { get; init; }
|
|
public string? PromptVersionsSummary { get; init; }
|
|
public string? ErrorMessage { get; init; }
|
|
public string? ErrorDetail { get; init; }
|
|
public StoryIntelligenceChapterResultSaveRequest? ChapterResult { get; init; }
|
|
public IReadOnlyList<StoryIntelligenceSceneResultSaveRequest> SceneResults { get; init; } = [];
|
|
}
|
|
|
|
public sealed class StoryIntelligenceChapterResultSaveRequest
|
|
{
|
|
public int? ProjectID { get; init; }
|
|
public int? BookID { get; init; }
|
|
public int? ChapterID { get; init; }
|
|
public decimal? ChapterNumber { get; init; }
|
|
public string SourceLabel { get; init; } = string.Empty;
|
|
public string PromptVersion { get; init; } = string.Empty;
|
|
public string Model { get; init; } = string.Empty;
|
|
public string RawResponseJson { get; init; } = string.Empty;
|
|
public string OutputTextJson { get; init; } = string.Empty;
|
|
public string ParsedJson { get; init; } = string.Empty;
|
|
public int ValidationErrorsCount { get; init; }
|
|
public int ValidationWarningsCount { get; init; }
|
|
public int? InputTokens { get; init; }
|
|
public int? OutputTokens { get; init; }
|
|
public int? TotalTokens { get; init; }
|
|
public long? DurationMs { get; init; }
|
|
}
|
|
|
|
public sealed class StoryIntelligenceSceneResultSaveRequest
|
|
{
|
|
public int? ProjectID { get; init; }
|
|
public int? BookID { get; init; }
|
|
public int? ChapterID { get; init; }
|
|
public int? SceneID { get; init; }
|
|
public int TemporarySceneNumber { get; init; }
|
|
public int? StartParagraph { get; init; }
|
|
public int? EndParagraph { get; init; }
|
|
public string SourceLabel { get; init; } = string.Empty;
|
|
public string PromptVersion { get; init; } = string.Empty;
|
|
public string Model { get; init; } = string.Empty;
|
|
public string RawResponseJson { get; init; } = string.Empty;
|
|
public string OutputTextJson { get; init; } = string.Empty;
|
|
public string ParsedJson { get; init; } = string.Empty;
|
|
public int ValidationErrorsCount { get; init; }
|
|
public int ValidationWarningsCount { get; init; }
|
|
public int? InputTokens { get; init; }
|
|
public int? OutputTokens { get; init; }
|
|
public int? TotalTokens { get; init; }
|
|
public long? DurationMs { get; init; }
|
|
}
|
|
|
|
public sealed class StoryIntelligenceSavedRunListItem
|
|
{
|
|
public int StoryIntelligenceRunID { get; init; }
|
|
public DateTime CreatedUtc { get; init; }
|
|
public int UserID { get; init; }
|
|
public int? ProjectID { get; init; }
|
|
public string? ProjectTitle { get; init; }
|
|
public int? BookID { get; init; }
|
|
public string? BookTitle { get; init; }
|
|
public string Status { get; init; } = string.Empty;
|
|
public string SourceType { get; init; } = string.Empty;
|
|
public string? FailureStage { get; init; }
|
|
public int SceneCount { get; init; }
|
|
public int? TotalTokens { get; init; }
|
|
public long? TotalDurationMs { get; init; }
|
|
public decimal? EstimatedCostGBP { get; init; }
|
|
public decimal? EstimatedCostUSD { get; init; }
|
|
public int ValidationErrorsCount { get; init; }
|
|
public int ValidationWarningsCount { get; init; }
|
|
}
|
|
|
|
public sealed class StoryIntelligenceSavedRun
|
|
{
|
|
public int StoryIntelligenceRunID { get; init; }
|
|
public int UserID { get; init; }
|
|
public int? ProjectID { get; init; }
|
|
public string? ProjectTitle { get; init; }
|
|
public int? BookID { get; init; }
|
|
public string? BookTitle { get; init; }
|
|
public string Status { get; init; } = string.Empty;
|
|
public string SourceType { get; init; } = string.Empty;
|
|
public string? SourceFileName { get; init; }
|
|
public long? SourceFileSizeBytes { get; init; }
|
|
public int? SourceWordCount { get; init; }
|
|
public int? SourceCharacterCount { get; init; }
|
|
public int? SourceChapterCount { get; init; }
|
|
public int? SourceDetectedImagesCount { get; init; }
|
|
public int? SourceDetectedTablesCount { get; init; }
|
|
public int? SourceDetectedFootnotesCount { get; init; }
|
|
public int? SourceDetectedCommentsCount { get; init; }
|
|
public string PromptVersion { get; init; } = string.Empty;
|
|
public string? PromptVersionsSummary { get; init; }
|
|
public string Model { get; init; } = string.Empty;
|
|
public DateTime StartedUtc { get; init; }
|
|
public DateTime? CompletedUtc { get; init; }
|
|
public string? FailureStage { get; init; }
|
|
public int? TotalInputTokens { get; init; }
|
|
public int? TotalOutputTokens { get; init; }
|
|
public int? TotalTokens { get; init; }
|
|
public long? TotalDurationMs { get; init; }
|
|
public decimal? EstimatedCostGBP { get; init; }
|
|
public decimal? EstimatedCostUSD { get; init; }
|
|
public string? ErrorMessage { get; init; }
|
|
public string? ErrorDetail { get; init; }
|
|
public DateTime CreatedUtc { get; init; }
|
|
public DateTime UpdatedUtc { get; init; }
|
|
}
|
|
|
|
public sealed class StoryIntelligenceSavedChapterResult
|
|
{
|
|
public int ChapterResultID { get; init; }
|
|
public int StoryIntelligenceRunID { get; init; }
|
|
public int? ProjectID { get; init; }
|
|
public int? BookID { get; init; }
|
|
public int? ChapterID { get; init; }
|
|
public decimal? ChapterNumber { get; init; }
|
|
public string SourceLabel { get; init; } = string.Empty;
|
|
public string PromptVersion { get; init; } = string.Empty;
|
|
public string Model { get; init; } = string.Empty;
|
|
public string RawResponseJson { get; init; } = string.Empty;
|
|
public string OutputTextJson { get; init; } = string.Empty;
|
|
public string ParsedJson { get; init; } = string.Empty;
|
|
public int ValidationErrorsCount { get; init; }
|
|
public int ValidationWarningsCount { get; init; }
|
|
public int? InputTokens { get; init; }
|
|
public int? OutputTokens { get; init; }
|
|
public int? TotalTokens { get; init; }
|
|
public long? DurationMs { get; init; }
|
|
public DateTime CreatedUtc { get; init; }
|
|
}
|
|
|
|
public sealed class StoryIntelligenceSavedSceneResult
|
|
{
|
|
public int SceneResultID { get; init; }
|
|
public int StoryIntelligenceRunID { get; init; }
|
|
public int? ChapterResultID { get; init; }
|
|
public int? ProjectID { get; init; }
|
|
public int? BookID { get; init; }
|
|
public int? ChapterID { get; init; }
|
|
public int? SceneID { get; init; }
|
|
public int TemporarySceneNumber { get; init; }
|
|
public int? StartParagraph { get; init; }
|
|
public int? EndParagraph { get; init; }
|
|
public string SourceLabel { get; init; } = string.Empty;
|
|
public string PromptVersion { get; init; } = string.Empty;
|
|
public string Model { get; init; } = string.Empty;
|
|
public string RawResponseJson { get; init; } = string.Empty;
|
|
public string OutputTextJson { get; init; } = string.Empty;
|
|
public string ParsedJson { get; init; } = string.Empty;
|
|
public int ValidationErrorsCount { get; init; }
|
|
public int ValidationWarningsCount { get; init; }
|
|
public int? InputTokens { get; init; }
|
|
public int? OutputTokens { get; init; }
|
|
public int? TotalTokens { get; init; }
|
|
public long? DurationMs { get; init; }
|
|
public DateTime CreatedUtc { get; init; }
|
|
}
|