package cn.iocoder.yudao.module.custom.service;

import cn.iocoder.yudao.module.custom.entity.CustomerCoupon;
import cn.iocoder.yudao.module.custom.vo.CustomerCouponRespVO;
import cn.iocoder.yudao.module.custom.vo.CustomerCouponSaveReqVO;
import cn.iocoder.yudao.module.member.entity.MemberCoupon;
import cn.iocoder.yudao.module.order.entity.RepairOrderInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 用户卡券 Service 接口
 *
 * @author pqz
 */
public interface CustomerCouponService extends IService<CustomerCoupon> {



    /**
     * 卡券核销
     * @author PQZ
     * @date 15:37 2024/9/23
     * @param saveReqVO CustomerCouponSaveReqVO实体
    **/
    void couponVerification(CustomerCouponSaveReqVO saveReqVO);

    /**
     * 开卡有礼回调
     * @author PQZ
     * @date 21:50 2024/9/24
     * @param orderInfo RepairOrderInfo
    **/
    void couponCallBack(RepairOrderInfo orderInfo);

    /**
     * 卡券实体转换
     *
     * @param couponList MemberCoupon集合
     * @return java.util.List<cn.iocoder.yudao.module.custom.entity.CustomerCoupon>
     * @author PQZ
     * @date 11:01 2024/9/21
     **/
    List<CustomerCoupon> transCoupon(String activeId, String cusId, Long userId, List<MemberCoupon> couponList);

    /**
     * 删除用户卡券
     *
     * @param id 编号
     */
    void deleteCustomerCoupon(String id);

    /**
     * 获取用户卡券信息及卡券变动信息
     * @author PQZ
     * @date 22:51 2024/9/20
     * @param id 用户卡券id
     * @return cn.iocoder.yudao.module.custom.vo.CustomerCouponRespVO
    **/
    CustomerCouponRespVO getCustomerCoupon(String id);




    /**
     * 根据用户id获取卡券信息
     * @author PQZ
     * @date 20:43 2024/9/20 
     * @param cusId 用户id
     * @return java.util.List<cn.iocoder.yudao.module.custom.vo.CustomerCouponRespVO>
    **/
    List<CustomerCouponRespVO> listByCusId(String cusId);

}