// // 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 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" } class ReceipientViewModel { var id: String? var firstName: String? var middleName: String? var lastName: String? var countryId: String? var stateId: String? var districtId: String? var address: String? var relationId: String? var mobileNumber: String? var email: String? var reasonId: String? } struct Recipient: 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? 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"] } func getFullName() -> String { guard middleName != nil else { return (firstName ?? "") + " " + (lastName ?? "") } let _firstName = self.firstName ?? "" let _lastName = self.lastName ?? "" let _middleName = self.middleName ?? "" return _firstName + " " + _middleName + " " + _lastName } init?(map: Map) { } init() { } } extension Recipient: 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.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 ?? "" 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"] } }