-- 96_ekburg_construction_permits.sql
-- Issue #105 — РНС/РВЭ ЕКБ 2022-2026 (xlsx от екатеринбург.рф, Форма 3 и 4 Росстата).
--
-- Источник: https://xn--80acgfbsl1azdqr.xn--p1ai/дляработы/гиз/градостроительство/разрешение
-- Формат: XLSX с двумя листами:
--   «реестр разрешений на строительс» — Таблица 3 (РНС)
--   «реестр разрешений на ввод»      — Таблица 4 (РВЭ)
--
-- Refresh: monthly via tasks.ekburg_permits_sync.refresh_all
-- Geocoding: raw_coord_x / raw_coord_y — местная СКФ-66 (Свердловская обл.),
--            geocoded_lat / geocoded_lon заполняются отдельной задачей (Phase 3).

BEGIN;

CREATE TABLE IF NOT EXISTS ekburg_construction_permits (
    id                  BIGSERIAL PRIMARY KEY,
    permit_type         TEXT        NOT NULL CHECK (permit_type IN ('RNS', 'RVE')),

    -- Реквизиты разрешения
    permit_number       TEXT        NOT NULL,
    issue_date          DATE,
    expiry_date         DATE,

    -- Застройщик
    developer_inn       TEXT,
    developer_name      TEXT,

    -- Объект
    object_name         TEXT,
    object_type         TEXT,           -- из Справочника: многоквартирные жилые дома; и т.д.
    construction_address TEXT,
    cadastral_number    TEXT,           -- кадастровый номер ЗУ (колонка 6)

    -- Площади
    total_area_sqm      NUMERIC,        -- общая площадь по проекту, м²
    living_area_sqm     NUMERIC,        -- площадь жилых помещений по проекту, м²
    living_area_fact_sqm NUMERIC,       -- площадь жилых помещений фактически (только РВЭ)

    -- Координаты (местная СКФ-66 Свердловской обл. — CRS TBD Phase 3)
    raw_coord_x         TEXT,
    raw_coord_y         TEXT,

    -- РВЭ-специфичные поля
    rve_number          TEXT,           -- номер разрешения на ввод
    rve_date            DATE,           -- дата разрешения на ввод

    -- Геокодирование (Phase 3)
    geocoded_lat        NUMERIC,
    geocoded_lon        NUMERIC,
    geom                GEOMETRY(POINT, 4326),

    -- Метаданные загрузки
    source_year         INT         NOT NULL,
    source_url          TEXT,
    raw_row             JSONB,
    fetched_at          TIMESTAMPTZ DEFAULT NOW(),

    UNIQUE (permit_type, permit_number)
);

CREATE INDEX IF NOT EXISTS gist_ekburg_permits_geom
    ON ekburg_construction_permits USING GIST (geom);

CREATE INDEX IF NOT EXISTS idx_ekburg_permits_issue_date
    ON ekburg_construction_permits (issue_date);

CREATE INDEX IF NOT EXISTS idx_ekburg_permits_developer
    ON ekburg_construction_permits (developer_inn);

CREATE INDEX IF NOT EXISTS idx_ekburg_permits_year
    ON ekburg_construction_permits (source_year);

CREATE INDEX IF NOT EXISTS idx_ekburg_permits_type_year
    ON ekburg_construction_permits (permit_type, source_year);

COMMENT ON TABLE ekburg_construction_permits IS
    'РНС/РВЭ ЕКБ 2022-2026 (Форма 3/4 Росстата). '
    'Source: екатеринбург.рф xlsx. Refresh: monthly via tasks/ekburg_permits_sync. '
    'Координаты raw_coord_x/y в местной СКФ-66 (CRS TBD). '
    'Геокодирование через Nominatim — Phase 3 (отдельный PR).';

COMMENT ON COLUMN ekburg_construction_permits.raw_coord_x IS
    'X-координата характерной точки ЗУ (местная система координат СКФ-66 / СНСК-66).';

COMMENT ON COLUMN ekburg_construction_permits.raw_coord_y IS
    'Y-координата характерной точки ЗУ (местная система координат СКФ-66 / СНСК-66).';

COMMENT ON COLUMN ekburg_construction_permits.living_area_fact_sqm IS
    'Заполняется только для РВЭ (Таблица 4, колонка 15).';

COMMIT;
