package com.czg.market.service;

import com.czg.market.dto.MkShopConsumerCouponDTO;
import com.czg.market.entity.MkShopConsumerCoupon;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;

import java.math.BigDecimal;

/**
 * 消费赠券表 服务层。
 *
 * @author ww
 * @since 2025-09-12
 */
public interface MkShopConsumerCouponService extends IService<MkShopConsumerCoupon> {

    Page<MkShopConsumerCouponDTO> getConsumerCouponPage(MkShopConsumerCouponDTO param);

    /**
     * 参加消费赠券
     */
    void receiveConsumerCoupon(Long shopId, Long orderId, BigDecimal orderAmount, Long userId, Long shopUserId);

    /**
     * 订单退款 移除消费赠券
     *
     */
    void removeConsumerCoupon(Long shopId, Long userId, Long orderId);

    MkShopConsumerCouponDTO getConsumerCouponById(Long id);

    void addConsumerCoupon(MkShopConsumerCouponDTO param);

    void updateConsumerCouponById(MkShopConsumerCouponDTO param);

    void deleteConsumerCoupon(Long id);
}
