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

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * SuperAgent 查询订单上下文请求。该请求只用于只读查询，不触发任务创建或 OPERA 写入。
 *
 * @param hotelId 酒店上下文 ID，用于隔离订单、任务和 AI transition 数据
 * @param sourceMessageId SuperAgent 透传的外部来源消息 ID，本接口第一版接收但不作为查询边界
 * @param sourceEventIndex SuperAgent 透传的 AI 事件序号，本接口第一版接收但不作为查询边界
 * @param groupCode Group Code / Allotment Code 查询 key
 * @param confirmationNumber Confirmation Number 查询 key
 * @param reservationNo OPERA reservation no，第一版无可靠表源，仅参与入参完整性校验
 * @param objectTypeHint 调用方推测的对象类型，只作为提示不作为业务事实
 * @param targetKeySource key 来源，例如 body_current 或 body_thread_evidence
 * @param bodyThreadUsedOnlyAsEvidence 历史线程 key 是否仅作为证据使用
 */
public record ReservationAiCaseContextQueryRequest(
        @JsonProperty("hotel_id")
        String hotelId,
        @JsonProperty("source_message_id")
        String sourceMessageId,
        @JsonProperty("source_event_index")
        Integer sourceEventIndex,
        @JsonProperty("group_code")
        String groupCode,
        @JsonProperty("confirmation_number")
        String confirmationNumber,
        @JsonProperty("reservation_no")
        String reservationNo,
        @JsonProperty("object_type_hint")
        String objectTypeHint,
        @JsonProperty("target_key_source")
        String targetKeySource,
        @JsonProperty("body_thread_used_only_as_evidence")
        Boolean bodyThreadUsedOnlyAsEvidence
) {
}
