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

import java.time.LocalDateTime;

/**
 * SuperAgent 查询接口使用的任务快照。包含任务队列字段和对应 AI transition 的路由字段。
 *
 * @param id 本系统任务主键
 * @param hotelId 酒店上下文 ID
 * @param orderId 任务当前挂靠订单 ID
 * @param sourceMessageId 任务来源 SourceMessage ID
 * @param aiTransitionId 对应 AI transition ID
 * @param resultType AI 结果类型
 * @param aiTaskType AI 原始任务类型
 * @param systemTaskType 系统主任务类型
 * @param taskCardType 前端任务卡类型
 * @param taskSubtype 业务动作 subtype
 * @param taskStatus 任务状态
 * @param queueParticipation 是否参与订单执行队列
 * @param executionOrder 同订单执行顺序
 * @param parentTaskId 父任务 ID
 * @param parentSourceEventIndex 父事件序号
 * @param linkedTaskGroupId 联动任务组 ID
 * @param blockedUntilParentCompleted 是否等待父任务完成
 * @param lastFailureReason 最近失败原因
 * @param completedAt 任务完成时间
 * @param createdAt 创建时间
 * @param updatedAt 最近更新时间
 * @param transitionSourceEventIndex AI transition 来源事件序号
 * @param catalogCode Skill 目录代码
 * @param skillId Skill 标识
 * @param routeCode M002 V3 路由码
 * @param systemProcessCategory 系统处理分类
 * @param adapterErrorCode Adapter 契约错误代码
 * @param adapterErrorMessage Adapter 契约错误说明
 */
public record ReservationAiQueryTaskSnapshot(
        Long id,
        String hotelId,
        Long orderId,
        Long sourceMessageId,
        Long aiTransitionId,
        String resultType,
        String aiTaskType,
        String systemTaskType,
        String taskCardType,
        String taskSubtype,
        String taskStatus,
        Boolean queueParticipation,
        Integer executionOrder,
        Long parentTaskId,
        Integer parentSourceEventIndex,
        String linkedTaskGroupId,
        Boolean blockedUntilParentCompleted,
        String lastFailureReason,
        LocalDateTime completedAt,
        LocalDateTime createdAt,
        LocalDateTime updatedAt,
        Integer transitionSourceEventIndex,
        String catalogCode,
        String skillId,
        String routeCode,
        String systemProcessCategory,
        String adapterErrorCode,
        String adapterErrorMessage
) {
}
