namespace CollabDAL.Query.CollabConfig; public static class CollabConfigQB { // Index: UQ_CollabConfig_DatabaseName (unique constraint) public const string GET_CONFIG = @" SELECT c.DatabaseName, c.MaxParticipantsDefault, c.MaxParticipantsAbsolute, c.SessionTimeoutMinutes, c.InviteLinkExpiryMinutes, c.AllowScreenShare, c.AllowAnonymousJoin, c.AllowGuestJoinViaLink, c.EnableAuditLog, c.EnableCoBrowse, c.EnableInSessionChat, c.EnableAnnotations, c.EnableCursorBroadcast, c.EnableFormSync, c.ControlConsentMode, c.AllowedModules FROM collab.CollabConfig c WHERE c.DatabaseName = @DatabaseName"; // MERGE for upsert — insert on first config save, update thereafter public const string UPSERT_CONFIG = @" MERGE collab.CollabConfig AS target USING (SELECT @DatabaseName AS DatabaseName) AS source ON target.DatabaseName = source.DatabaseName WHEN MATCHED THEN UPDATE SET MaxParticipantsDefault = @MaxParticipantsDefault, MaxParticipantsAbsolute = @MaxParticipantsAbsolute, SessionTimeoutMinutes = @SessionTimeoutMinutes, InviteLinkExpiryMinutes = @InviteLinkExpiryMinutes, AllowScreenShare = @AllowScreenShare, AllowAnonymousJoin = @AllowAnonymousJoin, AllowGuestJoinViaLink = @AllowGuestJoinViaLink, EnableAuditLog = @EnableAuditLog, EnableCoBrowse = @EnableCoBrowse, EnableInSessionChat = @EnableInSessionChat, EnableAnnotations = @EnableAnnotations, EnableCursorBroadcast = @EnableCursorBroadcast, EnableFormSync = @EnableFormSync, ControlConsentMode = @ControlConsentMode, AllowedModules = @AllowedModules, ModifiedBy = @ModifiedBy, ModifiedDate = GETUTCDATE() WHEN NOT MATCHED THEN INSERT (DatabaseName, MaxParticipantsDefault, MaxParticipantsAbsolute, SessionTimeoutMinutes, InviteLinkExpiryMinutes, AllowScreenShare, AllowAnonymousJoin, AllowGuestJoinViaLink, EnableAuditLog, EnableCoBrowse, EnableInSessionChat, EnableAnnotations, EnableCursorBroadcast, EnableFormSync, ControlConsentMode, AllowedModules, ModifiedBy, ModifiedDate) VALUES (@DatabaseName, @MaxParticipantsDefault, @MaxParticipantsAbsolute, @SessionTimeoutMinutes, @InviteLinkExpiryMinutes, @AllowScreenShare, @AllowAnonymousJoin, @AllowGuestJoinViaLink, @EnableAuditLog, @EnableCoBrowse, @EnableInSessionChat, @EnableAnnotations, @EnableCursorBroadcast, @EnableFormSync, @ControlConsentMode, @AllowedModules, @ModifiedBy, GETUTCDATE());"; }