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.

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