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


import com.yc.ship.framework.common.pojo.CommonResult;
import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
import com.yc.ship.module.trade.controller.app.ota.vo.*;


/**
 * &#064;Description ：ota内部标准接口
 * &#064;Author ：qsl
 * &#064;Date ：2025/6/17 20:49
 */
public interface OtaInnerService {

    /**
     * 内部创建订单，用于平台内部分销
     * @param otaInnerOrderVO
     * @param otaDistributeDTO
     * @return
     */
    CommonResult<OtaStandardOrderRespVO> createOrder(OtaInnerOrderVO otaInnerOrderVO, DistributorRespDTO otaDistributeDTO);

    /**
     * 平台内部分销支付
     * @param otaInnerOrderPayVO
     * @param otaDistributeDTO
     * @return
     */
    CommonResult<OtaStandardOrderPayRespVO> payOrder(OtaInnerOrderPayVO otaInnerOrderPayVO, DistributorRespDTO otaDistributeDTO);

    /**
     * 内部退款，用于平台内部分销
     * @param otaInnerRefundVO
     * @param otaDistributeDTO
     * @return
     */
    CommonResult<OtaStandardRefundRespVO> refund(OtaInnerRefundVO otaInnerRefundVO, DistributorRespDTO otaDistributeDTO);

    /**
     * 内部补录游客
     * @param otaInnerBindVisitorVO
     * @param otaDistributeDTO
     * @return
     */
    CommonResult<?> bindVisitor(OtaInnerBindVisitorVO otaInnerBindVisitorVO, DistributorRespDTO otaDistributeDTO);

    /**
     * 取消订单
     * @param supplierOrderNo
     * @param otaDistributeDTO
     * @return
     */
    CommonResult<?> cancelOrder(String supplierOrderNo, DistributorRespDTO otaDistributeDTO);
}
