Files
call-center/migrations/sql/0028_sales_payment_webhook_events_sqlite.sql
T

32 lines
1.3 KiB
SQL

CREATE TABLE IF NOT EXISTS sales_payment_webhook_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
tenant_id TEXT NOT NULL,
payment_provider TEXT NOT NULL,
provider_account_id TEXT,
external_event_id TEXT,
external_payment_id TEXT,
event_type TEXT NOT NULL,
event_status TEXT NOT NULL DEFAULT 'received',
signature_status TEXT NOT NULL DEFAULT 'unchecked',
raw_payload_hash TEXT NOT NULL,
normalized_payload_json TEXT NOT NULL DEFAULT '{}',
headers_json TEXT NOT NULL DEFAULT '{}',
received_at TEXT NOT NULL,
processed_at TEXT,
error_message TEXT,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_sales_payment_webhook_events_received
ON sales_payment_webhook_events(tenant_id, received_at);
CREATE INDEX IF NOT EXISTS idx_sales_payment_webhook_events_payment
ON sales_payment_webhook_events(tenant_id, payment_provider, external_payment_id);
CREATE UNIQUE INDEX IF NOT EXISTS idx_sales_payment_webhook_events_external_event_unique
ON sales_payment_webhook_events(tenant_id, payment_provider, external_event_id)
WHERE external_event_id IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS idx_sales_payments_tenant_external_payment_unique
ON sales_payments(tenant_id, payment_provider, external_payment_id)
WHERE external_payment_id IS NOT NULL;