package com.ffii.fpsms.modules.jobOrder.web.model

/**
 * Live laser TCP query results (EZCAD-style commands on same host/port as Bag2 laser send).
 *
 * [markStatus]: 0 = idle, 1 = marking, 2 = other (when the device returns a parseable digit).
 */
data class LaserBag2MarkInfoResponse(
    val host: String,
    val port: Int,
    /** Response body from `GetMarkData` (current mark string / job data). */
    val markData: String? = null,
    /** Parsed from `GetMarkStatus` when possible. */
    val markStatus: Int? = null,
    /** Short label for [markStatus] (Traditional Chinese). */
    val markStatusLabel: String? = null,
    val markedCount: Int? = null,
    val rawMarkStatus: String? = null,
    val rawMarkedCount: String? = null,
    /** Non-fatal per-command issues (e.g. read timeout); fields may still be partially filled. */
    val error: String? = null,
)
