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

import com.yc.ship.module.trade.controller.admin.order.vo.check.TradeCheckReqVO;
import com.yc.ship.module.trade.controller.admin.order.vo.check.TradeCheckRespVO;
import com.yc.ship.module.trade.dal.dataobject.order.TradeDetailDO;

import java.util.List;

/**
 * 核销处理服务
 */
public interface TradeCheckHandleService {

    /**
     * 票号核销
     *
     * @param checkCode  票号
     * @param checkReqVO 参数
     * @param detailDO   门票
     */
    TradeCheckRespVO checkVoucherHandle(String checkCode, TradeCheckReqVO checkReqVO, TradeDetailDO detailDO);

    /**
     * 订单号核销
     *
     * @param checkCode  订单号
     * @param checkReqVO 参数
     */
    List<TradeCheckRespVO> checkOrderHandle(String checkCode, TradeCheckReqVO checkReqVO);

    /**
     * 证件号核销
     *
     * @param checkCode  证件号
     * @param checkReqVO 参数
     */
    List<TradeCheckRespVO> checkCardNoHandle(String checkCode, TradeCheckReqVO checkReqVO);

    /**
     * 子票核销
     *
     * @param checkCode  子票id
     * @param checkReqVO 参数
     */
    TradeCheckRespVO checkDetailHandle(String checkCode, TradeCheckReqVO checkReqVO);

    /**
     * 不验证规则核销
     *
     * @param checkCode  核销码
     * @param checkReqVO 参数
     */
    TradeCheckRespVO checkOtherHandle(String checkCode, TradeCheckReqVO checkReqVO);

}
