// // Reciepient.swift // GMERemittance // // Created by gme_2 on 26/08/2018. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import Foundation import ObjectMapper protocol Serializer { func serialize() -> [String: String] } struct RecipientModelFields { static let firstName = "FirstName" static let middleName = "MiddleName" static let lastName = "LastName" static let country = "Country" static let state = "State" static let city = "City" static let address = "Address" static let district = "District" static let relation = "Relation" static let mobileNumber = "MobileNo" static let email = "Email" static let reason = "TransferReason" static let id = "Id" static let idNumber = "IdNumber" static let idType = "IdType" } class ReceipientViewModel { var id: String? var firstName: String? var middleName: String? var lastName: String? var countryId: String? var stateId: String? var districtId: String? var city: String? var address: String? var relationId: String? var mobileNumber: String? var email: String? var reasonId: String? var idNumber: String? var idType: String? } struct RecipientEx: Codable, Mappable { var firstName: String? var middleName: String? var lastName: String? var country: String? var countryId: String? var countryCode: String? var state: String? var stateId: String? var city: String? var address: String? var district: String? var districtId: String? var relation: String? var relationId: String? var mobileNumber: String? var email: String? var recipientId: String? var reason: String? var reasonId: String? // IdNumber,IdType var idNumber: String? var idType: String? mutating func mapping(map: Map) { firstName <- map["firstName"] middleName <- map["middleName"] lastName <- map["lastName"] country <- map["country"] state <- map["state"] stateId <- map["stateId"] city <- map["city"] address <- map["address"] district <- map["district"] districtId <- map["districtId"] relation <- map["relation"] relationId <- map["relationId"] mobileNumber <- map["mobileNumber"] email <- map["email"] recipientId <- map["recipientId"] reason <- map["reason"] reasonId <- map["reasonId"] countryId <- map["countryId"] countryCode <- map["countryCode"] idNumber <- map["idNumber"] idType <- map["idType"] } func getFullName() -> String { guard middleName != nil else { return (firstName ?? "") + " " + (lastName ?? "") } let first = self.firstName ?? "" let last = self.lastName ?? "" let middle = self.middleName ?? "" return first + " " + middle + " " + last } init?(map: Map) {} init() {} } extension RecipientEx: Serializer { func serialize() -> [String : String] { var dict: [String: String] = [:] dict[RecipientModelFields.firstName] = self.firstName ?? "" dict[RecipientModelFields.lastName] = self.lastName ?? "" dict[RecipientModelFields.country] = self.countryId ?? "" dict[RecipientModelFields.middleName] = self.middleName ?? "" dict[RecipientModelFields.state] = self.stateId ?? "" dict[RecipientModelFields.district] = self.districtId ?? "" dict[RecipientModelFields.city] = self.city ?? "" dict[RecipientModelFields.address] = self.address ?? "" dict[RecipientModelFields.relation] = self.relationId ?? "" dict[RecipientModelFields.mobileNumber] = self.mobileNumber ?? "" dict[RecipientModelFields.email] = self.email ?? "" dict[RecipientModelFields.reason] = self.reasonId ?? "" dict[RecipientModelFields.id] = self.recipientId ?? "" dict[RecipientModelFields.idType] = self.idType ?? "" dict[RecipientModelFields.idNumber] = self.idNumber ?? "" return dict } } class RecipientContainer: Mappable { var errorCode: String? var message: String? var id: String? var data: Recipient? required init?(map: Map) {} func mapping(map: Map) { errorCode <- map["ErrorCode"] id <- map["Id"] message <- map["Msg"] data <- map["Data"] } } class RecipientListContainer: Mappable { var errorCode: String? var message: String? var id: String? var data: RecipientListWrapperContainer? required init?(map: Map) {} func mapping(map: Map) { errorCode <- map["ErrorCode"] id <- map["Id"] message <- map["Msg"] data <- map["Data"] } } class RecipientListWrapperContainer: Mappable { var errorCode: String? var message: String? var id: String? var reciepients: [Recipient]? var accounts: [Account]? required init?(map: Map) {} func mapping(map: Map) { reciepients <- map["Receivers"] accounts <- map["AccountList"] errorCode <- map["ErrorCode"] id <- map["Id"] message <- map["Msg"] } }