18 lines
708 B
SQL
18 lines
708 B
SQL
|
|
-- Mail sync queue table for pending IMAP operations
|
||
|
|
CREATE TABLE IF NOT EXISTS mail_sync_queue (
|
||
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||
|
|
tenant_id UUID NOT NULL,
|
||
|
|
mail_id UUID NOT NULL,
|
||
|
|
operation VARCHAR(50) NOT NULL,
|
||
|
|
payload JSONB NOT NULL DEFAULT '{}',
|
||
|
|
status VARCHAR(20) NOT NULL DEFAULT 'pending',
|
||
|
|
attempts INTEGER NOT NULL DEFAULT 0,
|
||
|
|
max_attempts INTEGER NOT NULL DEFAULT 3,
|
||
|
|
last_error TEXT,
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS ix_mail_sync_queue_status ON mail_sync_queue (status);
|
||
|
|
CREATE INDEX IF NOT EXISTS ix_mail_sync_queue_mail ON mail_sync_queue (mail_id);
|