diff --git a/db/migrations/001_app_records.sql b/db/migrations/001_app_records.sql index 9317315..8176274 100644 --- a/db/migrations/001_app_records.sql +++ b/db/migrations/001_app_records.sql @@ -1,11 +1,34 @@ -CREATE TABLE IF NOT EXISTS app_records ( +CREATE TABLE IF NOT EXISTS data_workflows ( id BIGSERIAL PRIMARY KEY, tenant_key TEXT NOT NULL, - record_kind TEXT NOT NULL, - payload JSONB NOT NULL, + workflow_id TEXT NOT NULL, + workflow_name TEXT NOT NULL, + workflow_path TEXT NOT NULL, + source_format TEXT NOT NULL, + source_filename TEXT NOT NULL, + spec JSONB NOT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), - updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + UNIQUE (tenant_key, workflow_id) ); -CREATE INDEX IF NOT EXISTS app_records_tenant_kind_idx - ON app_records (tenant_key, record_kind, created_at DESC); +CREATE INDEX IF NOT EXISTS data_workflows_tenant_created_idx + ON data_workflows (tenant_key, created_at DESC); + +CREATE TABLE IF NOT EXISTS execution_receipts ( + id BIGSERIAL PRIMARY KEY, + tenant_key TEXT NOT NULL, + receipt_id TEXT NOT NULL UNIQUE, + workflow_id TEXT NOT NULL, + skill_name TEXT NOT NULL, + status TEXT NOT NULL, + input_hash TEXT NOT NULL, + result_summary JSONB NOT NULL, + warnings JSONB NOT NULL DEFAULT '[]'::jsonb, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS execution_receipts_tenant_created_idx + ON execution_receipts (tenant_key, created_at DESC); +CREATE INDEX IF NOT EXISTS execution_receipts_tenant_workflow_idx + ON execution_receipts (tenant_key, workflow_id);