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


import com.yc.ship.framework.common.pojo.CommonResult;
import com.yc.ship.framework.security.core.LoginUser;
import com.yc.ship.module.trade.controller.admin.order.vo.refund.*;
import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;

/**
 * &#064;Description 管理端交易service接口
 * &#064;Author qsl
 * &#064;Date 2025/6/4 15:03
 *
 * @author qsl
 */
public interface AdminTradeOrderService {


    /**
     * 后台退款
     */
    CommonResult<TradeRefundCreateRespVO> refund(LoginUser loginUser, TradeRefundCreateReqVO refundCreateReqVO);
    CommonResult<TradeRefundCreateRespVO> minirefund(LoginUser loginUser, TradeRefundCreateReqVO refundCreateReqVO);

    CommonResult<TradeRefundCalculateRespVO> calculateRefundAmount(LoginUser loginUser, TradeRefundCreateReqVO refundCreateReqVO);

    /**
     * 退款审核
     */
    CommonResult<?> refundAudit(LoginUser loginUser, TradeRefundAuditReqVO refundAuditReqVO);

    /**
     * 人工退款
     */
    CommonResult<?> manualRefund(LoginUser loginUser, Long refundId);

    /**
     * 根据退款记录再次退款
     */
    CommonResult<?> refundByRecord(LoginUser loginUser, Long refundRecordId);

    /**
     * 退款查询
     */
    CommonResult<?> refundQuery(Long refundRecordId);

    /**
     * 合同签订
     */
    void applyContract(TradeOrderDO tradeOrderDO);

    CommonResult<?> cancelOrder(Long orderId);

    CommonResult<?> refundAmount(TradeRefundAmountReqVO refundAmountReqVO);

    CommonResult<?> cancelRefund(Long refundId);

    CommonResult<?> orderApplyInvoice(String jsonstr);
    CommonResult<?> platApplyInvoice(String jsonstr);
}
