package com.lukouguoji.gjj.holder

import android.view.View
import com.lukouguoji.gjj.activity.IntImpPickUpDetailActivity
import com.lukouguoji.gjj.databinding.ItemIntImpPickUpDlvBinding
import com.lukouguoji.module_base.base.BaseViewHolder
import com.lukouguoji.module_base.common.ConstantEvent
import com.lukouguoji.module_base.impl.FlowBus
import com.lukouguoji.module_base.bean.IntImpPickUpDLVBean

/**
 * 国际进港-提取出库 列表项ViewHolder
 *
 * 双形态布局：平板变体含 iv_icon（多选图标），手机变体含 iv_check（圆形勾选框，仅待出库形态显示）
 * 与 tv_detail（查看详情）。单侧独有的 id 在 Binding 基类中为 @Nullable，必须判空访问。
 */
class IntImpPickUpDLVViewHolder(view: View) :
    BaseViewHolder<IntImpPickUpDLVBean, ItemIntImpPickUpDlvBinding>(view) {

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

        // 平板：点击图标切换选中状态
        binding.ivIcon?.setOnClickListener {
            bean.checked.set(!bean.checked.get())
            FlowBus.with<String>(ConstantEvent.EVENT_CHECK_CHANGED).tryEmit("check_changed")
            binding.executePendingBindings()
        }

        // 手机：圆形勾选框（已出库形态隐藏，无勾选语义）
        binding.ivCheck?.setOnClickListener {
            if (!bean.isPickedUp) {
                bean.checked.set(!bean.checked.get())
                FlowBus.with<String>(ConstantEvent.EVENT_CHECK_CHANGED).tryEmit("check_changed")
                binding.executePendingBindings()
            }
        }

        // 手机：查看详情（手机专属新页，数据直接传当前 bean，零新增请求）
        binding.tvDetail?.setOnClickListener {
            IntImpPickUpDetailActivity.start(itemView.context, bean)
        }
    }
}
