a2a-source-edit: write db/migrations/001_contract_clock.sql
This commit is contained in:
@@ -1,29 +1,40 @@
|
|||||||
CREATE TABLE IF NOT EXISTS contract_clock_contracts (
|
CREATE TABLE IF NOT EXISTS contracts (
|
||||||
tenant_key TEXT NOT NULL,
|
|
||||||
contract_id TEXT NOT NULL,
|
|
||||||
title TEXT NOT NULL,
|
|
||||||
source_text_sha256 TEXT NOT NULL,
|
|
||||||
deadlines JSONB NOT NULL,
|
|
||||||
analysis JSONB NOT NULL,
|
|
||||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
||||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
||||||
PRIMARY KEY (tenant_key, contract_id)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS contract_clock_contracts_tenant_updated_idx
|
|
||||||
ON contract_clock_contracts (tenant_key, updated_at DESC);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS contract_clock_execution_receipts (
|
|
||||||
id BIGSERIAL PRIMARY KEY,
|
id BIGSERIAL PRIMARY KEY,
|
||||||
tenant_key TEXT NOT NULL,
|
tenant_key TEXT NOT NULL,
|
||||||
contract_id TEXT NOT NULL,
|
contract_id TEXT NOT NULL,
|
||||||
skill_name TEXT NOT NULL,
|
title TEXT NOT NULL,
|
||||||
task_id TEXT NOT NULL,
|
source_text_hash TEXT NOT NULL,
|
||||||
input_hash TEXT NOT NULL,
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
status TEXT NOT NULL,
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
result_summary JSONB NOT NULL,
|
CONSTRAINT contracts_tenant_contract_key UNIQUE (tenant_key, contract_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS contract_deadlines (
|
||||||
|
id BIGSERIAL PRIMARY KEY,
|
||||||
|
contract_pk BIGINT NOT NULL REFERENCES contracts(id) ON DELETE CASCADE,
|
||||||
|
kind TEXT NOT NULL CHECK (kind IN ('renewal', 'notice')),
|
||||||
|
deadline_date DATE NOT NULL,
|
||||||
|
source_text TEXT,
|
||||||
|
rationale TEXT,
|
||||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS contract_clock_receipts_tenant_contract_idx
|
CREATE INDEX IF NOT EXISTS contract_deadlines_contract_idx
|
||||||
ON contract_clock_execution_receipts (tenant_key, contract_id, created_at DESC);
|
ON contract_deadlines (contract_pk, deadline_date, kind);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS execution_receipts (
|
||||||
|
id BIGSERIAL PRIMARY KEY,
|
||||||
|
receipt_id TEXT NOT NULL UNIQUE,
|
||||||
|
tenant_key TEXT NOT NULL,
|
||||||
|
contract_id TEXT,
|
||||||
|
tool_name TEXT NOT NULL,
|
||||||
|
task_id TEXT,
|
||||||
|
input_hash TEXT NOT NULL,
|
||||||
|
result_hash TEXT NOT NULL,
|
||||||
|
status TEXT NOT NULL CHECK (status IN ('ok', 'error')),
|
||||||
|
payload JSONB NOT NULL,
|
||||||
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS execution_receipts_tenant_contract_idx
|
||||||
|
ON execution_receipts (tenant_key, contract_id, created_at DESC);
|
||||||
|
|||||||
Reference in New Issue
Block a user