package com.ruoyi.system.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.domain.PromotionUserCoupon;
import com.ruoyi.system.domain.vo.StoreCouponVO;
import com.ruoyi.system.domain.vo.MyCouponVO;

/**
 * 用户优惠券Service接口
 */
public interface IPromotionUserCouponService extends IService<PromotionUserCoupon> {

    /**
     * 领取优惠券
     */
    public PromotionUserCoupon receiveCoupon(Long userId, Long batchId, Long storeId);

    /**
     * 查询门店可领优惠券列表
     */
    public List<StoreCouponVO> selectStoreCouponsForUser(Long userId, Long storeId);

    /**
     * 查询用户优惠券列表
     */
    public List<MyCouponVO> selectMyCoupons(Long userId, Integer status, Long storeId);

    /**
     * 标记优惠券为已使用
     *
     * @param couponId promotion_user_coupon.id
     * @param orderId  关联的订单ID
     * @param userId   用户ID（校验归属）
     */
    public void markAsUsed(Long couponId, Long orderId, Long userId);
}
