|
//
// PhotoModel.swift
// PaiAi
//
// Created by FFIB on 2017/10/9.
// Copyright © 2017年 yb. All rights reserved.
//
import Foundation
import ObjectMapper
struct PhotoModel {
typealias modelType = PhotoModel
var avatar = ""
var comment_num = 0
var created_at = ""
var create_at: Date?
var group_avatar = ""
var group_default_avatar = 0
var group_from = 0
var group_id = ""
var group_name = ""
var nickname = ""
var photo_from = 0
var photo_h = 0
var photo_w = 0
var photo_id = ""
var photo_thumbnail2_h = 0
var photo_thumbnail2_url = ""
var photo_thumbnail2_w = 0
var photo_thumbnail_h = 0
var photo_thumbnail_url = ""
var photo_thumbnail_w = 0
var photo_url = ""
var photo_share_url = ""
var thumbup = false
var thumbup_num = 0
var user_id = ""
var murl = ""
var rurl = ""
var porder = [String: String]()
var origin_expired_stamps: Double = 0
var time_stamps: Date?
var isExpire = true
var sizeCache = CGSize(width: 0, height: 0)
var display_payment_btn = 0
init(data: [String: AnyObject]) {
self.init(map: Map(mappingType: .fromJSON, JSON: data))
}
init() { }
}
extension PhotoModel: Mappable {
init(map: Map) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
created_at <- map["created_at"]
create_at <- (map["created_at"], DateFormatterTransform(dateFormatter:dateFormatter))
avatar <- map["avatar"]
comment_num <- map["comment_num"]
group_avatar <- map["group_avatar"]
group_default_avatar <- map["group_default_avatar"]
group_from <- map["group_from"]
group_id <- map["group_id"]
group_name <- map["group_name"]
nickname <- map["nickname"]
photo_from <- map["photo_from"]
photo_h <- map["photo_h"]
photo_w <- map["photo_w"]
photo_id <- map["photo_id"]
photo_thumbnail2_h <- map["photo_thumbnail2_h"]
photo_thumbnail2_url <- map["photo_thumbnail2_url"]
photo_thumbnail2_w <- map["photo_thumbnail2_w"]
photo_thumbnail_h <- map["photo_thumbnail_h"]
photo_thumbnail_url <- map["photo_thumbnail_url"]
photo_thumbnail_w <- map["photo_thumbnail_w"]
photo_url <- map["photo_url"]
photo_share_url <- map["photo_share_url"]
thumbup <- map["thumbup"]
thumbup_num <- map["thumbup_num"]
user_id <- map["user_id"]
porder <- map["porder"]
display_payment_btn <- map["display_payment_btn"]
rurl = porder["r_photo_url"] ?? ""
murl = porder["m_photo_url"] ?? ""
let width = (kScreenWidth - 6 * 2 - 5) / 2
let imageTop: CGFloat = 51
let imageBottom: CGFloat = 32
let height = CGFloat(photo_thumbnail_h) / CGFloat(photo_thumbnail_w) * width + imageTop + imageBottom
sizeCache = CGSize(width: round(width), height: ceil(height))
}
func toJSON() -> [String : Any] {
let mirror = Mirror(reflecting: self)
var dict = [String: Any]()
for child in mirror.children {
dict[child.label ?? ""] = child.value
}
return dict
}
}
extension PhotoModel: GroupParsable {
static func parse(datas: [String : AnyObject]) -> [PhotoModel] {
guard let data = datas["data"] as? [String : AnyObject], let photos = data["photos"] as? [[String : AnyObject]] else {
return [PhotoModel]()
}
return photos.flatMap {
return PhotoModel.init(map: Map(mappingType: .fromJSON, JSON: $0))
}
}
}
|