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

import java.time.LocalDateTime;

/**
 * AI transition 展示快照。用于任务详情展示同一批次的 V3 路由、契约错误和未处理意图，不直接暴露 Entity。
 *
 * @param id AI transition 主键
 * @param hotelId 酒店上下文 ID
 * @param batchId AI 入站批次 ID
 * @param sourceMessageId 来源 SourceMessage Inbox ID
 * @param sourceEventIndex AI current 事件序号
 * @param arrayIndex AI 返回数组顺序，从 1 开始
 * @param executionOrder 初始执行顺序
 * @param catalogCode Skill 目录代码
 * @param skillId Skill 标识
 * @param resultType AI 结果类型
 * @param aiTaskType AI 原始任务类型
 * @param routeCode M002 V3 路由码
 * @param systemProcessCategory 系统处理分类
 * @param systemTaskType 系统主任务类型
 * @param taskCardType 任务卡类型
 * @param taskSubtype 业务动作 subtype
 * @param currentOrHistory 当前或历史标识
 * @param adapterErrorCode Adapter 契约错误代码
 * @param adapterErrorMessage Adapter 契约错误说明
 * @param aiPayloadJson AI 原始 item JSON
 * @param createdAt 创建 UTC 时间
 * @param updatedAt 最近更新 UTC 时间
 */
public record ReservationAiTransitionSnapshot(
        Long id,
        String hotelId,
        Long batchId,
        Long sourceMessageId,
        Integer sourceEventIndex,
        Integer arrayIndex,
        Integer executionOrder,
        String catalogCode,
        String skillId,
        String resultType,
        String aiTaskType,
        String routeCode,
        String systemProcessCategory,
        String systemTaskType,
        String taskCardType,
        String taskSubtype,
        String currentOrHistory,
        String adapterErrorCode,
        String adapterErrorMessage,
        String aiPayloadJson,
        LocalDateTime createdAt,
        LocalDateTime updatedAt
) {
}
