188 lines
7.1 KiB
Transact-SQL
188 lines
7.1 KiB
Transact-SQL
SET ANSI_NULLS ON;
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON;
|
|
GO
|
|
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'SourceFileName') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD SourceFileName nvarchar(260) NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'SourceFileSizeBytes') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD SourceFileSizeBytes bigint NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'SourceWordCount') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD SourceWordCount int NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'SourceCharacterCount') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD SourceCharacterCount int NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'SourceChapterCount') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD SourceChapterCount int NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'SourceDetectedImagesCount') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD SourceDetectedImagesCount int NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'SourceDetectedTablesCount') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD SourceDetectedTablesCount int NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'SourceDetectedFootnotesCount') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD SourceDetectedFootnotesCount int NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'SourceDetectedCommentsCount') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD SourceDetectedCommentsCount int NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'FailureStage') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD FailureStage nvarchar(80) NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'ErrorDetail') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD ErrorDetail nvarchar(max) NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'EstimatedCostGBP') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD EstimatedCostGBP decimal(19,6) NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'EstimatedCostUSD') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD EstimatedCostUSD decimal(19,6) NULL;
|
|
GO
|
|
IF COL_LENGTH(N'dbo.StoryIntelligenceRuns', N'PromptVersionsSummary') IS NULL
|
|
ALTER TABLE dbo.StoryIntelligenceRuns ADD PromptVersionsSummary nvarchar(500) NULL;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.StoryIntelligenceRun_Save
|
|
@UserID int,
|
|
@ProjectID int = NULL,
|
|
@BookID int = NULL,
|
|
@Status nvarchar(50),
|
|
@SourceType nvarchar(50),
|
|
@SourceFileName nvarchar(260) = NULL,
|
|
@SourceFileSizeBytes bigint = NULL,
|
|
@SourceWordCount int = NULL,
|
|
@SourceCharacterCount int = NULL,
|
|
@SourceChapterCount int = NULL,
|
|
@SourceDetectedImagesCount int = NULL,
|
|
@SourceDetectedTablesCount int = NULL,
|
|
@SourceDetectedFootnotesCount int = NULL,
|
|
@SourceDetectedCommentsCount int = NULL,
|
|
@PromptVersion nvarchar(200),
|
|
@Model nvarchar(100),
|
|
@StartedUtc datetime2,
|
|
@CompletedUtc datetime2 = NULL,
|
|
@FailureStage nvarchar(80) = NULL,
|
|
@TotalInputTokens int = NULL,
|
|
@TotalOutputTokens int = NULL,
|
|
@TotalTokens int = NULL,
|
|
@TotalDurationMs bigint = NULL,
|
|
@EstimatedCostGBP decimal(19,6) = NULL,
|
|
@EstimatedCostUSD decimal(19,6) = NULL,
|
|
@PromptVersionsSummary nvarchar(500) = NULL,
|
|
@ErrorMessage nvarchar(max) = NULL,
|
|
@ErrorDetail nvarchar(max) = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
INSERT dbo.StoryIntelligenceRuns
|
|
(
|
|
UserID, ProjectID, BookID, Status, SourceType, SourceFileName, SourceFileSizeBytes,
|
|
SourceWordCount, SourceCharacterCount, SourceChapterCount, SourceDetectedImagesCount,
|
|
SourceDetectedTablesCount, SourceDetectedFootnotesCount, SourceDetectedCommentsCount,
|
|
PromptVersion, Model, StartedUtc, CompletedUtc, FailureStage, TotalInputTokens,
|
|
TotalOutputTokens, TotalTokens, TotalDurationMs, EstimatedCostGBP, EstimatedCostUSD,
|
|
PromptVersionsSummary, ErrorMessage, ErrorDetail
|
|
)
|
|
VALUES
|
|
(
|
|
@UserID, @ProjectID, @BookID, @Status, @SourceType, @SourceFileName, @SourceFileSizeBytes,
|
|
@SourceWordCount, @SourceCharacterCount, @SourceChapterCount, @SourceDetectedImagesCount,
|
|
@SourceDetectedTablesCount, @SourceDetectedFootnotesCount, @SourceDetectedCommentsCount,
|
|
@PromptVersion, @Model, @StartedUtc, @CompletedUtc, @FailureStage, @TotalInputTokens,
|
|
@TotalOutputTokens, @TotalTokens, @TotalDurationMs, @EstimatedCostGBP, @EstimatedCostUSD,
|
|
@PromptVersionsSummary, @ErrorMessage, @ErrorDetail
|
|
);
|
|
|
|
SELECT CAST(SCOPE_IDENTITY() AS int) AS StoryIntelligenceRunID;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.StoryIntelligenceRun_ListAdmin
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT
|
|
r.StoryIntelligenceRunID,
|
|
r.CreatedUtc,
|
|
r.UserID,
|
|
r.ProjectID,
|
|
p.ProjectName AS ProjectTitle,
|
|
r.BookID,
|
|
b.BookTitle,
|
|
r.Status,
|
|
r.SourceType,
|
|
r.FailureStage,
|
|
COUNT(sr.SceneResultID) AS SceneCount,
|
|
r.TotalTokens,
|
|
r.TotalDurationMs,
|
|
r.EstimatedCostGBP,
|
|
r.EstimatedCostUSD,
|
|
COALESCE(cr.ValidationErrorsCount, 0) + COALESCE(SUM(sr.ValidationErrorsCount), 0) AS ValidationErrorsCount,
|
|
COALESCE(cr.ValidationWarningsCount, 0) + COALESCE(SUM(sr.ValidationWarningsCount), 0) AS ValidationWarningsCount
|
|
FROM dbo.StoryIntelligenceRuns r
|
|
LEFT JOIN dbo.Projects p ON p.ProjectID = r.ProjectID
|
|
LEFT JOIN dbo.Books b ON b.BookID = r.BookID
|
|
LEFT JOIN dbo.StoryIntelligenceChapterResults cr ON cr.StoryIntelligenceRunID = r.StoryIntelligenceRunID
|
|
LEFT JOIN dbo.StoryIntelligenceSceneResults sr ON sr.StoryIntelligenceRunID = r.StoryIntelligenceRunID
|
|
GROUP BY
|
|
r.StoryIntelligenceRunID, r.CreatedUtc, r.UserID, r.ProjectID, p.ProjectName,
|
|
r.BookID, b.BookTitle, r.Status, r.SourceType, r.FailureStage, r.TotalTokens,
|
|
r.TotalDurationMs, r.EstimatedCostGBP, r.EstimatedCostUSD,
|
|
cr.ValidationErrorsCount, cr.ValidationWarningsCount
|
|
ORDER BY r.CreatedUtc DESC;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.StoryIntelligenceRun_GetAdmin
|
|
@StoryIntelligenceRunID int
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT
|
|
r.StoryIntelligenceRunID,
|
|
r.UserID,
|
|
r.ProjectID,
|
|
p.ProjectName AS ProjectTitle,
|
|
r.BookID,
|
|
b.BookTitle,
|
|
r.Status,
|
|
r.SourceType,
|
|
r.SourceFileName,
|
|
r.SourceFileSizeBytes,
|
|
r.SourceWordCount,
|
|
r.SourceCharacterCount,
|
|
r.SourceChapterCount,
|
|
r.SourceDetectedImagesCount,
|
|
r.SourceDetectedTablesCount,
|
|
r.SourceDetectedFootnotesCount,
|
|
r.SourceDetectedCommentsCount,
|
|
r.PromptVersion,
|
|
r.PromptVersionsSummary,
|
|
r.Model,
|
|
r.StartedUtc,
|
|
r.CompletedUtc,
|
|
r.FailureStage,
|
|
r.TotalInputTokens,
|
|
r.TotalOutputTokens,
|
|
r.TotalTokens,
|
|
r.TotalDurationMs,
|
|
r.EstimatedCostGBP,
|
|
r.EstimatedCostUSD,
|
|
r.ErrorMessage,
|
|
r.ErrorDetail,
|
|
r.CreatedUtc,
|
|
r.UpdatedUtc
|
|
FROM dbo.StoryIntelligenceRuns r
|
|
LEFT JOIN dbo.Projects p ON p.ProjectID = r.ProjectID
|
|
LEFT JOIN dbo.Books b ON b.BookID = r.BookID
|
|
WHERE r.StoryIntelligenceRunID = @StoryIntelligenceRunID;
|
|
END;
|
|
GO
|