module Faker::PhoneNumberSE

def area_prefix

def area_prefix
  PHONE_PREFIX.rand
end

def country_prefix

def country_prefix
  COUNTRY_PREFIX.rand
end

def home_work_phone_number

def home_work_phone_number
  Faker.numerify("0#{phone_number_format}")
end

def international_home_work_phone_number

def international_home_work_phone_number
  Faker.numerify("#{country_prefix} (0)#{phone_number_format}")
end

def international_mobile_phone_number

def international_mobile_phone_number
  Faker.numerify("#{country_prefix} (0)#{mobile_phone_number_format}")
end

def international_phone_number

def international_phone_number
  case rand(2)
  when 0 then international_mobile_phone_number
  when 1 then international_home_work_phone_number
  end
end

def mobile_phone_number

def mobile_phone_number
  Faker.numerify("0#{mobile_phone_number_format}")
end

def mobile_phone_number_format

def mobile_phone_number_format
  MOBILE_PHONE_FORMAT.rand % mobile_prefix
end

def mobile_prefix

def mobile_prefix
  MOBILE_PHONE_PREFIX.rand
end

def phone_number

def phone_number
  case rand(2)
  when 0 then home_work_phone_number
  when 1 then mobile_phone_number
  end
end

def phone_number_format

def phone_number_format
  prefix = area_prefix
  case prefix.length
  when 1 then PHONE_FORMAT_PREFIX_2.rand
  when 2 then PHONE_FORMAT_PREFIX_3.rand
  when 3 then PHONE_FORMAT_PREFIX_4.rand
  end % prefix
end