package com.cyl.manager.marketing.service;

import cn.felord.payment.wechat.v3.model.busifavor.BusiFavorReceiveConsumeData;
import com.cyl.manager.marketing.domain.WechatMemberCoupon;
import com.cyl.manager.marketing.pojo.SendCouponRequest;

import java.util.List;

/**
 * 会员券发放记录Service接口
 * 
 * @author daixiande
 */
public interface IWechatMemberCouponService {
    /**
     * 查询会员券发放记录
     * 
     * @param id 会员券发放记录主键
     * @return 会员券发放记录
     */
    WechatMemberCoupon selectWechatMemberCouponById(Integer id);

    /**
     * 查询会员券发放记录列表
     * 
     * @param wechatMemberCoupon 会员券发放记录
     * @return 会员券发放记录集合
     */
    List<WechatMemberCoupon> selectWechatMemberCouponList(WechatMemberCoupon wechatMemberCoupon);

    /**
     * 新增会员券发放记录
     * 
     * @param wechatMemberCoupon 会员券发放记录
     * @return 结果
     */
    int insertWechatMemberCoupon(WechatMemberCoupon wechatMemberCoupon);

    /**
     * 修改会员券发放记录
     * 
     * @param wechatMemberCoupon 会员券发放记录
     * @return 结果
     */
    int updateWechatMemberCoupon(WechatMemberCoupon wechatMemberCoupon);

    /**
     * 批量删除会员券发放记录
     * 
     * @param ids 需要删除的会员券发放记录主键集合
     * @return 结果
     */
    int deleteWechatMemberCouponByIds(Integer[] ids);

    /**
     * 删除会员券发放记录信息
     * 
     * @param id 会员券发放记录主键
     * @return 结果
     */
    int deleteWechatMemberCouponById(Integer id);

    void send(BusiFavorReceiveConsumeData data);

    int sendCoupon(SendCouponRequest sendCouponRequest);

    boolean use(Integer id, Long orderId);
}
