-- Migration 100: domrf_kn_flat_plans — планировки квартир (22c) -- -- Хранит URL картинки планировки для каждой квартиры DOM.РФ. -- Источник данных: каталог-квартир SSR-страница / flats_plans endpoint. -- Скачивание бинарников — Celery task (future PR, 22d-track). -- -- Phase 3 / #297 sub-task 22c. BEGIN; CREATE TABLE IF NOT EXISTS domrf_kn_flat_plans ( ods_id text PRIMARY KEY, obj_id bigint NOT NULL, plan_image_url text NOT NULL, local_path text, width_px int, height_px int, size_bytes int, downloaded_at timestamptz, snapshot_date date NOT NULL, scraped_at timestamptz DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS domrf_kn_flat_plans_obj_idx ON domrf_kn_flat_plans (obj_id); COMMENT ON TABLE domrf_kn_flat_plans IS 'Планировки квартир DOM.РФ: URL изображения + метаданные после скачивания. ' 'PK = ods_id (совпадает с domrf_kn_flats.ods_id). ' 'Источник: каталог-квартир SSR / flats_plans endpoint. ' 'Issue #297 sub-task 22c.'; COMMENT ON COLUMN domrf_kn_flat_plans.ods_id IS 'Идентификатор квартиры DOM.РФ (напр. 65136/1/1.4.3) — PK и FK на domrf_kn_flats.ods_id.'; COMMENT ON COLUMN domrf_kn_flat_plans.plan_image_url IS 'Абсолютный URL картинки планировки с сервера DOM.РФ (cdn или основной домен).'; COMMENT ON COLUMN domrf_kn_flat_plans.local_path IS 'Путь к локальной копии файла после скачивания (относительно MEDIA_ROOT или абсолютный).'; COMMENT ON COLUMN domrf_kn_flat_plans.downloaded_at IS 'Момент успешного скачивания бинарника. NULL = ещё не скачан.'; COMMENT ON COLUMN domrf_kn_flat_plans.snapshot_date IS 'Дата snapshot DOM.РФ, в котором впервые обнаружен URL.'; COMMIT;