-- ============================================================ -- 004_domain_health_status.sql -- Persistent storage of the most recent health check result per domain. -- Updated whenever the user clicks "Check health". -- -- The 'has_problems' boolean drives the banner in the mailbox view. -- The 'details' JSONB column stores the full report so the modal can -- show last-known state without re-running the checks. -- ============================================================ CREATE TABLE IF NOT EXISTS domain_health_status ( domain TEXT PRIMARY KEY, checked_at TIMESTAMPTZ NOT NULL DEFAULT now(), has_problems BOOLEAN NOT NULL DEFAULT false, details JSONB NOT NULL DEFAULT '{}'::jsonb ); CREATE INDEX IF NOT EXISTS idx_domain_health_problems ON domain_health_status(has_problems, checked_at DESC);