<?php

function russia_install() {
  db_insert('uc_countries')
    ->fields(array(
      'country_id' => 643,
      'country_name' => 'Russian Federation',
      'country_iso_code_2' => 'RU',
      'country_iso_code_3' => 'RUS',
      'version' => 2,
    ))
    ->execute();

  // Make the entries in the zones table.
  $zones = array(
    array(643, 'AD', 'Республика Адыгея'),
    array(643, 'AL', 'Республика Алтай'),
    array(643, 'BA', 'Республика Башкортостан'),
    array(643, 'BU', 'Республика Бурятия'),
    array(643, 'DA', 'Республика Дагестан'),
    array(643, 'IN', 'Республика Ингушетия'),
    array(643, 'KB', 'Кабардино-Балкарская Республика'),
    array(643, 'KL', 'Республика Калмыкия'),
    array(643, 'KC', 'Карачаево-Черкесская республика'),
    array(643, 'KR', 'Республика Карелия'),
    array(643, 'KO', 'Республика Коми'),
    array(643, 'ME', 'Республика Марий Эл'),
    array(643, 'MO', 'Республика Мордовия'),
    array(643, 'SA', 'Республика Саха (Якутия)'),
    array(643, 'SE', 'Республика Северная Осетия-Алания'),
    array(643, 'TA', 'Республика Татарстан'),
    array(643, 'TY', 'Республика Тыва'),
    array(643, 'UD', 'Удмуртская Республика'),
    array(643, 'KK', 'Республика Хакасия'),
    array(643, 'CE', 'Чеченская республика'),
    array(643, 'CU', 'Чувашская Республика'),
    array(643, 'ALT', 'Алтайский край'),
    array(643, 'KDA', 'Краснодарский край'),
    array(643, 'KIA', 'Красноярский край'),
    array(643, 'PER', 'Пермский край'),
    array(643, 'PRI', 'Приморский край'),
    array(643, 'STA', 'Ставропольский край'),
    array(643, 'KHA', 'Хабаровский край'),
    array(643, 'AMU', 'Амурская область'),
    array(643, 'ARK', 'Архангельская область'),
    array(643, 'AST', 'Астраханская область'),
    array(643, 'BEL', 'Белгородская область'),
    array(643, 'BRY', 'Брянская область'),
    array(643, 'VLA', 'Владимирская область'),
    array(643, 'VGG', 'Волгоградская область'),
    array(643, 'VLG', 'Вологодская область'),
    array(643, 'VOR', 'Воронежская область'),
    array(643, 'IVA', 'Ивановская область'),
    array(643, 'IRK', 'Иркутская область'),
    array(643, 'KGD', 'Калининградская область'),
    array(643, 'KLU', 'Калужская область'),
    array(643, 'KAM', 'Камчатский край'),
    array(643, 'KEM', 'Кемеровская область'),
    array(643, 'KIR', 'Кировская область'),
    array(643, 'KOS', 'Костромская область'),
    array(643, 'KGN', 'Курганская область'),
    array(643, 'KRS', 'Курская область'),
    array(643, 'LEN', 'Ленинградская область'),
    array(643, 'LIP', 'Липецкая область'),
    array(643, 'MAG', 'Магаданская область'),
    array(643, 'MOS', 'Московская область'),
    array(643, 'MUR', 'Мурманская область'),
    array(643, 'NIZ', 'Нижегородская область'),
    array(643, 'NGR', 'Новгородская область'),
    array(643, 'NVS', 'Новосибирская область'),
    array(643, 'OMS', 'Омская область'),
    array(643, 'ORE', 'Оренбургская область'),
    array(643, 'ORL', 'Орловская область'),
    array(643, 'PNZ', 'Пензенская область'),
    array(643, 'PSK', 'Псковская область'),
    array(643, 'ROS', 'Ростовская область'),
    array(643, 'RYA', 'Рязанская область'),
    array(643, 'SAM', 'Самарская область'),
    array(643, 'SAR', 'Саратовская область'),
    array(643, 'SAK', 'Сахалинская область'),
    array(643, 'SVE', 'Свердловская область'),
    array(643, 'SMO', 'Смоленская область'),
    array(643, 'TAM', 'Тамбовская область'),
    array(643, 'TVE', 'Тверская область'),
    array(643, 'TOM', 'Томская область'),
    array(643, 'TUL', 'Тульская область'),
    array(643, 'TYU', 'Тюменская область'),
    array(643, 'ULY', 'Ульяновская область'),
    array(643, 'CHE', 'Челябинская область'),
    array(643, 'YAR', 'Ярославская область'),
    array(643, 'MOW', 'Москва'),
    array(643, 'SPE', 'Санкт-Петербург'),
    array(643, 'YEV', 'Еврейская автономная область'),
    array(643, 'NEN', 'Ненецкий автономный округ'),
    array(643, 'KHM', 'Ханты-Мансийский автономный округ - Югра'),
    array(643, 'CHU', 'Чукотский автономный округ'),
    array(643, 'YAN', 'Ямало-Ненецкий автономный округ'),
    array(643, 'ZAB', 'Забайкальский край'),
  );

  $query = db_insert('uc_zones')->fields(array('zone_country_id', 'zone_code', 'zone_name'));
  foreach ($zones as $zone) {
    $query->values($zone);
  }
  $query->execute();

  // Set address format
  uc_set_address_format(
    643,
    "!company\r\n".
    "!first_name !last_name\r\n".
    "!street1\r\n".
    "!street2\r\n".
    "!postal_code !city\r\n".
    "!country_name_if"
  );
}

function russia_update($version) {
  switch ($version) {
    case 2:
      // Correct ISO-3166-1 country name
      db_update('uc_countries')
        ->fields(array('country_name' => 'Russian Federation'))
        ->condition('country_id', 643)
        ->execute();

      // Remove old obsolete zones
      db_delete('uc_zones')
        ->condition(db_and()
          ->condition('zone_country_id', 643)
          ->condition('zone_code', 'AGB'))
        ->execute();
      db_delete('uc_zones')
        ->condition(db_and()
          ->condition('zone_country_id', 643)
          ->condition('zone_code', 'CHI'))
        ->execute();
      db_delete('uc_zones')
        ->condition(db_and()
          ->condition('zone_country_id', 643)
          ->condition('zone_code', 'KOR'))
        ->execute();
      db_delete('uc_zones')
        ->condition(db_and()
          ->condition('zone_country_id', 643)
          ->condition('zone_code', 'UOB'))
        ->execute();

      // Add some new zones
      $zones = array(
        array(643, 'ZAB', 'Забайкальский край'),
      );

      $query = db_insert('uc_zones')->fields(array('zone_country_id', 'zone_code', 'zone_name'));
      foreach ($zones as $zone) {
        $query->values($zone);
      }
      $query->execute();

      // Rename other zones
      db_update('uc_zones')
        ->fields(array('zone_name' => 'Камчатский край', 'zone_code' => 'KAM'))
        ->condition('zone_country_id', 643)
        ->condition('zone_code', 'KAM')
        ->execute();

      break;
  }
}
