package com.lukouguoji.module_base.bean

import androidx.databinding.ObservableBoolean
import com.lukouguoji.module_base.interfaces.ICheck

/**
 * 国内进港移库数据Bean
 */
class GnjYiKuBean : ICheck {
    var id: String = ""                     // 主键ID
    var mawbId: String = ""                 // 主运单ID
    var wbNo: String = ""                   // 运单号
    var pc: String = ""                     // 件数
    var weight: String = ""                 // 重量(kg)
    var spCode: String = ""                 // 特码
    var agentCode: String = ""              // 代理人
    var goods: String = ""                  // 品名
    var flight: String = ""                 // 进港航班(格式: 20240712/MU2023)
    var route: String = ""                  // 航程(格式: LAX-PEK-HFE)（旧接口字段）
    var range: String = ""                  // 航程(格式: LAX-PEK-HFE)（GnjMawb 接口字段）
    var origin: String = ""                 // 始发港
    var dest: String = ""                   // 目的港
    var awbType: String = ""                // 运单类型(转国际进港/转国内出港等)
    var telegramNo: String = ""             // 电报号（旧接口字段）
    var telegramId: String = ""             // 电报号（GnjMawb 接口字段）
    var remark: String = ""                 // 备注
    var handoverStatus: String = ""         // 移交状态(未移交/已移交)
    var images: String = ""                 // 交接图片(逗号分隔的URL列表)
    var originalPic: String = ""            // 交接图片原图地址
    var pic: String = ""                    // 交接图片缩略图
    var picNumber: String = ""              // 交接图片数量
    var fdate: String = ""                  // 航班日期
    var fno: String = ""                    // 航班号
    var businessType: String = ""           // 业务类型
    var opDate: String = ""                 // 操作日期
    var carrier: String = ""                // 承运人
    var pickFlag: String = ""                // 出库标志（1=已出库）

    // 多选状态绑定
    val checked = ObservableBoolean(false)

    override fun getCheckObservable(): ObservableBoolean {
        return checked
    }

    /**
     * 获取图片列表
     */
    fun getImageList(): List<String> {
        val source = originalPic.ifEmpty { images }
        return if (source.isNotEmpty()) {
            source.split(",").filter { it.isNotEmpty() }
        } else {
            emptyList()
        }
    }

    /** 获取航程（兼容新旧接口） */
    fun getRouteDisplay(): String = range.ifEmpty { route }

    /** 获取电报号（兼容新旧接口） */
    fun getTelegramDisplay(): String = telegramId.ifEmpty { telegramNo }
}
