package com.yc.ship.module.trade.service.otc;


import com.yc.ship.framework.common.pojo.CommonResult;
import com.yc.ship.framework.common.pojo.PageResult;
import com.yc.ship.framework.security.core.LoginUser;
import com.yc.ship.module.trade.controller.admin.order.vo.order.MiniTradeOrderCreateReqVO;
import com.yc.ship.module.trade.controller.admin.order.vo.order.OtcTradeOrderCreateRespVO;
import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderReqVO;
import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderRespVO;
import com.yc.ship.module.trade.controller.app.otc.vo.*;

import java.util.List;


/**
 * &#064;Description 旅行社订单交易service接口
 *
 * @author qsl
 * &#064;Date 2025/8/12 08:34
 */
public interface AppOtcTradeOrderService {


    /**
     * 小程序下单创建
     */
    CommonResult<OtcTradeOrderCreateRespVO> miniAppCreateOrder(LoginUser loginUser, MiniTradeOrderCreateReqVO otcTradeOrderCreateReqVO);

    /**
     * 小程序支付订单
     */
    CommonResult<PayOrderRespVO> miniAppPayOrder(LoginUser loginUser, PayOrderReqVO payOrderReqVO);

    /**
     * 小程序订单查询
     */
    CommonResult<PageResult<AppTradeOrderRespVO>> miniTradeOrderPage(AppTradeOrderPageReqVO pageReqVO);

    /**
     * 小程序订单关联订单查询
     */
    CommonResult<AppTradeOrderRespVO> miniOrderInfoById(Long id);


    String getConfigValue(String key);

    CommonResult<?> miniAppCancelOrder(LoginUser loginUser, Long orderId);
    /**
     * 小程序查询我的行程
     */
    List<AppMyItineraryVO> getMyItinerary(Long loginUserId, Integer status, String keyword);
    /**
     * 小程序查询行程详情
     */
    AppItineraryDetailVO getItineraryDetail(Long orderId, String keyword);

    /**
     * app接站登记
     * @param reqVO
     * @return
     */
    Long appCreateOrderJzDetail(AppOrderJzReqVO reqVO);
}
