//
//  HistroyAPIModel.swift


import Foundation

struct HistoryAPIModel : Codable{
    let total_record : Int?
    let total_pages : Int?
    let current_page : Int?
    let have_more_pages : Bool?
    var widget_history : [HistoryListModel]
    
    enum CodingKeys : String, CodingKey{
        case total_record = "total_record"
        case total_pages = "total_pages"
        case current_page = "current_page"
        case have_more_pages = "have_more_pages"
        case widget_history = "widget_history"
    }
    
    init(from decoder: Decoder) throws {
        let values = try decoder.container(keyedBy: CodingKeys.self)
        total_record = try values.decodeIfPresent(Int.self, forKey: .total_record)
        total_pages = try values.decodeIfPresent(Int.self, forKey: .total_pages)
        current_page = try values.decodeIfPresent(Int.self, forKey: .current_page)
        have_more_pages = try values.decodeIfPresent(Bool.self, forKey: .have_more_pages)
        widget_history = try values.decode([HistoryListModel].self, forKey: .widget_history)
    }
}

struct HistoryListModel : Codable{
    let id : Int?
    let sender_id : Int?
    let full_name : String?
    let receiver_id : Int?
    let image : String?
    let image_url : String?
    let is_deleted_from : Int?
    let is_deleted_to : Int?
    let created_at :Int?
    
    enum CondingKeys : String, CodingKey{
        case id = "id"
        case sender_id = "sender_id"
        case full_name = "full_name"
        case receiver_id = "receiver_id"
        case image = "image"
        case image_url = "image_url"
        case is_deleted_from = "is_deleted_from"
        case is_deleted_to = "is_deleted_to"
        case created_at = "created_at"
    }
    
    init(from decoder: Decoder) throws {
        let values = try decoder.container(keyedBy: CodingKeys.self)
        id = try values.decodeIfPresent(Int.self, forKey: .id)
        full_name = try values.decodeIfPresent(String.self, forKey: .full_name)
        sender_id = try values.decodeIfPresent(Int.self, forKey: .sender_id)
        receiver_id = try values.decodeIfPresent(Int.self, forKey: .receiver_id)
        image = try values.decodeIfPresent(String.self, forKey: .image)
        image_url = try values.decodeIfPresent(String.self, forKey: .image_url)
        is_deleted_from = try values.decodeIfPresent(Int.self, forKey: .is_deleted_from)
        is_deleted_to = try values.decodeIfPresent(Int.self, forKey: .is_deleted_to)
        created_at = try values.decodeIfPresent(Int.self, forKey: .created_at)
    }
}
