SET ANSI_NULLS ON; GO SET QUOTED_IDENTIFIER ON; GO CREATE OR ALTER PROCEDURE dbo.Onboarding_ManuscriptBuild_GetByPreview @UserID int, @PreviewID uniqueidentifier AS BEGIN SET NOCOUNT ON; DECLARE @BuildID int; SELECT @BuildID = OnboardingManuscriptBuildID FROM dbo.OnboardingManuscriptBuilds WHERE PreviewID = @PreviewID AND UserID = @UserID; IF @BuildID IS NULL RETURN; SELECT OnboardingManuscriptBuildID AS BuildID, PreviewID, ProjectID, BookID, ManuscriptDocumentID, Status, MarkerStatus, ChaptersCreated, ScenesCreated, CharactersCreated, CharactersReused, SceneAppearancesCreated, CAST(1 AS bit) AS AlreadyBuilt, CASE MarkerStatus WHEN N'Completed' THEN N'This manuscript structure has already been built and saved.' WHEN N'SaveNotRequired' THEN N'This manuscript structure has already been built; the expected Word markers were already present.' WHEN N'UserConfirmedSave' THEN N'This manuscript structure has already been built and the Word save was confirmed.' WHEN N'UserSaveRequired' THEN N'This manuscript structure has already been built. Save the Word document, then continue the import again.' ELSE N'This manuscript structure has already been built into PlotDirector.' END AS Message FROM dbo.OnboardingManuscriptBuilds WHERE OnboardingManuscriptBuildID = @BuildID; SELECT TemporaryChapterKey, ChapterID FROM dbo.OnboardingManuscriptBuildChapterMap WHERE OnboardingManuscriptBuildID = @BuildID ORDER BY TemporaryChapterKey; SELECT TemporarySceneKey, SceneID FROM dbo.OnboardingManuscriptBuildSceneMap WHERE OnboardingManuscriptBuildID = @BuildID ORDER BY TemporarySceneKey; SELECT TemporaryCharacterKey, CharacterID, Created FROM dbo.OnboardingManuscriptBuildCharacterMap WHERE OnboardingManuscriptBuildID = @BuildID ORDER BY TemporaryCharacterKey; END; GO CREATE OR ALTER PROCEDURE dbo.Onboarding_ManuscriptBuild_MarkerSyncCompleted @BuildID int, @MarkerStatus nvarchar(40) = N'Completed', @Message nvarchar(500) = NULL AS BEGIN SET NOCOUNT ON; IF @MarkerStatus NOT IN (N'Completed', N'SaveNotRequired', N'UserConfirmedSave') SET @MarkerStatus = N'Completed'; UPDATE dbo.OnboardingManuscriptBuilds SET MarkerStatus = @MarkerStatus, MarkerSyncMessage = COALESCE( LEFT(NULLIF(LTRIM(RTRIM(@Message)), N''), 500), CASE @MarkerStatus WHEN N'SaveNotRequired' THEN N'Scene markers already existed. No Word save was required.' WHEN N'UserConfirmedSave' THEN N'Scene markers added; user confirmed the Word document was saved.' ELSE N'Scene markers added and document saved.' END), MarkerSyncCompletedUtc = SYSUTCDATETIME(), UpdatedUtc = SYSUTCDATETIME() WHERE OnboardingManuscriptBuildID = @BuildID; END; GO CREATE OR ALTER PROCEDURE dbo.Onboarding_ManuscriptBuild_MarkerSyncUserSaveRequired @BuildID int, @Message nvarchar(500) = NULL AS BEGIN SET NOCOUNT ON; UPDATE dbo.OnboardingManuscriptBuilds SET MarkerStatus = N'UserSaveRequired', MarkerSyncMessage = COALESCE( LEFT(NULLIF(LTRIM(RTRIM(@Message)), N''), 500), N'Scene markers have been added. Save the document in Word, then continue the import again.'), UpdatedUtc = SYSUTCDATETIME() WHERE OnboardingManuscriptBuildID = @BuildID; END; GO CREATE OR ALTER PROCEDURE dbo.Onboarding_ManuscriptBuild_MarkerSyncFailed @BuildID int, @Message nvarchar(500) = NULL, @Diagnostics nvarchar(max) = 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