-- Migration: 111_22f_domrf_obj_checks.sql
-- Context: Issue #297 sub-task 22f — "Проверено на наш.дом.рф" 6 checks per obj
-- Dependencies: domrf_kn_objects (obj_id values come from there; no FK enforced — obj_id
--               is a bigint key, not a FK, to allow scraping checks before obj row exists)
-- Deploy order: standalone — no prior migration required
-- Idempotent: yes (IF NOT EXISTS throughout)

BEGIN;

CREATE TABLE IF NOT EXISTS domrf_obj_checks (
    obj_id      bigint NOT NULL,
    check_type  text   NOT NULL,
    -- check_type values: no_problems / docs / timing / photos / bankruptcy / declaration
    passed      bool   NOT NULL,
    checked_at  timestamptz NOT NULL DEFAULT NOW(),
    scraped_at  timestamptz NOT NULL DEFAULT NOW(),
    PRIMARY KEY (obj_id, check_type)
);

CREATE INDEX IF NOT EXISTS domrf_obj_checks_obj_idx
    ON domrf_obj_checks (obj_id);

COMMENT ON TABLE domrf_obj_checks IS
    '6 проверок «Проверено на наш.дом.рф» per obj_id: '
    'no_problems, docs, timing, photos, bankruptcy, declaration. '
    'Issue #297 sub-task 22f.';

COMMENT ON COLUMN domrf_obj_checks.obj_id IS
    'DOM.РФ объект (кн-объект); из domrf_kn_objects.obj_id.';

COMMENT ON COLUMN domrf_obj_checks.check_type IS
    'Тип проверки. Допустимые значения: '
    'no_problems — у застройщика нет проблемных объектов; '
    'docs — опубликован полный комплект документов; '
    'timing — сроки строительства соблюдены; '
    'photos — актуальные фото хода строительства; '
    'bankruptcy — застройщик не банкрот; '
    'declaration — проектная декларация обновлена.';

COMMENT ON COLUMN domrf_obj_checks.passed IS
    'TRUE = чек пройден (зелёная галочка на наш.дом.рф).';

COMMENT ON COLUMN domrf_obj_checks.checked_at IS
    'Дата/время актуальности чека по данным DOM.РФ (берётся из payload).';

COMMENT ON COLUMN domrf_obj_checks.scraped_at IS
    'Дата/время последнего scrape, когда строка была записана/обновлена.';

COMMIT;
