package com.lukouguoji.module_base.bean

import androidx.databinding.ObservableBoolean
import com.lukouguoji.module_base.R
import com.lukouguoji.module_base.interfaces.ICheck
import com.lukouguoji.module_base.ktx.noNull
import com.lukouguoji.module_base.util.DictUtils
import dev.DevUtils
import dev.utils.DevFinal
import dev.utils.common.DateUtils

class GnjUnloadListBean(
    var activeId: String = "", // null
    // 平板车号
    var carId: String = "", // 166
    // 司机
    var driver: String = "", // null
    // 预计到达
    var estimatedArrival: String = "", // null
    // 航班日期
    var fdate: String = "", // 2024-04-12
    // 起始站
    var fdep: String = "", // HFE
    // 目的站
    var fdest: String = "", // PEK
    // 航班ID
    var fid: String = "", // 264699
    // 航班号
    var fno: String = "", // MU2000
    // ID
    var id: String = "", // 4
    // 确认时间
    var opDate: String = "", // 2024-05-25 01:50:28
    // 确认人
    var opId: String = "", // ADMIN
    // 运输状态
    var transStatus: String = "", // 0
    // 转运类型
    var transType: String = "",// 3
    //货物类型：0“国际货”，1“活体鲜活”，2“贵重物品”，3“其他特货”
    var cargoType: String = "", // 3

    // 货物类型中文
    var cargoTypeName: String = "",

    //转运目的地
    var transDest: String = "",

    var transDestName: String = "",

    // 班车数量
    var carNum: String = "",

    // 交接仓管
    var whsOpName: String = "",

    // 交接时间
    var whsOpDate: String = "",

    // 单证类型名称
    var fileTypeName: String = "",

    // 转运类型名称
    var transTypeName: String = "",
    // 运输状态名称
    var transStatusName: String = ""
) : ICheck {

    val checked = ObservableBoolean(false)

    override fun getCheckObservable() = checked

    fun checkedClick(){

        if (checked.get()){
            checked.set(false)
        }else{
            checked.set(true)
        }
        // 通知选中状态变化
        onCheckedChangeListener?.onCheckedChanged(this, checked.get())
    }

    // 选中状态变化监听器
    var onCheckedChangeListener: OnCheckedChangeListener? = null

    interface OnCheckedChangeListener {
        fun onCheckedChanged(bean: GnjUnloadListBean, isChecked: Boolean)
    }

    val transStatusColor: Int
        get() {
            return DevUtils.getTopActivity().resources.getColor(
                when (transStatus) {
                    "0" -> R.color.blue
                    "1" -> R.color.green
                    "2" -> R.color.red
                    else -> R.color.blue
                }
            )
        }
    fun getFlightDesc() = "$fdate/$fno"

    fun getFlightSplit() : String {
        if (fdate != "" && fno != "") {
            val (year, mon, day) = fdate.split("-")
            return "${year}${mon}${day}/${fno}"
        }
        return ""
    }

    // 获取航程
    fun getVoyage() = "$fdep-$fdest"


    val estimatedArrivalHM: String
        get() {
            return DateUtils.parseString(
                estimatedArrival,
                DevFinal.TIME.yyyyMMddHHmmss_HYPHEN,
                "HH:mm"
            ).noNull(estimatedArrival)
        }

    /*fun getCargoTypeName(): String {
        return when (cargoType) {
            "0" -> "国际货"
            "1" -> "活体鲜活"
            "2" -> "贵重物品"
            "3" -> "其他特货"
            else -> ""
        }
    }*/


}