package com.dora.service;

import com.dora.entity.PromotionLevelConfig;

import java.util.List;

/**
 * 推广等级服务接口
 */
public interface PromotionLevelService {
    
    /**
     * 获取所有推广等级配置
     */
    List<PromotionLevelConfig> getAllPromotionLevels();
    
    /**
     * 根据付费粉丝数量计算推广等级
     */
    int calculatePromotionLevel(int paidFansCount);
    
    /**
     * 更新用户推广等级
     * 
     * @deprecated 此方法已废弃。根据新的设计，推广等级仅在用户注册时更新。
     *             请使用PromotionLevelCalculator.updateUserPromotionLevelOnRegistration()
     */
    @Deprecated
    void updateUserPromotionLevel(Long userId);
    
    /**
     * 获取用户当前推广等级配置
     */
    PromotionLevelConfig getUserCurrentLevelConfig(Long userId);
    
    /**
     * 获取用户下一等级配置
     */
    PromotionLevelConfig getUserNextLevelConfig(Long userId);
    
    /**
     * 获取用户距离下一等级还需要的付费粉丝数
     */
    int getFansToNextLevel(Long userId);
} 