You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

337 lines
16 KiB

6 years ago
6 years ago
6 years ago
  1. //
  2. // CountryInfo.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 22/08/2018.
  6. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. class CountryInfo {
  10. private var flag: [String: UIImage] =
  11. [
  12. "mm": #imageLiteral(resourceName: "flag_myanmar"),
  13. "bs": #imageLiteral(resourceName: "flag_bahamas"),
  14. "bo": #imageLiteral(resourceName: "flag_bolivia"),
  15. "jo": #imageLiteral(resourceName: "flag_jordan"),
  16. "cl": #imageLiteral(resourceName: "flag_chile"),
  17. "fr": #imageLiteral(resourceName: "flag_france"),
  18. "sa": #imageLiteral(resourceName: "flag_saudi_arabia"),
  19. "mu": #imageLiteral(resourceName: "flag_mauritius"),
  20. "kz": #imageLiteral(resourceName: "flag_kazakhstan"),
  21. "tr": #imageLiteral(resourceName: "flag_turkey"),
  22. "sn": #imageLiteral(resourceName: "flag_senegal"),
  23. "hk": #imageLiteral(resourceName: "flag_hong_kong"),
  24. "fj": #imageLiteral(resourceName: "flag_fiji"),
  25. "cz": #imageLiteral(resourceName: "flag_czech_republic"),
  26. "nu": #imageLiteral(resourceName: "flag_niue"),
  27. "jm": #imageLiteral(resourceName: "flag_jamaica"),
  28. "gg": #imageLiteral(resourceName: "flag_guernsey"),
  29. "ph": #imageLiteral(resourceName: "flag_philippines"),
  30. "bv": #imageLiteral(resourceName: "flag_bouvet_island"),
  31. "yt": #imageLiteral(resourceName: "flag_mayotte"),
  32. "bd": #imageLiteral(resourceName: "flag_bangladesh"),
  33. "tj": #imageLiteral(resourceName: "flag_tajikistan"),
  34. "bg": #imageLiteral(resourceName: "flag_bulgaria"),
  35. "hn": #imageLiteral(resourceName: "flag_honduras"),
  36. "bn": #imageLiteral(resourceName: "flag_brunei"),
  37. "gn": #imageLiteral(resourceName: "flag_guinea"),
  38. "ai": #imageLiteral(resourceName: "flag_anguilla"),
  39. "cv": #imageLiteral(resourceName: "flag_cape_verde"),
  40. "et": #imageLiteral(resourceName: "flag_ethiopia"),
  41. "sg": #imageLiteral(resourceName: "flag_singapore"),
  42. "dk": #imageLiteral(resourceName: "flag_denmark"),
  43. "dj": #imageLiteral(resourceName: "flag_djibouti"),
  44. "nr": #imageLiteral(resourceName: "flag_nauru"),
  45. "sb": #imageLiteral(resourceName: "flag_solomon_islands"),
  46. "so": #imageLiteral(resourceName: "flag_somalia"),
  47. "gi": #imageLiteral(resourceName: "flag_gibraltar"),
  48. "gf": #imageLiteral(resourceName: "flag_french_guiana"),
  49. "gh": #imageLiteral(resourceName: "flag_ghana"),
  50. "mt": #imageLiteral(resourceName: "flag_malta"),
  51. "gm": #imageLiteral(resourceName: "flag_gambia"),
  52. "ck": #imageLiteral(resourceName: "flag_cook_islands"),
  53. "sl": #imageLiteral(resourceName: "flag_sierra_leone"),
  54. "li": #imageLiteral(resourceName: "flag_liechtenstein"),
  55. "ls": #imageLiteral(resourceName: "flag_lesotho"),
  56. "fm": #imageLiteral(resourceName: "flag_micronesia"),
  57. "nl": #imageLiteral(resourceName: "flag_netherlands"),
  58. "gd": #imageLiteral(resourceName: "flag_grenada"),
  59. "cx": #imageLiteral(resourceName: "flag_christmas_island"),
  60. "qa": #imageLiteral(resourceName: "flag_qatar"),
  61. "vn": #imageLiteral(resourceName: "flag_vietnam"),
  62. "au": #imageLiteral(resourceName: "flag_australia"),
  63. "la": #imageLiteral(resourceName: "flag_laos"),
  64. "dm": #imageLiteral(resourceName: "flag_dominica"),
  65. "tt": #imageLiteral(resourceName: "flag_trinidad_and_tobago"),
  66. "mq": #imageLiteral(resourceName: "flag_martinique"),
  67. "sv": #imageLiteral(resourceName: "flag_el_salvador"),
  68. "mr": #imageLiteral(resourceName: "flag_mauritania"),
  69. "pw": #imageLiteral(resourceName: "flag_palau"),
  70. "be": #imageLiteral(resourceName: "flag_belgium"),
  71. "ve": #imageLiteral(resourceName: "flag_venezuela"),
  72. "as": #imageLiteral(resourceName: "flag_american_samoa"),
  73. "zm": #imageLiteral(resourceName: "flag_zambia"),
  74. "mx": #imageLiteral(resourceName: "flag_mexico"),
  75. "jp": #imageLiteral(resourceName: "flag_japan"),
  76. "th": #imageLiteral(resourceName: "flag_thailand"),
  77. "za": #imageLiteral(resourceName: "flag_south_africa"),
  78. "tg": #imageLiteral(resourceName: "flag_togo"),
  79. "sr": #imageLiteral(resourceName: "flag_suriname"),
  80. "pf": #imageLiteral(resourceName: "flag_french_polynesia"),
  81. "dz": #imageLiteral(resourceName: "flag_algeria"),
  82. "az": #imageLiteral(resourceName: "flag_azerbaijan"),
  83. "bz": #imageLiteral(resourceName: "flag_belize"),
  84. "at": #imageLiteral(resourceName: "flag_austria"),
  85. "pr": #imageLiteral(resourceName: "flag_puerto_rico"),
  86. "ec": #imageLiteral(resourceName: "flag_ecuador"),
  87. "ws": #imageLiteral(resourceName: "flag_samoa"),
  88. "ag": #imageLiteral(resourceName: "flag_antigua_and_barbuda"),
  89. "ne": #imageLiteral(resourceName: "flag_niger"),
  90. "si": #imageLiteral(resourceName: "flag_slovenia"),
  91. "lr": #imageLiteral(resourceName: "flag_liberia"),
  92. "wf": #imageLiteral(resourceName: "flag_wallis_and_futuna"),
  93. "kg": #imageLiteral(resourceName: "flag_kyrgyzstan"),
  94. "pm": #imageLiteral(resourceName: "flag_saint_pierre_and_miquelon"),
  95. "bi": #imageLiteral(resourceName: "flag_burundi"),
  96. "co": #imageLiteral(resourceName: "flag_colombia"),
  97. "gu": #imageLiteral(resourceName: "flag_guam"),
  98. "bw": #imageLiteral(resourceName: "flag_botswana"),
  99. "sz": #imageLiteral(resourceName: "flag_swaziland"),
  100. "im": #imageLiteral(resourceName: "flag_isle_of_man"),
  101. "je": #imageLiteral(resourceName: "flag_jersey"),
  102. "ki": #imageLiteral(resourceName: "flag_kiribati"),
  103. "cr": #imageLiteral(resourceName: "flag_costa_rica"),
  104. "bb": #imageLiteral(resourceName: "flag_barbados"),
  105. "mn": #imageLiteral(resourceName: "flag_mongolia"),
  106. "to": #imageLiteral(resourceName: "flag_tonga"),
  107. "uk": #imageLiteral(resourceName: "flag_united_kingdom"),
  108. "id": #imageLiteral(resourceName: "flag_indonesia"),
  109. "ua": #imageLiteral(resourceName: "flag_ukraine"),
  110. "kn": #imageLiteral(resourceName: "flag_saint_kitts_and_nevis"),
  111. "gy": #imageLiteral(resourceName: "flag_guyana"),
  112. "cn": #imageLiteral(resourceName: "flag_china"),
  113. "cu": #imageLiteral(resourceName: "flag_cuba"),
  114. "es": #imageLiteral(resourceName: "flag_spain"),
  115. "no": #imageLiteral(resourceName: "flag_norway"),
  116. "ht": #imageLiteral(resourceName: "flag_haiti"),
  117. "al": #imageLiteral(resourceName: "flag_albania"),
  118. "mz": #imageLiteral(resourceName: "flag_mozambique"),
  119. "in": #imageLiteral(resourceName: "flag_india"),
  120. "br": #imageLiteral(resourceName: "flag_brazil"),
  121. "bj": #imageLiteral(resourceName: "flag_benin"),
  122. "se": #imageLiteral(resourceName: "flag_sweden"),
  123. "pe": #imageLiteral(resourceName: "flag_peru"),
  124. "cf": #imageLiteral(resourceName: "flag_central_african_republic"),
  125. "tz": #imageLiteral(resourceName: "flag_tanzania"),
  126. "uy": #imageLiteral(resourceName: "flag_uruguay"),
  127. "vu": #imageLiteral(resourceName: "flag_vanuatu"),
  128. "my": #imageLiteral(resourceName: "flag_malaysia"),
  129. "md": #imageLiteral(resourceName: "flag_moldova"),
  130. "gt": #imageLiteral(resourceName: "flag_guatemala"),
  131. "is": #imageLiteral(resourceName: "flag_iceland"),
  132. "gr": #imageLiteral(resourceName: "flag_greece"),
  133. "tw": #imageLiteral(resourceName: "flag_taiwan"),
  134. "om": #imageLiteral(resourceName: "flag_oman"),
  135. "pt": #imageLiteral(resourceName: "flag_portugal"),
  136. "by": #imageLiteral(resourceName: "flag_belarus"),
  137. "kw": #imageLiteral(resourceName: "flag_kuwait"),
  138. "gl": #imageLiteral(resourceName: "flag_greenland"),
  139. "td": #imageLiteral(resourceName: "flag_chad"),
  140. "na": #imageLiteral(resourceName: "flag_namibia"),
  141. "ee": #imageLiteral(resourceName: "flag_estonia"),
  142. "ms": #imageLiteral(resourceName: "flag_montserrat"),
  143. "mv": #imageLiteral(resourceName: "flag_maldives"),
  144. "af": #imageLiteral(resourceName: "flag_afghanistan"),
  145. "nc": #imageLiteral(resourceName: "flag_new_caledonia"),
  146. "ga": #imageLiteral(resourceName: "flag_gabon"),
  147. "mo": #imageLiteral(resourceName: "flag_macao"),
  148. "ni": #imageLiteral(resourceName: "flag_nicaragua"),
  149. "zw": #imageLiteral(resourceName: "flag_zimbabwe"),
  150. "bm": #imageLiteral(resourceName: "flag_bermuda"),
  151. "rs": #imageLiteral(resourceName: "flag_serbia"),
  152. "cy": #imageLiteral(resourceName: "flag_cyprus"),
  153. "ao": #imageLiteral(resourceName: "flag_angola"),
  154. "py": #imageLiteral(resourceName: "flag_paraguay"),
  155. "tv": #imageLiteral(resourceName: "flag_tuvalu"),
  156. "mc": #imageLiteral(resourceName: "flag_monaco"),
  157. "sm": #imageLiteral(resourceName: "flag_san_marino"),
  158. "er": #imageLiteral(resourceName: "flag_eritrea"),
  159. "bt": #imageLiteral(resourceName: "flag_bhutan"),
  160. "ba": #imageLiteral(resourceName: "flag_bosnia_and_herzegovina"),
  161. "sc": #imageLiteral(resourceName: "flag_seychelles"),
  162. "mg": #imageLiteral(resourceName: "flag_madagascar"),
  163. "st": #imageLiteral(resourceName: "flag_sao_tome_and_principe"),
  164. "eg": #imageLiteral(resourceName: "flag_egypt"),
  165. "ky": #imageLiteral(resourceName: "flag_cayman_islands"),
  166. "ug": #imageLiteral(resourceName: "flag_uganda"),
  167. "sy": #imageLiteral(resourceName: "flag_syria"),
  168. "cm": #imageLiteral(resourceName: "flag_cameroon"),
  169. "aq": #imageLiteral(resourceName: "flag_antarctica"),
  170. "tn": #imageLiteral(resourceName: "flag_tunisia"),
  171. "ge": #imageLiteral(resourceName: "flag_georgia"),
  172. "it": #imageLiteral(resourceName: "flag_italy"),
  173. "gq": #imageLiteral(resourceName: "flag_equatorial_guinea"),
  174. "ca": #imageLiteral(resourceName: "flag_canada"),
  175. "am": #imageLiteral(resourceName: "flag_armenia"),
  176. "rw": #imageLiteral(resourceName: "flag_rwanda"),
  177. "bf": #imageLiteral(resourceName: "flag_burkina_faso"),
  178. "fo": #imageLiteral(resourceName: "flag_faroe_islands"),
  179. "aw": #imageLiteral(resourceName: "flag_aruba"),
  180. "fi": #imageLiteral(resourceName: "flag_finland"),
  181. "lv": #imageLiteral(resourceName: "flag_latvia"),
  182. "lt": #imageLiteral(resourceName: "flag_lithuania"),
  183. "np": #imageLiteral(resourceName: "flag_nepal"),
  184. "pg": #imageLiteral(resourceName: "flag_papua_new_guinea"),
  185. "ad": #imageLiteral(resourceName: "flag_andorra"),
  186. "me": #imageLiteral(resourceName: "flag_montenegro"),
  187. "pa": #imageLiteral(resourceName: "flag_panama"),
  188. "kh": #imageLiteral(resourceName: "flag_cambodia"),
  189. "ma": #imageLiteral(resourceName: "flag_morocco"),
  190. "lb": #imageLiteral(resourceName: "flag_lebanon"),
  191. "tk": #imageLiteral(resourceName: "flag_tokelau"),
  192. "nz": #imageLiteral(resourceName: "flag_new_zealand"),
  193. "sd": #imageLiteral(resourceName: "flag_sudan"),
  194. "hu": #imageLiteral(resourceName: "flag_hungary"),
  195. "iq": #imageLiteral(resourceName: "flag_iraq"),
  196. "hr": #imageLiteral(resourceName: "flag_croatia"),
  197. "ch": #imageLiteral(resourceName: "flag_switzerland"),
  198. "do": #imageLiteral(resourceName: "flag_dominican_republic"),
  199. "mk": #imageLiteral(resourceName: "flag_macedonia"),
  200. "ng": #imageLiteral(resourceName: "flag_nigeria"),
  201. "lu": #imageLiteral(resourceName: "flag_luxembourg"),
  202. "pk": #imageLiteral(resourceName: "flag_pakistan"),
  203. "ro": #imageLiteral(resourceName: "flag_romania"),
  204. "ar": #imageLiteral(resourceName: "flag_argentina"),
  205. "de": #imageLiteral(resourceName: "flag_germany"),
  206. "km": #imageLiteral(resourceName: "flag_comoros"),
  207. "sk": #imageLiteral(resourceName: "flag_slovakia"),
  208. "ke": #imageLiteral(resourceName: "flag_kenya"),
  209. "ml": #imageLiteral(resourceName: "flag_mali"),
  210. "ye": #imageLiteral(resourceName: "flag_yemen"),
  211. "il": #imageLiteral(resourceName: "flag_israel"),
  212. "ae": #imageLiteral(resourceName: "flag_united_arab_emirates"),
  213. "eh": #imageLiteral(resourceName: "flag_western_sahara"),
  214. "io": #imageLiteral(resourceName: "flag_british_indian_ocean_territory"),
  215. "mw": #imageLiteral(resourceName: "flag_malawi"),
  216. "lk": #imageLiteral(resourceName: "flag_sri_lanka"),
  217. "bh": #imageLiteral(resourceName: "flag_bahrain"),
  218. "nf": #imageLiteral(resourceName: "flag_norfolk_island"),
  219. "kr": #imageLiteral(resourceName: "flag_south_korea"),
  220. "uz":#imageLiteral(resourceName: "flag_uzbekistn"),
  221. "ru":#imageLiteral(resourceName: "flag_russia"),
  222. "en": #imageLiteral(resourceName: "flag_united_kingdom")
  223. ]
  224. var defaultCountries = [
  225. "Nepal", "Cambodia", "Philipinnes", "Sri Lanka", "Vietnam", "India", "Pakistan", "azerbaijan",
  226. "Bangladesh", "Belarus", "Georgia", "Indonesia", "Kazakhstan", "Kyrgyzstan", "Malaysia", "Moldova",
  227. "Mongolia", "Myanmar", "Russian Federation", "Singapore", "Tajikistan", "Thailand", "Uzbekistan"
  228. ]
  229. var defaultCountryCodes = [
  230. "np", "kh", "ph", "lk", "vn", "in", "pk", "az", "bd", "by", "ge", "kz", "kg", "my", "md", "mn", "mm",
  231. "ru", "sg", "tj", "th", "uz", "en"
  232. ]
  233. private var defaultSendingAmount: [String: String] =
  234. [
  235. "np" : "100000", // nepal
  236. "kh" : "500", // cambodia
  237. "ph" : "50000", // philipines
  238. "lk" : "100,000", // sri lanka
  239. "vn" : "50000000", // Vietnam
  240. "in" : "50000", // india
  241. "pk" : "100000", // pakistan
  242. "az" : "1000", // azerbaijan
  243. "bd" : "100000", // Bangladesh
  244. "by" : "1000", // Belarus
  245. "ge" : "1000", // Georgia
  246. // "id" : "1000000", // indonesia
  247. "kz" : "1000", // Kazakhstan
  248. "kg" : "1000", // Kyrgyzstan
  249. "my" : "10000", // Malaysia
  250. "md" : "1000", // Moldova
  251. "mn" : "1000", // Mongolia
  252. "mm" : "1500000", // Myanmar
  253. "ru" : "1000", // Russian Federation
  254. "sg" : "2000", // Singapore
  255. "tj" : "1000", // Tajikistan
  256. "th" : "30000", // Thailand
  257. "uz" : "1000", // Uzbekistan
  258. "default": "1000000"
  259. ]
  260. private var defaultSendingCurrency: [String: String] =
  261. [
  262. "np" : "NPR", // nepal
  263. "kh" : "USD", // cambodia
  264. "ph" : "PHP", // philipines
  265. "lk" : "LKR", // sri lanka
  266. "vn" : "VND", // vietnam
  267. "in" : "INR", // india
  268. "pk" : "PKR", // pakistan
  269. "az" : "USD", // azerbaijan
  270. "bd" : "USD", // Bangladesh
  271. "by" : "USD", // Belarus
  272. "ge" : "USD", // Georgia
  273. "id" : "IDR", // Indonesia
  274. "kz" : "USD", // Kazakhstan
  275. "kg" : "USD", // Kyrgyzstan
  276. "my" : "MYR", // Malaysia
  277. "md" : "USD", // Moldova
  278. "mn" : "USD", // Mongolia
  279. "mm" : "MMK", // Myanmar
  280. "ru" : "USD", // Russian Federation
  281. "sg" : "SGD", // Singapore
  282. "tj" : "USD", // Tajikistan
  283. "th" : "THB", // Thailand
  284. "uz" : "USD", // Uzbekistan
  285. "default": "KRW"
  286. ]
  287. private var secondarySendingCurrency: [String: String] =
  288. [
  289. "vn" : "USD", // vietnam
  290. "mn" : "MNT", // Mongolia
  291. "lk" : "USD" // sri lanka
  292. ]
  293. private var secondarySendingAmount: [String: String] =
  294. [
  295. "vn" : "2000", // Vietnam
  296. "lk" : "1000", // sri lanka
  297. "mn" : "2000000" // Mongolia
  298. ]
  299. func getFlag(for countryCode: String) -> UIImage? {
  300. return flag[countryCode.lowercased()] ?? nil
  301. }
  302. func getDefaultSendingAmount(for countryCode: String) -> String? {
  303. return defaultSendingAmount[countryCode.lowercased()]
  304. }
  305. func getDefaultSendingCurrency(for countryCode: String) -> String? {
  306. return defaultSendingCurrency[countryCode.lowercased()]
  307. }
  308. func getDefaultSendingMoneyInKoreanWon() -> String? {
  309. return defaultSendingAmount["default"]
  310. }
  311. func doesCountryCodeHasDefined(country: String, currency: String) -> Bool {
  312. return defaultSendingCurrency[country.lowercased()]?.contains(currency) ?? false
  313. }
  314. func doesSecondaryOptiopsHasDefined(country: String, currency: String) -> Bool {
  315. return secondarySendingCurrency[country.lowercased()]?.contains(currency) ?? false
  316. }
  317. func getSecondarySendingAmount(for countryCode: String) -> String? {
  318. return secondarySendingAmount[countryCode.lowercased()]
  319. }
  320. }