136 lines
4.4 KiB
Transact-SQL
136 lines
4.4 KiB
Transact-SQL
SET ANSI_NULLS ON;
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON;
|
|
GO
|
|
|
|
IF COL_LENGTH(N'dbo.OnboardingManuscriptBuilds', N'MarkerSyncMessage') IS NULL
|
|
ALTER TABLE dbo.OnboardingManuscriptBuilds ADD MarkerSyncMessage nvarchar(500) NULL;
|
|
GO
|
|
|
|
IF COL_LENGTH(N'dbo.OnboardingManuscriptBuilds', N'MarkerSyncCompletedUtc') IS NULL
|
|
ALTER TABLE dbo.OnboardingManuscriptBuilds ADD MarkerSyncCompletedUtc datetime2 NULL;
|
|
GO
|
|
|
|
IF OBJECT_ID(N'dbo.ManuscriptStructuralChapterSources', N'U') IS NULL
|
|
BEGIN
|
|
CREATE TABLE dbo.ManuscriptStructuralChapterSources
|
|
(
|
|
ChapterID int NOT NULL CONSTRAINT PK_ManuscriptStructuralChapterSources PRIMARY KEY,
|
|
ProjectID int NOT NULL,
|
|
BookID int NOT NULL,
|
|
SourceText nvarchar(max) NOT NULL,
|
|
SourceWordCount int NOT NULL,
|
|
SourceCharacterCount int NOT NULL,
|
|
ParagraphMapJson nvarchar(max) NULL,
|
|
CreatedUtc datetime2 NOT NULL CONSTRAINT DF_ManuscriptStructuralChapterSources_CreatedUtc DEFAULT SYSUTCDATETIME(),
|
|
UpdatedUtc datetime2 NOT NULL CONSTRAINT DF_ManuscriptStructuralChapterSources_UpdatedUtc DEFAULT SYSUTCDATETIME(),
|
|
CONSTRAINT FK_ManuscriptStructuralChapterSources_Chapters FOREIGN KEY (ChapterID) REFERENCES dbo.Chapters(ChapterID),
|
|
CONSTRAINT FK_ManuscriptStructuralChapterSources_Projects FOREIGN KEY (ProjectID) REFERENCES dbo.Projects(ProjectID),
|
|
CONSTRAINT FK_ManuscriptStructuralChapterSources_Books FOREIGN KEY (BookID) REFERENCES dbo.Books(BookID)
|
|
);
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.ManuscriptStructuralChapterSource_Save
|
|
@ChapterID int,
|
|
@ProjectID int,
|
|
@BookID int,
|
|
@SourceText nvarchar(max),
|
|
@SourceWordCount int,
|
|
@SourceCharacterCount int,
|
|
@ParagraphMapJson nvarchar(max) = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
MERGE dbo.ManuscriptStructuralChapterSources AS target
|
|
USING (SELECT @ChapterID AS ChapterID) AS source
|
|
ON target.ChapterID = source.ChapterID
|
|
WHEN MATCHED THEN
|
|
UPDATE SET ProjectID = @ProjectID,
|
|
BookID = @BookID,
|
|
SourceText = @SourceText,
|
|
SourceWordCount = @SourceWordCount,
|
|
SourceCharacterCount = @SourceCharacterCount,
|
|
ParagraphMapJson = @ParagraphMapJson,
|
|
UpdatedUtc = SYSUTCDATETIME()
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (ChapterID, ProjectID, BookID, SourceText, SourceWordCount, SourceCharacterCount, ParagraphMapJson)
|
|
VALUES (@ChapterID, @ProjectID, @BookID, @SourceText, @SourceWordCount, @SourceCharacterCount, @ParagraphMapJson);
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.Onboarding_ManuscriptBuild_MarkerSyncSent
|
|
@BuildID int
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
UPDATE dbo.OnboardingManuscriptBuilds
|
|
SET MarkerStatus = N'Sent',
|
|
MarkerSyncMessage = NULL,
|
|
UpdatedUtc = SYSUTCDATETIME()
|
|
WHERE OnboardingManuscriptBuildID = @BuildID
|
|
AND MarkerStatus IN (N'Pending', N'Failed', N'Sent');
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.Onboarding_ManuscriptBuild_MarkerSyncCompleted
|
|
@BuildID int
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
UPDATE dbo.OnboardingManuscriptBuilds
|
|
SET MarkerStatus = N'Completed',
|
|
MarkerSyncMessage = N'Word markers inserted and document saved.',
|
|
MarkerSyncCompletedUtc = SYSUTCDATETIME(),
|
|
UpdatedUtc = SYSUTCDATETIME()
|
|
WHERE OnboardingManuscriptBuildID = @BuildID;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.Onboarding_ManuscriptBuild_MarkerSyncFailed
|
|
@BuildID int,
|
|
@Message nvarchar(500) = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
UPDATE dbo.OnboardingManuscriptBuilds
|
|
SET MarkerStatus = N'Failed',
|
|
MarkerSyncMessage = LEFT(NULLIF(LTRIM(RTRIM(@Message)), N''), 500),
|
|
UpdatedUtc = SYSUTCDATETIME()
|
|
WHERE OnboardingManuscriptBuildID = @BuildID;
|
|
END;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.StoryIntelligenceSource_ChapterText_GetAdmin
|
|
@ChapterID int
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT
|
|
p.ProjectID,
|
|
p.ProjectName,
|
|
b.BookID,
|
|
b.BookTitle,
|
|
b.Subtitle AS BookSubtitle,
|
|
c.ChapterID,
|
|
c.ChapterNumber,
|
|
c.ChapterTitle,
|
|
source.SourceText,
|
|
source.SourceWordCount,
|
|
source.SourceCharacterCount
|
|
FROM dbo.Chapters c
|
|
INNER JOIN dbo.Books b ON b.BookID = c.BookID
|
|
INNER JOIN dbo.Projects p ON p.ProjectID = b.ProjectID
|
|
LEFT JOIN dbo.ManuscriptStructuralChapterSources source ON source.ChapterID = c.ChapterID
|
|
WHERE c.ChapterID = @ChapterID
|
|
AND c.IsArchived = 0
|
|
AND b.IsArchived = 0
|
|
AND p.IsArchived = 0;
|
|
END;
|
|
GO
|