-- e2e_runs: una fila por corrida completa de e2e_checks de la app (fase 4 del bucle reactivo).
-- Diferente de e2e_tests (004): aquella es por test definido, esta es por suite ejecutada.
CREATE TABLE IF NOT EXISTS e2e_runs (
    id            TEXT PRIMARY KEY,
    app_id        TEXT NOT NULL,
    started_at    INTEGER NOT NULL,
    finished_at   INTEGER,
    status        TEXT NOT NULL,        -- pass|fail|partial
    checks_total  INTEGER NOT NULL,
    checks_pass   INTEGER NOT NULL,
    checks_fail   INTEGER NOT NULL,
    checks_warn   INTEGER NOT NULL DEFAULT 0,
    summary_json  TEXT NOT NULL DEFAULT '[]',
    triggered_by  TEXT NOT NULL DEFAULT 'manual',  -- manual|git_push|cron|reactive_loop
    git_sha       TEXT NOT NULL DEFAULT ''
);

CREATE INDEX IF NOT EXISTS e2e_runs_app_idx ON e2e_runs(app_id, started_at DESC);
CREATE INDEX IF NOT EXISTS e2e_runs_status_idx ON e2e_runs(status, started_at DESC);
