20 lines
587 B
PL/PgSQL
20 lines
587 B
PL/PgSQL
BEGIN;
|
|
SET ROLE continuity_role;
|
|
CREATE TABLE IF NOT EXISTS continuity.action_receipts (
|
|
action_intent_id TEXT PRIMARY KEY,
|
|
authorized_action_id TEXT NOT NULL,
|
|
owner_principal_id TEXT NOT NULL,
|
|
prospective_item_id TEXT NOT NULL,
|
|
expected_revision BIGINT NOT NULL,
|
|
from_state TEXT NOT NULL,
|
|
to_state TEXT NOT NULL,
|
|
evidence_ref TEXT NOT NULL,
|
|
result_state TEXT NOT NULL,
|
|
result_revision BIGINT NOT NULL,
|
|
recorded_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CHECK (expected_revision > 0),
|
|
CHECK (result_revision > expected_revision)
|
|
);
|
|
RESET ROLE;
|
|
COMMIT;
|