package com.lukouguoji.module_base.bean

import androidx.databinding.ObservableBoolean

/**
 * 组装信息Bean(左侧折叠列表)
 * 支持两种行类型:
 * 1. 一级ULD行: 显示ULD编号、总件数、总重量
 * 2. 二级运单行: 显示运单号、件数、重量
 */
class AssembleInfoBean {

    // ========== 层级类型 ==========
    enum class ItemType {
        ULD_HEADER,     // 一级ULD行
        WAYBILL_DETAIL  // 二级运单行
    }

    var itemType: ItemType = ItemType.ULD_HEADER  // 行类型

    // ========== 一级ULD行字段 ==========
    var uldNo: String = ""          // ULD编号
    var uldIndex: Int = 0           // ULD序号（用于显示1、2、3...）
    var totalPieces: Int = 0        // 总件数（二级运单件数求和）
    var totalWeight: Double = 0.0   // 总重量（二级运单重量求和）

    // 展开/折叠状态（使用ObservableBoolean支持DataBinding）
    val isExpanded: ObservableBoolean = ObservableBoolean(false)

    // 子运单列表（用于数据管理，不直接显示）
    var waybillChildren: MutableList<AssembleInfoBean> = mutableListOf()

    // ========== 二级运单行字段 ==========
    var parentUldNo: String = ""    // 父级ULD编号（用于关联）
    var wbNo: String = ""           // 运单号（直接使用后端字段名）
    var waybillPieces: Int = 0      // 运单件数
    var waybillWeight: Double = 0.0 // 运单重量

    // 原始运单数据（用于同步更新和填充表单）
    var waybillData: AssembleWaybillBean? = null

    // 关联的原始数据（用于存储GjcUldUseBean等对象）
    var tag: Any? = null

    // ========== 视觉样式字段 ==========
    var hasArrow: Boolean = false   // 是否显示箭头（一级ULD行为true）
    var isOrange: Boolean = false   // 是否橙色文字（暂保留）
    var showIndex: Boolean = false  // 是否显示序号圆圈（改为false，不再显示序号）
    var showIndent: Boolean = false // 是否显示缩进（二级运单行为true）

    // 保留原有的weightInfo字段（兼容性，但不再使用）
    var weightInfo: String = ""
}
