| -- SQL Server DDL for SyncQueue table | |
| -- Path: D:\GRAD!!!!\Final\Graduation_Project-v1.2\Data\database\create_sync_queue.sql | |
| IF OBJECT_ID('SyncQueue', 'U') IS NULL | |
| BEGIN | |
| CREATE TABLE SyncQueue ( | |
| QueueId INT IDENTITY(1,1) PRIMARY KEY, | |
| ProjectId INT NOT NULL, | |
| OperationType VARCHAR(10) NOT NULL, | |
| Processed BIT NOT NULL DEFAULT 0, | |
| CreatedAt DATETIME2 NOT NULL DEFAULT SYSUTCDATETIME(), | |
| ProcessedAt DATETIME2 NULL, | |
| RetryCount INT NOT NULL DEFAULT 0, | |
| ErrorMessage NVARCHAR(MAX) NULL, | |
| CONSTRAINT CHK_SyncQueue_OperationType CHECK (OperationType IN ('UPSERT', 'DELETE')) | |
| ); | |
| -- Index to optimize querying of unprocessed items in chronological order | |
| CREATE INDEX IX_SyncQueue_Unprocessed | |
| ON SyncQueue (Processed, CreatedAt) | |
| INCLUDE (ProjectId, OperationType, RetryCount); | |
| PRINT 'SyncQueue table and index IX_SyncQueue_Unprocessed created successfully.'; | |
| END | |
| ELSE | |
| BEGIN | |
| PRINT 'SyncQueue table already exists.'; | |
| END | |