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.

931 lines
34 KiB

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