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


import com.yc.ship.framework.common.pojo.CommonResult;
import com.yc.ship.module.product.api.dto.SupplierRespDTO;
import com.yc.ship.module.trade.dal.dataobject.supplier.SupplierRefundDO;
import com.yc.ship.module.trade.service.refund.bo.RefundAuditNotifyBO;
import com.yc.ship.module.trade.service.supplier.bo.*;

/**
 * &#064;Description 供应商交易服务
 * &#064;Author qsl
 * &#064;Date 2025/6/4 15:03
 */
public interface SupplierTradeService {
    String PLAT_SERVICE = "platSupplierTradeService";
    String STANDARD_SERVICE = "standardSupplierTradeService";
    String ZSHL_SERVICE = "zshlSupplierTradeService";
    String ZWY_SERVICE = "zwySupplierTradeService";
    String ETERNAL_SERVICE = "eternalSupplierTradeService";
    String CRUISE_SERVICE = "cruiseSupplierTradeService";
    String SANXIAJY_SERVICE = "sanxiaJySupplierTradeService";
    CommonResult<SupplierTradeOrderRespBO> createOrder(SupplierTradeOrderBO supplierTradeOrderBO, SupplierRespDTO supplierRespDTO);
    CommonResult<SupplierTradeOrderPayRespBO> payOrder(SupplierTradeOrderPayBO supplierTradeOrderPayBO, SupplierRespDTO supplierRespDTO);
    CommonResult<SupplierRefundRespBO> refund(SupplierRefundDO supplierRefundDO, SupplierRespDTO supplierRespDTO);
    default CommonResult<?> cancelOrder(String supplierOrderNo, SupplierRespDTO supplierRespDTO){return null;}

    /**
     * 处理供应商的退款审核结果
     * @param refundAuditData
     */
    default RefundAuditNotifyBO handleRefundAuditResult(Object refundAuditData){return null;}

    /**
     * 补录游客
     * @param bindVisitorBO
     * @param supplierRespDTO
     * @return
     */
    default CommonResult<?> bindVisitor(SupplierTradeBindVisitorBO bindVisitorBO, SupplierRespDTO supplierRespDTO){return null;}

}
