package com.lukouguoji.gjc.viewModel

import android.content.Intent
import androidx.lifecycle.MutableLiveData
import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.holder.IntExpArriveReceiptViewHolder
import com.lukouguoji.module_base.base.BaseViewModel
import com.lukouguoji.module_base.bean.GjcHaWb
import com.lukouguoji.module_base.common.Constant

/**
 * 国际出港运抵-回执内容 ViewModel（5.5寸手机版专属只读页）
 *
 * 数据直接复用主列表页已加载的 haWbList.response / arrivalOpDate 字段，无需任何新增请求。
 * 对应设计稿 documents/5.5寸手持端设计文件/04_出港运抵/receipt.html。
 */
class IntExpArriveReceiptViewModel : BaseViewModel() {

    val receiptList = MutableLiveData<List<GjcHaWb>>(emptyList())

    // 适配器配置
    val itemViewHolder = IntExpArriveReceiptViewHolder::class.java
    val itemLayoutId = R.layout.item_int_exp_arrive_receipt

    @Suppress("UNCHECKED_CAST")
    fun initOnCreated(intent: Intent) {
        val list = intent.getSerializableExtra(Constant.Key.DATA) as? ArrayList<GjcHaWb>
        // .copy() 补上被 Java 序列化跳过的 @Transient 字段（checked 等），见分单明细页同款注释
        receiptList.value = (list ?: emptyList())
            .map { it.copy() }
            .filter { !it.response.isNullOrEmpty() }
            .sortedByDescending { it.arrivalOpDate }
    }
}
