package com.lukouguoji.gjc.holder

import android.view.View
import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.databinding.ItemIntExpAssembleBinding
import com.lukouguoji.module_base.adapter.setCommonAdapter
import com.lukouguoji.module_base.base.BaseViewHolder
import com.lukouguoji.module_base.bean.GjcUldUseBean
import com.lukouguoji.module_base.ktx.refresh

/**
 * 国际出港-出港组装 列表项ViewHolder
 * 参考出港运抵页面的实现
 */
class IntExpAssembleItemViewHolder(view: View) :
    BaseViewHolder<GjcUldUseBean, ItemIntExpAssembleBinding>(view) {

    override fun onBind(item: Any?, position: Int) {
        val bean = getItemBean(item) ?: return
        binding.bean = bean
        binding.position = position
        binding.executePendingBindings()

        // 添加图标点击事件 - 切换选择状态
        binding.ivIcon.setOnClickListener {
            // 反转checked状态
            bean.checked.set(!bean.checked.get())

            // 立即更新UI（图片自动切换）
            binding.executePendingBindings()
        }

        // ========== 展开按钮点击事件 ==========
        // 通过回调通知ViewModel处理展开逻辑（需要加载数据）
        binding.ivShow.setOnClickListener {
            clickListener?.onItemClick(position, 1000)  // type=1000表示展开操作
        }

        // ========== 侧滑菜单按钮点击事件 ==========
        // 修改按钮
        binding.btnEdit.setOnClickListener {
            binding.swipeMenu.quickClose()
            clickListener?.onItemClick(position, 2000)  // type=2000表示修改操作
        }

        // 删除按钮
        binding.btnDelete.setOnClickListener {
            binding.swipeMenu.quickClose()
            clickListener?.onItemClick(position, 2001)  // type=2001表示删除操作
        }

        // ========== 初始化子列表 RecyclerView ==========
        setCommonAdapter(
            binding.rvSub,
            IntExpAssembleSubViewHolder::class.java,
            R.layout.item_int_exp_assemble_sub
        )

        // 刷新子列表数据
        binding.rvSub.refresh(bean.waybillDetails ?: emptyList())
    }
}
