using HoneyBox.Model.Models.Equity;

namespace HoneyBox.Core.Interfaces;

/// <summary>
/// 权益服务接口
/// </summary>
public interface IEquityService
{
    /// <summary>
    /// 获取权益信息
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <returns>权益信息响应</returns>
    Task<EquityInfoResponse> GetEquityInfoAsync(int userId);

    /// <summary>
    /// 计算权益等级
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <param name="currentLevel">当前权益等级</param>
    /// <returns>计算后的权益等级</returns>
    Task<int> CalculateEquityLevelAsync(int userId, int currentLevel);

    /// <summary>
    /// 获取权益等级列表
    /// </summary>
    /// <returns>权益等级列表</returns>
    Task<List<EquityLevelDto>> GetEquityLevelsAsync();
}
