package com.hai.service;

import com.hai.entity.HighUser;
import com.hai.entity.HighUserCoupon;
import com.hai.model.HighUserCouponModel;

import java.util.List;
import java.util.Map;

/**
 * @Auther: 胡锐
 * @Description: 用户的卡卷
 * @Date: 2021/3/27 16:06
 */
public interface HighUserCouponService {

    /**
     * @Author 胡锐
     * @Description 增加
     * @Date 2021/3/27 16:08
     **/
    void insertUserCoupon(HighUserCoupon  highUserCoupon);

    /**
     * @Author 胡锐
     * @Description 修改
     * @Date 2021/3/27 16:08
     **/
    void updateUserCoupon(HighUserCoupon  highUserCoupon);

    /**
     * @Author 胡锐
     * @Description 获取已到期的卡卷
     * @Date 2021/3/27 16:09
     **/
    List<HighUserCoupon> getOverdueCoupon();

    /**
     * @Author 胡锐
     * @Description 根据卡卷销售码id查询
     * @Date 2021/3/29 23:28
     **/
    HighUserCoupon getDetailByCodeId(Long couponCodeId);

    /**
     * @Author 胡锐
     * @Description 根据关系id查询
     * @Date 2021/4/20 19:23
     **/
    HighUserCoupon getDetailById(Long userCouponId);

    /**
     * @Author 胡锐
     * @Description 查询最新一张可用的卡券
     * @Date 2021/4/20 21:01
     **/
    HighUserCoupon getUserNewCoupon(Long userId,Long couponId);

    /**
     * @Author 胡锐
     * @Description 查询用户列表
     * @Date 2021/3/27 17:21
     **/
    List<HighUserCoupon> getUserCouponList(Map<String,Object> map);

    /**
     * @Author 胡锐
     * @Description 根据用户id 和 卡卷id查询
     * @Date 2021/3/27 17:42
     **/
    HighUserCoupon getUserCoupon(Long userId, Long couponId);


    List<HighUserCoupon> getCouponList(Long userId,Integer status);

    /**
     * @Author 胡锐
     * @Description 重新领取卡卷
     * @Date 2021/4/2 23:13
     **/
    HighUserCoupon againReceiveCoupon(Long userId,Long couponId);

    /**
     * @Author 胡锐
     * @Description 处理过期的卡券
     * @Date 2021/4/5 12:26
     **/
    void expiredCoupon(Long userCouponId);


}
