-- migrate:up
--
-- Append-only log of contract-check probes against the Tracksolid Pro API.
-- One row per (endpoint, attempt). The SLO worker reads this to compute
-- contract_drift_days = days since the most-recent successful probe for the
-- laggard endpoint. Threshold 1 day → red badge if any endpoint hasn't
-- validated cleanly in the last 24h.

CREATE SCHEMA IF NOT EXISTS ops;

CREATE TABLE ops.contract_check_log (
    check_id        bigserial PRIMARY KEY,
    endpoint        text        NOT NULL,
    target          text,
    success         bool        NOT NULL,
    error_class     text,
    error_detail    text,
    sample          jsonb,
    parser_version  text,
    checked_at      timestamptz NOT NULL DEFAULT now()
);

CREATE INDEX contract_check_endpoint_time_idx
    ON ops.contract_check_log (endpoint, checked_at DESC);

CREATE INDEX contract_check_success_time_idx
    ON ops.contract_check_log (success, checked_at DESC);

-- migrate:down

DROP TABLE IF EXISTS ops.contract_check_log;
