//
//  PhotoCommentItem.swift
//  PaiaiDataKit
//
//  Created by ffib on 2018/12/25.
//  Copyright © 2018 yb. All rights reserved.
//

import Foundation
import ObjectMapper
import RxDataSources

public struct PhotoCommentItem: JSONCode {
    
    public var avatar: String = ""
    public var comment: String = ""
    public var user_id: String = ""
    public var nickname: String = ""
    public var created_at: Date?
    public var create_at: String = ""
    
    init(json: [String: AnyObject]) {
        self.init(map: Map(mappingType: .fromJSON, JSON: json))
    }
}
extension PhotoCommentItem: Mappable {
    mutating public func mapping(map: Map) {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
        created_at      <-  (map["created_at"], DateFormatterTransform(dateFormatter:dateFormatter))
        avatar          <-  (map["avatar"])
        comment         <-  map["comment"]
        user_id         <-  map["user_id"]
        nickname        <-  (map["nickname"])
        comment         <-  map["comment"]
        
        if let date = created_at {
            create_at = date.getTimeInfoFromDate()
        }
    }
    
    public init(map: Map) {
        mapping(map: map)
    }
}

extension PhotoCommentItem: IdentifiableType, Equatable {
    public typealias Identity = String
    public var identity: String { return user_id + comment }
    
    public static func == (lhs: PhotoCommentItem, rhs: PhotoCommentItem) -> Bool {
        return lhs.user_id == rhs.user_id && lhs.comment == rhs.comment
    }
}