export interface Region {
    code: number; // 1..89, sequential по конституционному порядку (Art. 65)
    name: string; // официальное название субъекта
    federalDistrict: number; // 1..8 (см. FEDERAL_DISTRICT_NAMES)
}

// Конституционный порядок (ст. 65 Конституции РФ, ред. 2022):
// 24 республики (1..24) → 9 краёв (25..33) → 48 областей (34..81) →
// 3 города фед.знач. (82..84) → 1 АО Еврейская (85) → 4 АО (86..89).
// Sentinel code:0 = "Вся РФ" (UI hint, в БД хранится как regions=[]).
export const REGIONS: Region[] = [
    { code: 0, name: 'Вся РФ', federalDistrict: 0 },
    // 24 республики
    { code: 1, name: 'Республика Адыгея', federalDistrict: 3 },
    { code: 2, name: 'Республика Алтай', federalDistrict: 7 },
    { code: 3, name: 'Республика Башкортостан', federalDistrict: 5 },
    { code: 4, name: 'Республика Бурятия', federalDistrict: 8 },
    { code: 5, name: 'Республика Дагестан', federalDistrict: 4 },
    { code: 6, name: 'Донецкая Народная Республика', federalDistrict: 3 },
    { code: 7, name: 'Республика Ингушетия', federalDistrict: 4 },
    { code: 8, name: 'Кабардино-Балкарская Республика', federalDistrict: 4 },
    { code: 9, name: 'Республика Калмыкия', federalDistrict: 3 },
    { code: 10, name: 'Карачаево-Черкесская Республика', federalDistrict: 4 },
    { code: 11, name: 'Республика Карелия', federalDistrict: 2 },
    { code: 12, name: 'Республика Коми', federalDistrict: 2 },
    { code: 13, name: 'Республика Крым', federalDistrict: 3 },
    { code: 14, name: 'Луганская Народная Республика', federalDistrict: 3 },
    { code: 15, name: 'Республика Марий Эл', federalDistrict: 5 },
    { code: 16, name: 'Республика Мордовия', federalDistrict: 5 },
    { code: 17, name: 'Республика Саха (Якутия)', federalDistrict: 8 },
    { code: 18, name: 'Республика Северная Осетия — Алания', federalDistrict: 4 },
    { code: 19, name: 'Республика Татарстан', federalDistrict: 5 },
    { code: 20, name: 'Республика Тыва', federalDistrict: 7 },
    { code: 21, name: 'Удмуртская Республика', federalDistrict: 5 },
    { code: 22, name: 'Республика Хакасия', federalDistrict: 7 },
    { code: 23, name: 'Чеченская Республика', federalDistrict: 4 },
    { code: 24, name: 'Чувашская Республика', federalDistrict: 5 },
    // 9 краёв
    { code: 25, name: 'Алтайский край', federalDistrict: 7 },
    { code: 26, name: 'Забайкальский край', federalDistrict: 8 },
    { code: 27, name: 'Камчатский край', federalDistrict: 8 },
    { code: 28, name: 'Краснодарский край', federalDistrict: 3 },
    { code: 29, name: 'Красноярский край', federalDistrict: 7 },
    { code: 30, name: 'Пермский край', federalDistrict: 5 },
    { code: 31, name: 'Приморский край', federalDistrict: 8 },
    { code: 32, name: 'Ставропольский край', federalDistrict: 4 },
    { code: 33, name: 'Хабаровский край', federalDistrict: 8 },
    // 48 областей
    { code: 34, name: 'Амурская область', federalDistrict: 8 },
    { code: 35, name: 'Архангельская область', federalDistrict: 2 },
    { code: 36, name: 'Астраханская область', federalDistrict: 3 },
    { code: 37, name: 'Белгородская область', federalDistrict: 1 },
    { code: 38, name: 'Брянская область', federalDistrict: 1 },
    { code: 39, name: 'Владимирская область', federalDistrict: 1 },
    { code: 40, name: 'Волгоградская область', federalDistrict: 3 },
    { code: 41, name: 'Вологодская область', federalDistrict: 2 },
    { code: 42, name: 'Воронежская область', federalDistrict: 1 },
    { code: 43, name: 'Запорожская область', federalDistrict: 3 },
    { code: 44, name: 'Ивановская область', federalDistrict: 1 },
    { code: 45, name: 'Иркутская область', federalDistrict: 7 },
    { code: 46, name: 'Калининградская область', federalDistrict: 2 },
    { code: 47, name: 'Калужская область', federalDistrict: 1 },
    { code: 48, name: 'Кемеровская область', federalDistrict: 7 },
    { code: 49, name: 'Кировская область', federalDistrict: 5 },
    { code: 50, name: 'Костромская область', federalDistrict: 1 },
    { code: 51, name: 'Курганская область', federalDistrict: 6 },
    { code: 52, name: 'Курская область', federalDistrict: 1 },
    { code: 53, name: 'Ленинградская область', federalDistrict: 2 },
    { code: 54, name: 'Липецкая область', federalDistrict: 1 },
    { code: 55, name: 'Магаданская область', federalDistrict: 8 },
    { code: 56, name: 'Московская область', federalDistrict: 1 },
    { code: 57, name: 'Мурманская область', federalDistrict: 2 },
    { code: 58, name: 'Нижегородская область', federalDistrict: 5 },
    { code: 59, name: 'Новгородская область', federalDistrict: 2 },
    { code: 60, name: 'Новосибирская область', federalDistrict: 7 },
    { code: 61, name: 'Омская область', federalDistrict: 7 },
    { code: 62, name: 'Оренбургская область', federalDistrict: 5 },
    { code: 63, name: 'Орловская область', federalDistrict: 1 },
    { code: 64, name: 'Пензенская область', federalDistrict: 5 },
    { code: 65, name: 'Псковская область', federalDistrict: 2 },
    { code: 66, name: 'Ростовская область', federalDistrict: 3 },
    { code: 67, name: 'Рязанская область', federalDistrict: 1 },
    { code: 68, name: 'Самарская область', federalDistrict: 5 },
    { code: 69, name: 'Саратовская область', federalDistrict: 5 },
    { code: 70, name: 'Сахалинская область', federalDistrict: 8 },
    { code: 71, name: 'Свердловская область', federalDistrict: 6 },
    { code: 72, name: 'Смоленская область', federalDistrict: 1 },
    { code: 73, name: 'Тамбовская область', federalDistrict: 1 },
    { code: 74, name: 'Тверская область', federalDistrict: 1 },
    { code: 75, name: 'Томская область', federalDistrict: 7 },
    { code: 76, name: 'Тульская область', federalDistrict: 1 },
    { code: 77, name: 'Тюменская область', federalDistrict: 6 },
    { code: 78, name: 'Ульяновская область', federalDistrict: 5 },
    { code: 79, name: 'Херсонская область', federalDistrict: 3 },
    { code: 80, name: 'Челябинская область', federalDistrict: 6 },
    { code: 81, name: 'Ярославская область', federalDistrict: 1 },
    // 3 города федерального значения
    { code: 82, name: 'Москва', federalDistrict: 1 },
    { code: 83, name: 'Санкт-Петербург', federalDistrict: 2 },
    { code: 84, name: 'Севастополь', federalDistrict: 3 },
    // 1 автономная область
    { code: 85, name: 'Еврейская автономная область', federalDistrict: 8 },
    // 4 автономных округа
    { code: 86, name: 'Ненецкий автономный округ', federalDistrict: 2 },
    { code: 87, name: 'Ханты-Мансийский автономный округ — Югра', federalDistrict: 6 },
    { code: 88, name: 'Чукотский автономный округ', federalDistrict: 8 },
    { code: 89, name: 'Ямало-Ненецкий автономный округ', federalDistrict: 6 },
];

export const FEDERAL_DISTRICT_NAMES: Record<number, string> = {
    1: 'Центральный',
    2: 'Северо-Западный',
    3: 'Южный',
    4: 'Северо-Кавказский',
    5: 'Приволжский',
    6: 'Уральский',
    7: 'Сибирский',
    8: 'Дальневосточный',
};
