package cn.nianxx.thhotel.workflows.reservation.common.result;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * SuperAgent 任务结果入站单个 item 响应。ID 以字符串返回，避免前端 Long 精度丢失。
 *
 * @param sourceEventIndex AI 原始事件序号
 * @param arrayIndex 当前批次中的处理顺序
 * @param aiTransitionId AI 过渡记录 ID
 * @param routeCode M002 V3 稳定路由码，S10/S99 直接使用外部路由码
 * @param systemProcessCategory 系统处理分类，用于区分业务任务、来源邮件通知和契约错误
 * @param adapterErrorCode Adapter 契约错误代码，正常创建任务时为空
 * @param orderId 关联订单 ID；仅落契约错误时为空
 * @param taskId 关联任务 ID；仅落契约错误时为空
 * @param systemTaskType 系统主任务类型
 * @param taskCardType 任务卡类型
 * @param taskStatus 任务状态；仅落契约错误时为空
 * @param orderStatus 订单状态；仅落契约错误时为空
 * @param executionOrder 同订单任务执行顺序；仅落契约错误时为空
 */
public record SuperAgentTaskResultItemResponse(
        @JsonProperty("source_event_index")
        Integer sourceEventIndex,
        @JsonProperty("array_index")
        Integer arrayIndex,
        @JsonProperty("ai_transition_id")
        String aiTransitionId,
        @JsonProperty("route_code")
        String routeCode,
        @JsonProperty("system_process_category")
        String systemProcessCategory,
        @JsonProperty("adapter_error_code")
        String adapterErrorCode,
        @JsonProperty("order_id")
        String orderId,
        @JsonProperty("task_id")
        String taskId,
        @JsonProperty("system_task_type")
        String systemTaskType,
        @JsonProperty("task_card_type")
        String taskCardType,
        @JsonProperty("task_status")
        String taskStatus,
        @JsonProperty("order_status")
        String orderStatus,
        @JsonProperty("execution_order")
        Integer executionOrder
) {
}
