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.

928 lines
34 KiB

  1. //
  2. // Country.swift
  3. // GME Remit
  4. //
  5. // Created by InKwon James Kim on 19/07/2019.
  6. // Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. enum CountryEnum: String {
  11. case af
  12. case al
  13. case dz
  14. case ad
  15. case ao
  16. case aq
  17. case ar
  18. case am
  19. case aw
  20. case au
  21. case at
  22. case az
  23. case bh
  24. case bd
  25. case by
  26. case be
  27. case bz
  28. case bj
  29. case bt
  30. case bo
  31. case ba
  32. case bw
  33. case br
  34. case bn
  35. case bg
  36. case bf
  37. case mm
  38. case bi
  39. case kh
  40. case cm
  41. case ca
  42. case cv
  43. case cf
  44. case td
  45. case cl
  46. case cn
  47. case cx
  48. case cc
  49. case co
  50. case km
  51. case cg
  52. case cd
  53. case ck
  54. case cr
  55. case hr
  56. case cu
  57. case cy
  58. case cz
  59. case dk
  60. case dj
  61. case tl
  62. case ec
  63. case eg
  64. case sv
  65. case gq
  66. case er
  67. case ee
  68. case et
  69. case fk
  70. case fo
  71. case fj
  72. case fi
  73. case fr
  74. case pf
  75. case ga
  76. case gm
  77. case ge
  78. case de
  79. case gh
  80. case gi
  81. case gr
  82. case gl
  83. case gt
  84. case gn
  85. case gw
  86. case gy
  87. case ht
  88. case hn
  89. case hk
  90. case hu
  91. case `in`
  92. case id
  93. case ir
  94. case iq
  95. case ie
  96. case im
  97. case il
  98. case it
  99. case ci
  100. case jp
  101. case jo
  102. case kz
  103. case ke
  104. case ki
  105. case kw
  106. case kg
  107. case la
  108. case lv
  109. case lb
  110. case ls
  111. case lr
  112. case ly
  113. case li
  114. case lt
  115. case lu
  116. case mo
  117. case mk
  118. case mg
  119. case mw
  120. case my
  121. case mv
  122. case ml
  123. case mt
  124. case mh
  125. case mr
  126. case mu
  127. case yt
  128. case mx
  129. case fm
  130. case md
  131. case mc
  132. case mn
  133. case me
  134. case ma
  135. case mz
  136. case na
  137. case nr
  138. case np
  139. case nl
  140. case nc
  141. case nz
  142. case ni
  143. case ne
  144. case ng
  145. case nu
  146. case kp
  147. case no
  148. case om
  149. case pk
  150. case pw
  151. case pa
  152. case pg
  153. case py
  154. case pe
  155. case ph
  156. case pn
  157. case pl
  158. case pt
  159. case pr
  160. case qa
  161. case ro
  162. case ru
  163. case rw
  164. case bl
  165. case ws
  166. case sm
  167. case st
  168. case sa
  169. case sn
  170. case rs
  171. case sc
  172. case sl
  173. case sg
  174. case sk
  175. case si
  176. case sb
  177. case so
  178. case za
  179. case kr
  180. case es
  181. case lk
  182. case sh
  183. case pm
  184. case sd
  185. case sr
  186. case sz
  187. case se
  188. case ch
  189. case sy
  190. case tw
  191. case tj
  192. case tz
  193. case th
  194. case tg
  195. case tk
  196. case to
  197. case tn
  198. case tr
  199. case tm
  200. case tv
  201. case ae
  202. case ug
  203. case gb
  204. case ua
  205. case uy
  206. case us
  207. case uz
  208. case vu
  209. case va
  210. case ve
  211. case vn
  212. case wf
  213. case ye
  214. case zm
  215. case zw
  216. case en
  217. }
  218. extension CountryEnum {
  219. var phoneCode: String {
  220. var code = ""
  221. switch self {
  222. case .af: code = "+93"
  223. case .al: code = "+355"
  224. case .dz: code = "+213"
  225. case .ad: code = "+376"
  226. case .ao: code = "+244"
  227. case .aq: code = "+672"
  228. case .ar: code = "+54"
  229. case .am: code = "+374"
  230. case .aw: code = "+297"
  231. case .au: code = "+61"
  232. case .at: code = "+43"
  233. case .az: code = "+994"
  234. case .bh: code = "+973"
  235. case .bd: code = "+880"
  236. case .by: code = "+375"
  237. case .be: code = "+32"
  238. case .bz: code = "+501"
  239. case .bj: code = "+229"
  240. case .bt: code = "+975"
  241. case .bo: code = "+591"
  242. case .ba: code = "+387"
  243. case .bw: code = "+267"
  244. case .br: code = "+55"
  245. case .bn: code = "+673"
  246. case .bg: code = "+359"
  247. case .bf: code = "+226"
  248. case .mm: code = "+95"
  249. case .bi: code = "+257"
  250. case .kh: code = "+855"
  251. case .cm: code = "+237"
  252. case .ca: code = "+1"
  253. case .cv: code = "+238"
  254. case .cf: code = "+236"
  255. case .td: code = "+235"
  256. case .cl: code = "+56"
  257. case .cn: code = "+86"
  258. case .cx: code = "+61"
  259. case .cc: code = "+61"
  260. case .co: code = "+57"
  261. case .km: code = "+269"
  262. case .cg: code = "+242"
  263. case .cd: code = "+243"
  264. case .ck: code = "+682"
  265. case .cr: code = "+506"
  266. case .hr: code = "+385"
  267. case .cu: code = "+53"
  268. case .cy: code = "+357"
  269. case .cz: code = "+420"
  270. case .dk: code = "+45"
  271. case .dj: code = "+253"
  272. case .tl: code = "+670"
  273. case .ec: code = "+593"
  274. case .eg: code = "+20"
  275. case .sv: code = "+503"
  276. case .gq: code = "+240"
  277. case .er: code = "+291"
  278. case .ee: code = "+372"
  279. case .et: code = "+251"
  280. case .fk: code = "+500"
  281. case .fo: code = "+298"
  282. case .fj: code = "+679"
  283. case .fi: code = "+358"
  284. case .fr: code = "+33"
  285. case .pf: code = "+689"
  286. case .ga: code = "+241"
  287. case .gm: code = "+220"
  288. case .ge: code = "+995"
  289. case .de: code = "+49"
  290. case .gh: code = "+233"
  291. case .gi: code = "+350"
  292. case .gr: code = "+30"
  293. case .gl: code = "+299"
  294. case .gt: code = "+502"
  295. case .gn: code = "+224"
  296. case .gw: code = "+245"
  297. case .gy: code = "+592"
  298. case .ht: code = "+509"
  299. case .hn: code = "+504"
  300. case .hk: code = "+852"
  301. case .hu: code = "+36"
  302. case .in: code = "+91"
  303. case .id: code = "+62"
  304. case .ir: code = "+98"
  305. case .iq: code = "+964"
  306. case .ie: code = "+353"
  307. case .im: code = "+44"
  308. case .il: code = "+972"
  309. case .it: code = "+39"
  310. case .ci: code = "+225"
  311. case .jp: code = "+81"
  312. case .jo: code = "+962"
  313. case .kz: code = "+7"
  314. case .ke: code = "+254"
  315. case .ki: code = "+686"
  316. case .kw: code = "+965"
  317. case .kg: code = "+996"
  318. case .la: code = "+856"
  319. case .lv: code = "+371"
  320. case .lb: code = "+961"
  321. case .ls: code = "+266"
  322. case .lr: code = "+231"
  323. case .ly: code = "+218"
  324. case .li: code = "+423"
  325. case .lt: code = "+370"
  326. case .lu: code = "+352"
  327. case .mo: code = "+853"
  328. case .mk: code = "+389"
  329. case .mg: code = "+261"
  330. case .mw: code = "+265"
  331. case .my: code = "+60"
  332. case .mv: code = "+960"
  333. case .ml: code = "+223"
  334. case .mt: code = "+356"
  335. case .mh: code = "+692"
  336. case .mr: code = "+222"
  337. case .mu: code = "+230"
  338. case .yt: code = "+262"
  339. case .mx: code = "+52"
  340. case .fm: code = "+691"
  341. case .md: code = "+373"
  342. case .mc: code = "+377"
  343. case .mn: code = "+976"
  344. case .me: code = "+382"
  345. case .ma: code = "+212"
  346. case .mz: code = "+258"
  347. case .na: code = "+264"
  348. case .nr: code = "+674"
  349. case .np: code = "+977"
  350. case .nl: code = "+31"
  351. case .nc: code = "+687"
  352. case .nz: code = "+64"
  353. case .ni: code = "+505"
  354. case .ne: code = "+227"
  355. case .ng: code = "+234"
  356. case .nu: code = "+683"
  357. case .kp: code = "+850"
  358. case .no: code = "+47"
  359. case .om: code = "+968"
  360. case .pk: code = "+92"
  361. case .pw: code = "+680"
  362. case .pa: code = "+507"
  363. case .pg: code = "+675"
  364. case .py: code = "+595"
  365. case .pe: code = "+51"
  366. case .ph: code = "+63"
  367. case .pn: code = "+870"
  368. case .pl: code = "+48"
  369. case .pt: code = "+351"
  370. case .pr: code = "+1"
  371. case .qa: code = "+974"
  372. case .ro: code = "+40"
  373. case .ru: code = "+7"
  374. case .rw: code = "+250"
  375. case .bl: code = "+590"
  376. case .ws: code = "+685"
  377. case .sm: code = "+378"
  378. case .st: code = "+239"
  379. case .sa: code = "+966"
  380. case .sn: code = "+221"
  381. case .rs: code = "+381"
  382. case .sc: code = "+248"
  383. case .sl: code = "+232"
  384. case .sg: code = "+65"
  385. case .sk: code = "+421"
  386. case .si: code = "+386"
  387. case .sb: code = "+677"
  388. case .so: code = "+252"
  389. case .za: code = "+27"
  390. case .kr: code = "+82"
  391. case .es: code = "+34"
  392. case .lk: code = "+94"
  393. case .sh: code = "+290"
  394. case .pm: code = "+508"
  395. case .sd: code = "+249"
  396. case .sr: code = "+597"
  397. case .sz: code = "+268"
  398. case .se: code = "+46"
  399. case .ch: code = "+41"
  400. case .sy: code = "+963"
  401. case .tw: code = "+886"
  402. case .tj: code = "+992"
  403. case .tz: code = "+255"
  404. case .th: code = "+66"
  405. case .tg: code = "+228"
  406. case .tk: code = "+690"
  407. case .to: code = "+676"
  408. case .tn: code = "+216"
  409. case .tr: code = "+90"
  410. case .tm: code = "+993"
  411. case .tv: code = "+688"
  412. case .ae: code = "+971"
  413. case .ug: code = "+256"
  414. case .gb: code = "+44"
  415. case .ua: code = "+380"
  416. case .uy: code = "+598"
  417. case .us: code = "+1"
  418. case .uz: code = "+998"
  419. case .vu: code = "+678"
  420. case .va: code = "+39"
  421. case .ve: code = "+58"
  422. case .vn: code = "+84"
  423. case .wf: code = "+681"
  424. case .ye: code = "+967"
  425. case .zm: code = "+260"
  426. case .zw: code = "+263"
  427. case .en: code = ""
  428. }
  429. return code
  430. }
  431. }
  432. extension CountryEnum {
  433. var flag: UIImage {
  434. let image: UIImage
  435. switch self {
  436. case .mm: image = #imageLiteral(resourceName: "flag_myanmar")
  437. // case .bs: image = #imageLiteral(resourceName: "flag_bahamas")
  438. case .bo: image = #imageLiteral(resourceName: "flag_bolivia")
  439. case .jo: image = #imageLiteral(resourceName: "flag_jordan")
  440. case .cl: image = #imageLiteral(resourceName: "flag_chile")
  441. case .fr: image = #imageLiteral(resourceName: "flag_france")
  442. case .sa: image = #imageLiteral(resourceName: "flag_saudi_arabia")
  443. case .mu: image = #imageLiteral(resourceName: "flag_mauritius")
  444. case .kz: image = #imageLiteral(resourceName: "flag_kazakhstan")
  445. case .tr: image = #imageLiteral(resourceName: "flag_turkey")
  446. case .sn: image = #imageLiteral(resourceName: "flag_senegal")
  447. case .hk: image = #imageLiteral(resourceName: "flag_hong_kong")
  448. case .fj: image = #imageLiteral(resourceName: "flag_fiji")
  449. case .cz: image = #imageLiteral(resourceName: "flag_czech_republic")
  450. case .nu: image = #imageLiteral(resourceName: "flag_niue")
  451. // case .jm: image = #imageLiteral(resourceName: "flag_jamaica")
  452. // case .gg: image = #imageLiteral(resourceName: "flag_guernsey")
  453. case .ph: image = #imageLiteral(resourceName: "flag_philippines")
  454. // case .bv: image = #imageLiteral(resourceName: "flag_bouvet_island")
  455. case .yt: image = #imageLiteral(resourceName: "flag_mayotte")
  456. case .bd: image = #imageLiteral(resourceName: "flag_bangladesh")
  457. case .tj: image = #imageLiteral(resourceName: "flag_tajikistan")
  458. case .bg: image = #imageLiteral(resourceName: "flag_bulgaria")
  459. case .hn: image = #imageLiteral(resourceName: "flag_honduras")
  460. case .bn: image = #imageLiteral(resourceName: "flag_brunei")
  461. case .gn: image = #imageLiteral(resourceName: "flag_guinea")
  462. // case .ai: image = #imageLiteral(resourceName: "flag_anguilla")
  463. case .cv: image = #imageLiteral(resourceName: "flag_cape_verde")
  464. case .et: image = #imageLiteral(resourceName: "flag_ethiopia")
  465. case .sg: image = #imageLiteral(resourceName: "flag_singapore")
  466. case .dk: image = #imageLiteral(resourceName: "flag_denmark")
  467. case .dj: image = #imageLiteral(resourceName: "flag_djibouti")
  468. case .nr: image = #imageLiteral(resourceName: "flag_nauru")
  469. case .sb: image = #imageLiteral(resourceName: "flag_solomon_islands")
  470. case .so: image = #imageLiteral(resourceName: "flag_somalia")
  471. case .gi: image = #imageLiteral(resourceName: "flag_gibraltar")
  472. // case .gf: image = #imageLiteral(resourceName: "flag_french_guiana")
  473. case .gh: image = #imageLiteral(resourceName: "flag_ghana")
  474. case .mt: image = #imageLiteral(resourceName: "flag_malta")
  475. case .gm: image = #imageLiteral(resourceName: "flag_gambia")
  476. case .ck: image = #imageLiteral(resourceName: "flag_cook_islands")
  477. case .sl: image = #imageLiteral(resourceName: "flag_sierra_leone")
  478. case .li: image = #imageLiteral(resourceName: "flag_liechtenstein")
  479. case .ls: image = #imageLiteral(resourceName: "flag_lesotho")
  480. case .fm: image = #imageLiteral(resourceName: "flag_micronesia")
  481. case .nl: image = #imageLiteral(resourceName: "flag_netherlands")
  482. // case .gd: image = #imageLiteral(resourceName: "flag_grenada")
  483. case .cx: image = #imageLiteral(resourceName: "flag_christmas_island")
  484. case .qa: image = #imageLiteral(resourceName: "flag_qatar")
  485. case .vn: image = #imageLiteral(resourceName: "flag_vietnam")
  486. case .au: image = #imageLiteral(resourceName: "flag_australia")
  487. case .la: image = #imageLiteral(resourceName: "flag_laos")
  488. // case .dm: image = #imageLiteral(resourceName: "flag_dominica")
  489. // case .tt: image = #imageLiteral(resourceName: "flag_trinidad_and_tobago")
  490. // case .mq: image = #imageLiteral(resourceName: "flag_martinique")
  491. case .sv: image = #imageLiteral(resourceName: "flag_el_salvador")
  492. case .mr: image = #imageLiteral(resourceName: "flag_mauritania")
  493. case .pw: image = #imageLiteral(resourceName: "flag_palau")
  494. case .be: image = #imageLiteral(resourceName: "flag_belgium")
  495. case .ve: image = #imageLiteral(resourceName: "flag_venezuela")
  496. // case .as: image = #imageLiteral(resourceName: "flag_american_samoa")
  497. case .zm: image = #imageLiteral(resourceName: "flag_zambia")
  498. case .mx: image = #imageLiteral(resourceName: "flag_mexico")
  499. case .jp: image = #imageLiteral(resourceName: "flag_japan")
  500. case .th: image = #imageLiteral(resourceName: "flag_thailand")
  501. case .za: image = #imageLiteral(resourceName: "flag_south_africa")
  502. case .tg: image = #imageLiteral(resourceName: "flag_togo")
  503. case .sr: image = #imageLiteral(resourceName: "flag_suriname")
  504. case .pf: image = #imageLiteral(resourceName: "flag_french_polynesia")
  505. case .dz: image = #imageLiteral(resourceName: "flag_algeria")
  506. case .az: image = #imageLiteral(resourceName: "flag_azerbaijan")
  507. case .bz: image = #imageLiteral(resourceName: "flag_belize")
  508. case .at: image = #imageLiteral(resourceName: "flag_austria")
  509. case .pr: image = #imageLiteral(resourceName: "flag_puerto_rico")
  510. case .ec: image = #imageLiteral(resourceName: "flag_ecuador")
  511. case .ws: image = #imageLiteral(resourceName: "flag_samoa")
  512. // case .ag: image = #imageLiteral(resourceName: "flag_antigua_and_barbuda")
  513. case .ne: image = #imageLiteral(resourceName: "flag_niger")
  514. case .si: image = #imageLiteral(resourceName: "flag_slovenia")
  515. case .lr: image = #imageLiteral(resourceName: "flag_liberia")
  516. case .wf: image = #imageLiteral(resourceName: "flag_wallis_and_futuna")
  517. case .kg: image = #imageLiteral(resourceName: "flag_kyrgyzstan")
  518. case .pm: image = #imageLiteral(resourceName: "flag_saint_pierre_and_miquelon")
  519. case .bi: image = #imageLiteral(resourceName: "flag_burundi")
  520. case .co: image = #imageLiteral(resourceName: "flag_colombia")
  521. // case .gu: image = #imageLiteral(resourceName: "flag_guam")
  522. case .bw: image = #imageLiteral(resourceName: "flag_botswana")
  523. case .sz: image = #imageLiteral(resourceName: "flag_swaziland")
  524. case .im: image = #imageLiteral(resourceName: "flag_isle_of_man")
  525. // case .je: image = #imageLiteral(resourceName: "flag_jersey")
  526. case .ki: image = #imageLiteral(resourceName: "flag_kiribati")
  527. case .cr: image = #imageLiteral(resourceName: "flag_costa_rica")
  528. // case .bb: image = #imageLiteral(resourceName: "flag_barbados")
  529. case .mn: image = #imageLiteral(resourceName: "flag_mongolia")
  530. case .to: image = #imageLiteral(resourceName: "flag_tonga")
  531. // case .uk: image = #imageLiteral(resourceName: "flag_united_kingdom")
  532. case .id: image = #imageLiteral(resourceName: "flag_indonesia")
  533. case .ua: image = #imageLiteral(resourceName: "flag_ukraine")
  534. // case .kn: image = #imageLiteral(resourceName: "flag_saint_kitts_and_nevis")
  535. case .gy: image = #imageLiteral(resourceName: "flag_guyana")
  536. case .cn: image = #imageLiteral(resourceName: "flag_china")
  537. case .cu: image = #imageLiteral(resourceName: "flag_cuba")
  538. case .es: image = #imageLiteral(resourceName: "flag_spain")
  539. case .no: image = #imageLiteral(resourceName: "flag_norway")
  540. case .ht: image = #imageLiteral(resourceName: "flag_haiti")
  541. case .al: image = #imageLiteral(resourceName: "flag_albania")
  542. case .mz: image = #imageLiteral(resourceName: "flag_mozambique")
  543. case .in: image = #imageLiteral(resourceName: "flag_india")
  544. case .br: image = #imageLiteral(resourceName: "flag_brazil")
  545. case .bj: image = #imageLiteral(resourceName: "flag_benin")
  546. case .se: image = #imageLiteral(resourceName: "flag_sweden")
  547. case .pe: image = #imageLiteral(resourceName: "flag_peru")
  548. case .cf: image = #imageLiteral(resourceName: "flag_central_african_republic")
  549. case .tz: image = #imageLiteral(resourceName: "flag_tanzania")
  550. case .uy: image = #imageLiteral(resourceName: "flag_uruguay")
  551. case .vu: image = #imageLiteral(resourceName: "flag_vanuatu")
  552. case .my: image = #imageLiteral(resourceName: "flag_malaysia")
  553. case .md: image = #imageLiteral(resourceName: "flag_moldova")
  554. case .gt: image = #imageLiteral(resourceName: "flag_guatemala")
  555. // case .is: image = #imageLiteral(resourceName: "flag_iceland")
  556. case .gr: image = #imageLiteral(resourceName: "flag_greece")
  557. case .tw: image = #imageLiteral(resourceName: "flag_taiwan")
  558. case .om: image = #imageLiteral(resourceName: "flag_oman")
  559. case .pt: image = #imageLiteral(resourceName: "flag_portugal")
  560. case .by: image = #imageLiteral(resourceName: "flag_belarus")
  561. case .kw: image = #imageLiteral(resourceName: "flag_kuwait")
  562. case .gl: image = #imageLiteral(resourceName: "flag_greenland")
  563. case .td: image = #imageLiteral(resourceName: "flag_chad")
  564. case .na: image = #imageLiteral(resourceName: "flag_namibia")
  565. case .ee: image = #imageLiteral(resourceName: "flag_estonia")
  566. // case .ms: image = #imageLiteral(resourceName: "flag_montserrat")
  567. case .mv: image = #imageLiteral(resourceName: "flag_maldives")
  568. case .af: image = #imageLiteral(resourceName: "flag_afghanistan")
  569. case .nc: image = #imageLiteral(resourceName: "flag_new_caledonia")
  570. case .ga: image = #imageLiteral(resourceName: "flag_gabon")
  571. case .mo: image = #imageLiteral(resourceName: "flag_macao")
  572. case .ni: image = #imageLiteral(resourceName: "flag_nicaragua")
  573. case .zw: image = #imageLiteral(resourceName: "flag_zimbabwe")
  574. // case .bm: image = #imageLiteral(resourceName: "flag_bermuda")
  575. case .rs: image = #imageLiteral(resourceName: "flag_serbia")
  576. case .cy: image = #imageLiteral(resourceName: "flag_cyprus")
  577. case .ao: image = #imageLiteral(resourceName: "flag_angola")
  578. case .py: image = #imageLiteral(resourceName: "flag_paraguay")
  579. case .tv: image = #imageLiteral(resourceName: "flag_tuvalu")
  580. case .mc: image = #imageLiteral(resourceName: "flag_monaco")
  581. case .sm: image = #imageLiteral(resourceName: "flag_san_marino")
  582. case .er: image = #imageLiteral(resourceName: "flag_eritrea")
  583. case .bt: image = #imageLiteral(resourceName: "flag_bhutan")
  584. case .ba: image = #imageLiteral(resourceName: "flag_bosnia_and_herzegovina")
  585. case .sc: image = #imageLiteral(resourceName: "flag_seychelles")
  586. case .mg: image = #imageLiteral(resourceName: "flag_madagascar")
  587. case .st: image = #imageLiteral(resourceName: "flag_sao_tome_and_principe")
  588. case .eg: image = #imageLiteral(resourceName: "flag_egypt")
  589. // case .ky: image = #imageLiteral(resourceName: "flag_cayman_islands")
  590. case .ug: image = #imageLiteral(resourceName: "flag_uganda")
  591. case .sy: image = #imageLiteral(resourceName: "flag_syria")
  592. case .cm: image = #imageLiteral(resourceName: "flag_cameroon")
  593. case .aq: image = #imageLiteral(resourceName: "flag_antarctica")
  594. case .tn: image = #imageLiteral(resourceName: "flag_tunisia")
  595. case .ge: image = #imageLiteral(resourceName: "flag_georgia")
  596. case .it: image = #imageLiteral(resourceName: "flag_italy")
  597. case .gq: image = #imageLiteral(resourceName: "flag_equatorial_guinea")
  598. case .ca: image = #imageLiteral(resourceName: "flag_canada")
  599. case .am: image = #imageLiteral(resourceName: "flag_armenia")
  600. case .rw: image = #imageLiteral(resourceName: "flag_rwanda")
  601. case .bf: image = #imageLiteral(resourceName: "flag_burkina_faso")
  602. case .fo: image = #imageLiteral(resourceName: "flag_faroe_islands")
  603. case .aw: image = #imageLiteral(resourceName: "flag_aruba")
  604. case .fi: image = #imageLiteral(resourceName: "flag_finland")
  605. case .lv: image = #imageLiteral(resourceName: "flag_latvia")
  606. case .lt: image = #imageLiteral(resourceName: "flag_lithuania")
  607. case .np: image = #imageLiteral(resourceName: "flag_nepal")
  608. case .pg: image = #imageLiteral(resourceName: "flag_papua_new_guinea")
  609. case .ad: image = #imageLiteral(resourceName: "flag_andorra")
  610. case .me: image = #imageLiteral(resourceName: "flag_montenegro")
  611. case .pa: image = #imageLiteral(resourceName: "flag_panama")
  612. case .kh: image = #imageLiteral(resourceName: "flag_cambodia")
  613. case .ma: image = #imageLiteral(resourceName: "flag_morocco")
  614. case .lb: image = #imageLiteral(resourceName: "flag_lebanon")
  615. case .tk: image = #imageLiteral(resourceName: "flag_tokelau")
  616. case .nz: image = #imageLiteral(resourceName: "flag_new_zealand")
  617. case .sd: image = #imageLiteral(resourceName: "flag_sudan")
  618. case .hu: image = #imageLiteral(resourceName: "flag_hungary")
  619. case .iq: image = #imageLiteral(resourceName: "flag_iraq")
  620. case .hr: image = #imageLiteral(resourceName: "flag_croatia")
  621. case .ch: image = #imageLiteral(resourceName: "flag_switzerland")
  622. // case .do: image = #imageLiteral(resourceName: "flag_dominican_republic")
  623. case .mk: image = #imageLiteral(resourceName: "flag_macedonia")
  624. case .ng: image = #imageLiteral(resourceName: "flag_nigeria")
  625. case .lu: image = #imageLiteral(resourceName: "flag_luxembourg")
  626. case .pk: image = #imageLiteral(resourceName: "flag_pakistan")
  627. case .ro: image = #imageLiteral(resourceName: "flag_romania")
  628. case .ar: image = #imageLiteral(resourceName: "flag_argentina")
  629. case .de: image = #imageLiteral(resourceName: "flag_germany")
  630. case .km: image = #imageLiteral(resourceName: "flag_comoros")
  631. case .sk: image = #imageLiteral(resourceName: "flag_slovakia")
  632. case .ke: image = #imageLiteral(resourceName: "flag_kenya")
  633. case .ml: image = #imageLiteral(resourceName: "flag_mali")
  634. case .ye: image = #imageLiteral(resourceName: "flag_yemen")
  635. case .il: image = #imageLiteral(resourceName: "flag_israel")
  636. case .ae: image = #imageLiteral(resourceName: "flag_united_arab_emirates")
  637. // case .eh: image = #imageLiteral(resourceName: "flag_western_sahara")
  638. // case .io: image = #imageLiteral(resourceName: "flag_british_indian_ocean_territory")
  639. case .mw: image = #imageLiteral(resourceName: "flag_malawi")
  640. case .lk: image = #imageLiteral(resourceName: "flag_sri_lanka")
  641. case .bh: image = #imageLiteral(resourceName: "flag_bahrain")
  642. // case .nf: image = #imageLiteral(resourceName: "flag_democratic_republic_of_congo")
  643. case .kr: image = #imageLiteral(resourceName: "flag_south_korea")
  644. case .uz: image = #imageLiteral(resourceName: "flag_uzbekistn")
  645. case .ru: image = #imageLiteral(resourceName: "flag_russia")
  646. case .cg: image = #imageLiteral(resourceName: "flag_republic_of_congo")
  647. case .cd: image = #imageLiteral(resourceName: "flag_democratic_republic_of_congo")
  648. case .en: image = #imageLiteral(resourceName: "flag_united_kingdom")
  649. default: image = #imageLiteral(resourceName: "flag_default")
  650. }
  651. return image
  652. }
  653. }
  654. extension CountryEnum {
  655. func getDefaultRecipientAcount(currency: String) -> String? {
  656. let amount: String?
  657. let isUseDefaultAmount = currency == defaultCurrency
  658. switch self {
  659. case .np: amount = isUseDefaultAmount ? "100000" : nil // nepal
  660. case .kh: amount = isUseDefaultAmount ? "500" : nil // cambodia
  661. case .ph: amount = isUseDefaultAmount ? "50000" : nil // philipines
  662. // case .lk: amount = isUseDefaultAmount ? "100000" : nil // sri lanka
  663. case .vn: amount = isUseDefaultAmount ? "50000000" : nil // Vietnam
  664. case .in: amount = isUseDefaultAmount ? "50000" : nil // india
  665. case .pk: amount = isUseDefaultAmount ? "100000" : nil // pakistan
  666. case .az: amount = isUseDefaultAmount ? "1000" : nil // azerbaijan
  667. case .bd: amount = isUseDefaultAmount ? "100000" : nil // Bangladesh
  668. case .by: amount = isUseDefaultAmount ? "1000" : nil // Belarus
  669. case .ge: amount = isUseDefaultAmount ? "1000" : nil // Georgia
  670. case .kz: amount = isUseDefaultAmount ? "1000" : nil // Kazakhstan
  671. case .kg: amount = isUseDefaultAmount ? "1000" : nil // Kyrgyzstan
  672. case .my: amount = isUseDefaultAmount ? "10000" : nil // Malaysia
  673. case .md: amount = isUseDefaultAmount ? "1000" : nil // Moldova
  674. case .mn: amount = isUseDefaultAmount ? "1000" : nil // Mongolia
  675. case .mm: amount = isUseDefaultAmount ? "1500000" : nil // Myanmar
  676. case .ru: amount = isUseDefaultAmount ? "1000" : nil // Russian Federation
  677. case .sg: amount = isUseDefaultAmount ? "2000" : nil // Singapore
  678. case .tj: amount = isUseDefaultAmount ? "1000" : nil // Tajikistan
  679. case .th: amount = isUseDefaultAmount ? "30000" : nil // Thailand
  680. case .uz: amount = isUseDefaultAmount ? "1000000" : nil // Uzbekistan
  681. case .ua: amount = isUseDefaultAmount ? "1000" : nil // Ukraine
  682. default: amount = nil
  683. }
  684. return amount
  685. }
  686. var defaultSenderAmount: String {
  687. return "1000000"
  688. }
  689. private var defaultCurrency: String {
  690. let currency: String
  691. switch self {
  692. case .np: currency = "NPR" // nepal
  693. case .kh: currency = "USD" // cambodia
  694. case .ph: currency = "PHP" // philipines
  695. case .lk: currency = "LKR" // sri lanka
  696. case .vn: currency = "VND" // Vietnam
  697. case .in: currency = "INR" // india
  698. case .pk: currency = "PKR" // pakistan
  699. case .az: currency = "USD" // azerbaijan
  700. case .bd: currency = "USD" // Bangladesh
  701. case .by: currency = "USD" // Belarus
  702. case .ge: currency = "USD" // Georgia
  703. case .kz: currency = "USD" // Kazakhstan
  704. case .kg: currency = "USD" // Kyrgyzstan
  705. case .my: currency = "MYR" // Malaysia
  706. case .md: currency = "USD" // Moldova
  707. case .mn: currency = "USD" // Mongolia
  708. case .mm: currency = "MMK" // Myanmar
  709. case .ru: currency = "USD" // Russian Federation
  710. case .sg: currency = "SGD" // Singapore
  711. case .tj: currency = "USD" // Tajikistan
  712. case .th: currency = "THB" // Thailand
  713. case .uz: currency = "UZS" // Uzbekistan
  714. case .ua: currency = "USD" // Ukraine
  715. default: currency = "KRW"
  716. }
  717. return currency
  718. }
  719. static func getCode(from name: String) -> CountryEnum {
  720. switch name {
  721. case "Afghanistan": return CountryEnum.af
  722. case "Albania": return CountryEnum.al
  723. case "Algeria": return CountryEnum.dz
  724. case "Andorra": return CountryEnum.ad
  725. case "Angola": return CountryEnum.ao
  726. case "Antarctica": return CountryEnum.aq
  727. case "Argentina": return CountryEnum.ar
  728. case "Armenia": return CountryEnum.am
  729. case "Australia": return CountryEnum.au
  730. case "Austria": return CountryEnum.at
  731. case "Azerbaijan": return CountryEnum.az
  732. case "Bahrain": return CountryEnum.bh
  733. case "Bangladesh": return CountryEnum.bd
  734. case "Belarus": return CountryEnum.by
  735. case "Belgium": return CountryEnum.be
  736. case "Belize": return CountryEnum.bz
  737. case "Benin": return CountryEnum.bj
  738. case "Bhutan": return CountryEnum.bt
  739. case "Bolivia": return CountryEnum.bo
  740. case "Bosnia": return CountryEnum.ba
  741. case "Botswana": return CountryEnum.bw
  742. case "Brazil": return CountryEnum.br
  743. case "Brunei": return CountryEnum.bn
  744. case "Bulgaria": return CountryEnum.bg
  745. case "Burkina Faso": return CountryEnum.bf
  746. case "Myanmar": return CountryEnum.mm
  747. case "Burundi": return CountryEnum.bi
  748. case "Cambodia": return CountryEnum.kh
  749. case "Cameroon": return CountryEnum.cm
  750. case "Canada": return CountryEnum.ca
  751. case "Cape Verde": return CountryEnum.cv
  752. case "Central African Republic": return CountryEnum.cf
  753. case "Chad": return CountryEnum.td
  754. case "Chile": return CountryEnum.cl
  755. case "China": return CountryEnum.cn
  756. case "Christmas Island": return CountryEnum.cx
  757. case "Cocos Islands": return CountryEnum.cc
  758. case "Colombia": return CountryEnum.co
  759. case "Comoros": return CountryEnum.km
  760. case "Mayotte": return CountryEnum.km
  761. case "Congo": return CountryEnum.cg
  762. case "Costa Rica": return CountryEnum.cr
  763. case "Croatia": return CountryEnum.hr
  764. case "Cuba": return CountryEnum.cu
  765. case "Cypress": return CountryEnum.cy
  766. case "Czech Republic": return CountryEnum.cz
  767. case "Denmark": return CountryEnum.dk
  768. case "Djibouti": return CountryEnum.dj
  769. case "East Timor": return CountryEnum.tl
  770. case "Ecuador": return CountryEnum.ec
  771. case "Egypt": return CountryEnum.eg
  772. case "El Salvador": return CountryEnum.sv
  773. case "Equatorial Guinea": return CountryEnum.gq
  774. case "Eritrea": return CountryEnum.er
  775. case "Estonia": return CountryEnum.ee
  776. case "Ethiopia": return CountryEnum.et
  777. case "Faroe Islands": return CountryEnum.fo
  778. case "Fiji": return CountryEnum.fj
  779. case "Finland": return CountryEnum.fi
  780. case "France": return CountryEnum.fr
  781. case "Gabon": return CountryEnum.ga
  782. case "Gambia": return CountryEnum.gm
  783. case "Georgia": return CountryEnum.ge
  784. case "Germany": return CountryEnum.de
  785. case "Ghana": return CountryEnum.gh
  786. case "Gibraltar": return CountryEnum.gi
  787. case "Greece": return CountryEnum.gr
  788. case "Greenland": return CountryEnum.gl
  789. case "Guatemala": return CountryEnum.gt
  790. case "Guinea": return CountryEnum.gn
  791. case "Guinea-Bissau": return CountryEnum.gw
  792. case "Guyana": return CountryEnum.gy
  793. case "Haiti": return CountryEnum.ht
  794. case "Honduras": return CountryEnum.hn
  795. case "Hong Kong": return CountryEnum.hk
  796. case "Hungary": return CountryEnum.hu
  797. case "India": return CountryEnum.in
  798. case "Indonesia": return CountryEnum.id
  799. case "Iran": return CountryEnum.ir
  800. case "Iraq": return CountryEnum.iq
  801. case "Ireland": return CountryEnum.ie
  802. case "Isle of Man": return CountryEnum.im
  803. case "Israel": return CountryEnum.il
  804. case "Italy": return CountryEnum.it
  805. case "Japan": return CountryEnum.jp
  806. case "Jordan": return CountryEnum.jo
  807. case "Kazakhstan": return CountryEnum.kz
  808. case "Kenya": return CountryEnum.ke
  809. case "Kiribati": return CountryEnum.ki
  810. case "Kuwait": return CountryEnum.kw
  811. case "Kyrgyzstan": return CountryEnum.kg
  812. case "Laos": return CountryEnum.la
  813. case "Latvia": return CountryEnum.lv
  814. case "Lebanon": return CountryEnum.lb
  815. case "Lesotho": return CountryEnum.ls
  816. case "Liberia": return CountryEnum.lr
  817. case "Libya": return CountryEnum.ly
  818. case "Liechtenstein": return CountryEnum.li
  819. case "Lithuania": return CountryEnum.lt
  820. case "Luxembourg": return CountryEnum.lu
  821. case "Macau": return CountryEnum.mo
  822. case "Macedonia": return CountryEnum.mk
  823. case "Madagascar": return CountryEnum.mg
  824. case "Malawi": return CountryEnum.mw
  825. case "Malaysia": return CountryEnum.my
  826. case "Maldives": return CountryEnum.mv
  827. case "Mali": return CountryEnum.ml
  828. case "Malta": return CountryEnum.mt
  829. case "Marshall Islands": return CountryEnum.mh
  830. case "Mauritanian": return CountryEnum.mr
  831. case "Mauritius": return CountryEnum.mu
  832. case "Reunion island": return CountryEnum.yt
  833. case "Mexico": return CountryEnum.mx
  834. case "Micronesia": return CountryEnum.fm
  835. case "Moldova": return CountryEnum.md
  836. case "Monaco": return CountryEnum.mc
  837. case "Mongolia": return CountryEnum.mn
  838. case "Morocco": return CountryEnum.ma
  839. case "Mozambique": return CountryEnum.mz
  840. case "Namibia": return CountryEnum.na
  841. case "Nepal": return CountryEnum.np
  842. case "Netherlands": return CountryEnum.nl
  843. case "New Caledonia": return CountryEnum.nc
  844. case "New Zealand": return CountryEnum.nz
  845. case "Nicaragua": return CountryEnum.ni
  846. case "Niger": return CountryEnum.ne
  847. case "Nigeria": return CountryEnum.ng
  848. case "Niue Island": return CountryEnum.nu
  849. case "Norway": return CountryEnum.no
  850. case "Oman": return CountryEnum.om
  851. case "Pakistan": return CountryEnum.pk
  852. case "Palau": return CountryEnum.pw
  853. case "Panama": return CountryEnum.pa
  854. case "Papua New Guinea": return CountryEnum.pg
  855. case "Paraguay": return CountryEnum.py
  856. case "Peru": return CountryEnum.pe
  857. case "Philippines": return CountryEnum.ph
  858. case "Poland": return CountryEnum.pl
  859. case "Portugal": return CountryEnum.pt
  860. case "Puerto Rico": return CountryEnum.pr
  861. case "Qatar": return CountryEnum.qa
  862. case "Romania": return CountryEnum.ro
  863. case "Russia": return CountryEnum.ru
  864. case "Rwanda": return CountryEnum.rw
  865. case "Samoa(American)": return CountryEnum.ws
  866. case "Saudi Arabia": return CountryEnum.sa
  867. case "Senegal": return CountryEnum.sn
  868. case "Serbia": return CountryEnum.rs
  869. case "Seychelles": return CountryEnum.sc
  870. case "Sierra Leone": return CountryEnum.sl
  871. case "Singapore": return CountryEnum.sg
  872. case "Slovakia": return CountryEnum.sk
  873. case "Slovenian": return CountryEnum.si
  874. case "Solomon Islands": return CountryEnum.sb
  875. case "Somalia": return CountryEnum.so
  876. case "South Africa": return CountryEnum.za
  877. case "Korea": return CountryEnum.kr
  878. case "Spain": return CountryEnum.es
  879. case "Sri Lanka": return CountryEnum.lk
  880. case "Sudan": return CountryEnum.sd
  881. case "Suriname": return CountryEnum.sr
  882. case "Swaziland": return CountryEnum.sz
  883. case "Sweden": return CountryEnum.se
  884. case "Swiss": return CountryEnum.ch
  885. case "Syria": return CountryEnum.sy
  886. case "Taiwan": return CountryEnum.tw
  887. case "Tajikistan": return CountryEnum.tj
  888. case "Tanzania": return CountryEnum.tz
  889. case "Thailand": return CountryEnum.th
  890. case "Togo": return CountryEnum.tg
  891. case "Tonga": return CountryEnum.to
  892. case "Tunisia": return CountryEnum.tn
  893. case "Turkey": return CountryEnum.tr
  894. case "Turkmenistan": return CountryEnum.tm
  895. case "Tuvalu": return CountryEnum.tv
  896. case "United Arab Emirates": return CountryEnum.ae
  897. case "Uganda": return CountryEnum.ug
  898. case "England": return CountryEnum.gb
  899. case "Ukraine": return CountryEnum.ua
  900. case "Uruguay": return CountryEnum.uy
  901. case "United States": return CountryEnum.us
  902. case "Uzbekistan": return CountryEnum.uz
  903. case "Vanuatu": return CountryEnum.vu
  904. case "Vatican": return CountryEnum.va
  905. case "Venezuela": return CountryEnum.ve
  906. case "Vietnam": return CountryEnum.vn
  907. case "Wallis and Futuna Islands": return CountryEnum.wf
  908. case "Yemen": return CountryEnum.ye
  909. case "Zambia": return CountryEnum.zm
  910. case "Zimbabwe": return CountryEnum.zw
  911. default: return CountryEnum.np
  912. }
  913. }
  914. }