<?php

/**
 * Implements hook_install() using the name of the country as the base of
 * the function name.
 */
function iran_install() {
  // Make the entry in the country table.
  // VALUES = Country ID, Country Name, 2-digit Code, 3-digit Code, File Version
  db_insert('uc_countries')
    ->fields(array(
      'country_id' => 364,
      'country_name' => 'Iran, Islamic Republic of',
      'country_iso_code_2' => 'IR',
      'country_iso_code_3' => 'IRN',
      'version' => 3,
    ))
    ->execute();

  // Make the entries in the zones table.
  $zones = array(
    array(364, 'AS', 'آذربایجان شرقی'),
    array(364, 'AG', 'آذربایجان غربی'),
    array(364, 'AR', 'اردبیل'),
    array(364, 'ES', 'اصفهان'),
    array(364, 'AL', 'البرز'),
    array(364, 'IL', 'ایلام'),
    array(364, 'BU', 'بوشهر'),
    array(364, 'TH', 'تهران'),
    array(364, 'CB', 'چهار محال بختیاری'),
    array(364, 'KH', 'خراسان جنوبی'),
    array(364, 'KH', 'خراسان رضوی'),
    array(364, 'KH', 'خراسان شمالی'),
    array(364, 'KZ', 'خوزستان'),
    array(364, 'ZN', 'زنجان'),
    array(364, 'SB', 'سیستان و بلوچستان'),
    array(364, 'SM', 'سمنان'),
    array(364, 'FR', 'فارس'),
    array(364, 'QZ', 'قزوین'),
    array(364, 'QM', 'قم'),
    array(364, 'KD', 'کردستان'),
    array(364, 'KR', 'کرمان'),
    array(364, 'KS', 'کرمانشاه'),
    array(364, 'KB', 'کهگیلویه و بویر احمد'),
    array(364, 'GL', 'گیلان'),
    array(364, 'GS', 'گلستان'),
    array(364, 'LR', 'لرستان'),
    array(364, 'MZ', 'مازندران'),
    array(364, 'MR', 'مرکزی'),
    array(364, 'HR', 'هرمزگان'),
    array(364, 'HM', 'همدان'),
    array(364, 'YZ', 'یزد'),
  );

  $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(
    364,
    "!first_name !last_name\r\n" .
    "!country_name - !zone_name - !city,\r\n" .
    "!street1\r\n" .
    "!street2\r\n" .
    "!postal_code"
  );
}

/**
 * Implements hook_update() with $version being the only argument.
 * Add a new case for each version update, and be sure to always include the
 * latest changes in the install function.
 */
function iran_update($version) {
  switch ($version) {
    case 2:
      // Correct ISO-3166-1 country name
      db_update('uc_countries')
        ->fields(array(
            'country_name' => 'Iran, Islamic Republic of',
            'country_iso_code_3' => 'IRN',
          ))
        ->condition('country_id', 364)
        ->execute();

      break;
    case 3:
      // Add the Alborz zone
      db_insert('uc_zones')
        ->fields(array(
          'zone_country_id' => 364,
          'zone_code' => 'AL',
          'zone_name' => 'البرز',
        ))
        ->execute();

      break;
  }
}
