23 lines
1.0 KiB
SQL
23 lines
1.0 KiB
SQL
CREATE TABLE kuknos_settlements (
|
|
id uuid PRIMARY KEY,
|
|
source_service text NOT NULL CHECK (source_service <> ''),
|
|
source_transaction_id text NOT NULL CHECK (source_transaction_id <> ''),
|
|
idempotency_key text NOT NULL UNIQUE CHECK (idempotency_key <> ''),
|
|
status text NOT NULL CHECK (status IN ('PENDING','SUBMITTED','CONFIRMED','RETRYABLE','MANUAL_REVIEW')),
|
|
network text NOT NULL DEFAULT 'kuknos',
|
|
signed_transaction_xdr text NOT NULL DEFAULT '',
|
|
transaction_hash text NOT NULL DEFAULT '',
|
|
attempts integer NOT NULL DEFAULT 0 CHECK (attempts >= 0),
|
|
available_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
|
locked_at timestamptz,
|
|
locked_by text NOT NULL DEFAULT '',
|
|
last_error text NOT NULL DEFAULT '',
|
|
submitted_at timestamptz,
|
|
confirmed_at timestamptz,
|
|
manual_review_at timestamptz,
|
|
created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
|
updated_at timestamptz NOT NULL DEFAULT clock_timestamp()
|
|
);
|
|
|
|
CREATE INDEX kuknos_settlements_due_idx ON kuknos_settlements (status, available_at);
|