package com.sqx.modules.member.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.PageUtils;
import com.sqx.modules.member.dto.VipPromoCodeDTO;
import com.sqx.modules.member.entity.VipPromoCode;
import com.sqx.modules.member.query.VipPromoCodeQuery;

/**
 * 会员推广码
 *
 * @author : codingliang
 * @date : 2025-11-11
 */
public interface VipPromoCodeService extends IService<VipPromoCode> {

    PageUtils pages(VipPromoCodeQuery query);

    void save(VipPromoCodeDTO dto);

    void update(VipPromoCodeDTO dto);

    /**
     * 根据推广码获取会员推广码
     *
     * @param promoCode 推广码
     * @return 会员推广码
     */
    VipPromoCode getByCode(String promoCode);

    /**
     * 增加推广次数
     * @param promoCodeId 会员推广码id
     */
    void increasePromoCount(Long promoCodeId);
}
