package com.lukouguoji.module_base.bean

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

class MoveStashBean : ICheck {
    var activeId: String = "" // null
    var agentCode: String = "" // HFEXB
    var agentName: String = "" // 代理人名称（search 出参有定义）
    var awbType: String = "" // 国际进港（国内中转）
    var businessType: String = "" // null
    var by1: String = "" // null
    var cargoType: String = "" // null
    var cashWeight: String = "" // null
    var chargeFlag: String = "" // null
    var cneeCode: String = "" // null
    var cneeId: String = "" // null
    var cneeTel: String = "" // null
    var consignee: String = "" // null
    var dep: String = "" // null
    var dest: String = "" // HFE
    var dgrDetail: String = "" // null
    var dgrLocation: String = "" // null
    var fdate: String = "" // 2024-07-11
    var fdep: String = "" // null
    var fdest: String = "" // null
    var flight: String = "" // 20240711/MU7766
    var fno: String = "" // MU7766
    var goods: String = "" // 国际货
    var mawbId: String = "" // 996422
    var no: String = "" // 44445074
    var opDate: String = "" // null
    var opId: String = "" // null
    var origin: String = "" // LAX
    var packageType: String = "" // null
    var pc: String = "" // 5
    var pickFlag: String = "" // null
    var prefix: String = "" // 781
    var range: String = "" // null
    var remark: String = "" // null
    var spCode: String = "" // null
    var subCode: String = "" // null
    var unNumber: String = "" // null
    var volume: String = "" // null
    var wbNo: String = "" // 78144445074
    var weight: String = "" // 6

    val checked = ObservableBoolean(false)

    override fun getCheckObservable(): ObservableBoolean {
        return checked
    }

    // ========== 5.5 寸手持端展示辅助字段（仅前端使用，不参与提交） ==========

    /** 是否已移库：由列表加载端点决定（search=待移库 / searchMoved=已移库），载入时打标 */
    var isMoved: Boolean = false

    /** 卡片长按「拍照」操作浮层显隐（仅 UI 状态） */
    val actionMenuVisible = ObservableBoolean(false)

    /** 代理显示：网络层会把 null 归一成空串，须 isNullOrEmpty 双兜底（沿用进港/出港查询口径） */
    val agentDisplay: String
        get() = if (agentName.isNotEmpty()) agentName else agentCode

    /** 详情页/卡片字段统一空值占位 */
    fun orDash(value: String?): String = if (value.isNullOrEmpty()) "-" else value
}