-- ClientFlow v4 migration 004: stronger outbox idempotency and state visibility. ALTER TABLE integration_outbox ADD COLUMN IF NOT EXISTS locked_at TIMESTAMPTZ; ALTER TABLE integration_outbox ADD COLUMN IF NOT EXISTS lock_owner TEXT; ALTER TABLE integration_outbox ADD COLUMN IF NOT EXISTS ignored_at TIMESTAMPTZ; CREATE UNIQUE INDEX IF NOT EXISTS ux_integration_outbox_idempotency_key ON integration_outbox(idempotency_key) WHERE idempotency_key IS NOT NULL; CREATE INDEX IF NOT EXISTS idx_integration_outbox_pending_dispatch ON integration_outbox(target_system, created_at) WHERE status = 'pending';