package cn.nianxx.thhotel.workflows.reservation.service;

import cn.nianxx.thhotel.workflows.reservation.common.request.ReservationAiCaseContextQueryRequest;
import cn.nianxx.thhotel.workflows.reservation.common.request.ReservationAiObjectDetailQueryRequest;
import cn.nianxx.thhotel.workflows.reservation.common.request.ReservationMessageConversationQueryRequest;
import cn.nianxx.thhotel.workflows.reservation.common.result.ReservationAiCaseContextResult;
import cn.nianxx.thhotel.workflows.reservation.common.result.ReservationAiObjectDetailResult;
import cn.nianxx.thhotel.workflows.reservation.common.result.ReservationMessageConversationMessagesResult;
import cn.nianxx.thhotel.workflows.reservation.common.result.ReservationMessageConversationTasksResult;

/**
 * Reservation AI 查询服务。为 SuperAgent / Main Agent 提供只读上下文，不产生业务写入。
 */
public interface ReservationAiQueryService {

    /**
     * 查询订单路由上下文，返回订单、未完成任务、终止记录和目标校验摘要。
     */
    ReservationAiCaseContextResult queryCaseContext(ReservationAiCaseContextQueryRequest request);

    /**
     * 查询单个对象详情。第一版只支持 ORDER:{orderId} 形式的本系统订单对象。
     */
    ReservationAiObjectDetailResult queryObjectDetail(ReservationAiObjectDetailQueryRequest request);

    /**
     * 查询邮件会话下全部任务，按邮件接收时间和任务创建时间稳定排序。
     */
    ReservationMessageConversationTasksResult queryMessageConversationTasks(
            ReservationMessageConversationQueryRequest request);

    /**
     * 查询邮件会话下全部受控正文，返回清洗后的 HTML，不返回附件 URL 或原始未清洗 HTML。
     */
    ReservationMessageConversationMessagesResult queryMessageConversationMessages(
            ReservationMessageConversationQueryRequest request);
}
