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

import java.time.LocalDateTime;

/**
 * AI 过渡记录入库草稿。保留 AI 原始 item JSON、AI 原始三元组、V3 路由码和查询所需冗余字段。
 *
 * @param routeCode M002 V3 稳定路由码，S10/S99 使用外部 route_code
 * @param systemProcessCategory 系统处理分类，用于区分业务任务、来源邮件通知、未处理意图和契约错误
 * @param adapterErrorCode Adapter 契约错误代码，仅在不建业务任务时保存
 * @param adapterErrorMessage Adapter 契约错误说明，仅保存安全摘要
 */
public record ReservationAiTransitionDraft(
        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 groupCode,
        String confirmationNumber,
        String itemPayloadSha256,
        String itemIdempotencyKey,
        String manualReasonCode,
        Integer parentSourceEventIndex,
        String linkedTaskGroupId,
        Boolean blockedUntilParentCompleted,
        String aiPayloadJson,
        String caseKeysJson,
        String extractedFieldsJson,
        String manualReviewJson,
        String informationalMessageJson,
        String attachmentsJson,
        String contextUsedJson,
        String adapterErrorCode,
        String adapterErrorMessage,
        LocalDateTime now
) {
}
