package com.lukouguoji.module_base.bean

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

/**
 * 国际进港电报接收池Bean
 */
class MsgReceivePool(
    var id: Long? = null,
    var msgType: String = "",  // 报文类型
    var receiveTime: String = "",  // 接收时间
    var teleContent: String = "",  // 报文内容
    var anaStatus: String = "",  // 生成（解析）状态:0-未生成；1-已生成
    var wbNo: String = "",  // 主单号
    var hno: String = "",  // 分单号
    var sendAddress: String = "",  // 发报地址
    var receiveAddress: String = "",  // 接收地址
    var status: String = "",  // 报文状态
    var errorMsg: String = "",  // 报文识别异常原因
    var key: String = "",  // 关键字
    var interfaceType: String = ""  // 接口类型
) : BaseObservable(), ICheck {

    // 选中状态（UI状态，不参与序列化）
    @Transient
    val checked = ObservableBoolean(false)

    override fun getCheckObservable() = checked

    // 兼容现有API的isSelected属性
    var isSelected: Boolean
        get() = checked.get()
        set(value) = checked.set(value)

    /**
     * 判断是否已生成
     */
    fun isGenerated() = anaStatus == "1"

    /**
     * 获取状态标签文本
     */
    fun getStatusLabel() = if (isGenerated()) "已生成" else "未生成"

    /**
     * 获取状态标签颜色
     */
    fun getStatusColor() = if (isGenerated()) "#00C853" else "#FF5252"
}
