CREATE TABLE IF NOT EXISTS quote_comparisons (
    id BIGSERIAL PRIMARY KEY,
    tenant_key TEXT NOT NULL,
    comparison_id TEXT NOT NULL,
    recommended_vendor TEXT NOT NULL,
    score DOUBLE PRECISION NOT NULL,
    normalized_total DOUBLE PRECISION NOT NULL,
    payload JSONB NOT NULL,
    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    UNIQUE (tenant_key, comparison_id)
);

CREATE INDEX IF NOT EXISTS quote_comparisons_tenant_updated_idx
    ON quote_comparisons (tenant_key, updated_at DESC);

CREATE TABLE IF NOT EXISTS quote_execution_receipts (
    id BIGSERIAL PRIMARY KEY,
    tenant_key TEXT NOT NULL,
    comparison_id TEXT NOT NULL,
    receipt_id UUID NOT NULL UNIQUE,
    skill_name TEXT NOT NULL,
    status TEXT NOT NULL,
    input_hash TEXT NOT NULL,
    result_hash TEXT NOT NULL,
    payload JSONB NOT NULL,
    created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE INDEX IF NOT EXISTS quote_execution_receipts_tenant_comparison_idx
    ON quote_execution_receipts (tenant_key, comparison_id, created_at DESC);
