package com.sonic.frog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sonic.frog.domain.entity.UserCreateCountStat;
import com.sonic.frog.domain.output.UserCreateCountOutput;

import java.time.LocalDateTime;

/**
 * 用户相册创作次数统计 Service
 */
public interface UserCreateCountStatService extends IService<UserCreateCountStat> {
    /**
     * 购买时，增加用户创作购买次数
     *
     * @param userId
     * @param count
     */
    void addBuyNum(Long userId, Integer count);


    /**
     * 订阅会员或续订时，增加用户会员创作次数
     *
     * @param userId
     * @param startTime  订阅会员时间或续订会员时间
     * @param expireTime 会员过期时间
     */
    void subMemberGiftUserCreateCount(Long userId, LocalDateTime startTime, LocalDateTime expireTime);


    /**
     * 获取用户创作次数
     *
     * @param userId
     * @return
     */
    UserCreateCountOutput getUserCreateCount(Long userId);

    /**
     * 使用用户创作次数
     *
     * @param userId
     */
    void useUserCreateCount(Long userId);

    /**
     * 会员每隔一个月赠送会员次数
     */
    void giftMemberNumJob();
}