-- 100_user_weight_profiles_default_seed.sql
-- Системные preset-профили весов POI для Site Finder.
-- Per #114 (Макс feedback): садики и Мегамарт должны иметь разные веса.
--
-- Apply order: после 90_user_weight_profiles.sql (таблица уже существует)
-- Dependencies: user_weight_profiles table
--
-- Sentinel owner: '__system__' — не является реальным user_id,
-- используется только для системных presets.
-- UI: dropdown показывает system presets всем пользователям через
-- GET /api/v1/admin/site-finder/weight-profiles?user_id=__system__
-- или include_system=true (добавлен в #114 seed PR).
--
-- Idempotent: ON CONFLICT (user_id, profile_name) DO UPDATE — обновляет
-- веса если preset уже существует (safe re-apply на prod).

BEGIN;

INSERT INTO user_weight_profiles
    (user_id, profile_name, weights, is_default, description)
VALUES
    (
        '__system__',
        'Эконом',
        '{
            "school": 1.2,
            "kindergarten": 1.0,
            "pharmacy": 0.8,
            "hospital": 0.5,
            "shop_mall": 0.8,
            "shop_supermarket": 1.5,
            "shop_small": 1.0,
            "park": 1.2,
            "bus_stop": 1.0,
            "metro_stop": 0.8,
            "tram_stop": 0.5
        }'::jsonb,
        FALSE,
        'Эконом-класс: доступность магазинов и транспорта важнее премиальной инфраструктуры'
    ),
    (
        '__system__',
        'Комфорт',
        '{
            "school": 1.5,
            "kindergarten": 1.8,
            "pharmacy": 0.8,
            "hospital": 0.6,
            "shop_mall": 1.0,
            "shop_supermarket": 1.2,
            "shop_small": 0.5,
            "park": 1.8,
            "bus_stop": 0.5,
            "metro_stop": 1.2,
            "tram_stop": -0.3
        }'::jsonb,
        FALSE,
        'Комфорт-класс: парки, детсады и школы в приоритете — семейная аудитория'
    ),
    (
        '__system__',
        'Бизнес',
        '{
            "school": 1.0,
            "kindergarten": 0.8,
            "pharmacy": 0.6,
            "hospital": 0.5,
            "shop_mall": 2.0,
            "shop_supermarket": 0.8,
            "shop_small": 0.3,
            "park": 2.0,
            "bus_stop": 0.2,
            "metro_stop": 2.5,
            "tram_stop": -0.5
        }'::jsonb,
        FALSE,
        'Бизнес-класс: метро, ТЦ и парки в приоритете — платёжеспособная аудитория'
    )
ON CONFLICT (user_id, profile_name)
DO UPDATE SET
    weights     = EXCLUDED.weights,
    description = EXCLUDED.description,
    updated_at  = NOW();

COMMENT ON TABLE user_weight_profiles IS
    'POI weight profiles для site_finder. Per #114 (Макс feedback). '
    'weights = {"school": 1.5, "kindergarten": 1.5, "shop_mall": 1.2, ...}. '
    'Системные presets: user_id = ''__system__'' (3 preset: Эконом/Комфорт/Бизнес).';

COMMIT;
