|
//
// 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
}
}
|