// // OrderItem.swift // PaiaiDataKit // // Created by ffib on 2018/12/19. // Copyright © 2018 yb. All rights reserved. // import Foundation import ObjectMapper import RxDataSources public struct OrderItem: JSONCode { //model display layer public var order_id: String = "" public var displayPrice: String = "" public var displayPhoto: String = "" public var displayCreated: String = "" var created_at: Date? var body: String = "" var to_uid: String = "" var to_lid: String = "" var pay_status: Int = 0 var paid_at: String = "" var from_uid: String = "" var total_fee: CGFloat = 0 var group_photo_info: PhotoItem? init(json: [String: AnyObject]) { self.init(map: Map(mappingType: .fromJSON, JSON: json)) } } extension OrderItem: Mappable { public init(map: Map) { mapping(map: map) } mutating public func mapping(map: Map) { let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" body <- map["body"] to_lid <- map["to_lid"] to_uid <- map["to_uid"] paid_at <- map["paid_at"] from_uid <- map["from_uid"] total_fee <- map["total_fee"] pay_status <- map["pay_status"] group_photo_info <- map["group_photo_info"] created_at <- (map["created_at"], DateFormatterTransform(dateFormatter:dateFormatter)) //model display layer order_id <- map["order_id"] displayPrice = "+\(total_fee / 100)" guard let createdAt = created_at, let photoInfo = group_photo_info else { return } displayCreated = createdAt.getTimeString(format: "YYYY-MM-dd HH:MM") displayPhoto = photoInfo.photo_thumbnail_url } } extension OrderItem: IdentifiableType, Equatable { public typealias Identity = String public var identity: String { return order_id } public static func == (lhs: OrderItem, rhs: OrderItem) -> Bool { return lhs.order_id == rhs.order_id } }