package com.czg.market.service;

import com.czg.market.dto.ChatCouponDTO;
import com.czg.market.dto.MkShopCouponRecordDTO;
import com.czg.market.entity.ChatCoupon;
import com.czg.market.vo.ChatCouponVO;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;

/**
 * 服务层。
 *
 * @author ww
 * @since 2025-12-02
 */
public interface ChatCouponService extends IService<ChatCoupon> {

    /**
     * 创建聊天优惠券发放活动
     */
    ChatCoupon createChatCoupon(Long shopId, ChatCouponDTO chatCoupon);

    /**
     * 分页查询聊天优惠券发放活动
     */
    Page<ChatCouponVO> pageChatCoupon(Long shopId, Integer page, Integer size, Integer status);

    /**
     * 失效
     */
    boolean expiredChatCoupon(Long shopId, Long id);

    /**
     * 发放优惠券
     */
    void grantChatCoupon(Long id, Long shopId, Long userId);

     /**
      * 分页查询优惠券发放记录
      */
    Page<MkShopCouponRecordDTO> grantChatCouponRecord(Long id, Integer status, Integer page, Integer size);
}
