CREATE TABLE IF NOT EXISTS payments ( id BIGSERIAL PRIMARY KEY, customer TEXT NOT NULL, amount BIGINT NOT NULL, currency CHAR(3) NOT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT now() ); -- Used only when idempotency.store=postgres. CREATE TABLE IF NOT EXISTS idempotency_keys ( idem_key TEXT PRIMARY KEY, fingerprint CHAR(64) NOT NULL, status TEXT NOT NULL, response_status INT, content_type TEXT, response_body TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT now(), expires_at TIMESTAMPTZ NOT NULL ); CREATE INDEX IF NOT EXISTS idempotency_keys_expires_at ON idempotency_keys (expires_at);