using HoneyBox.Model.Models.Asset;

namespace HoneyBox.Core.Interfaces;

/// <summary>
/// 资产服务接口
/// </summary>
public interface IAssetService
{
    /// <summary>
    /// 获取余额明细记录
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <param name="type">类型过滤 (0=全部)</param>
    /// <param name="page">页码</param>
    /// <param name="limit">每页数量</param>
    /// <returns>分页资产记录</returns>
    Task<AssetRecordPageResponse> GetMoneyRecordsAsync(int userId, int type, int page, int limit = 15);

    /// <summary>
    /// 获取吧唧币明细记录
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <param name="type">类型过滤 (0=全部)</param>
    /// <param name="page">页码</param>
    /// <param name="limit">每页数量</param>
    /// <returns>分页资产记录</returns>
    Task<AssetRecordPageResponse> GetIntegralRecordsAsync(int userId, int type, int page, int limit = 15);

    /// <summary>
    /// 获取积分明细记录
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <param name="type">类型过滤 (0=全部)</param>
    /// <param name="page">页码</param>
    /// <param name="limit">每页数量</param>
    /// <returns>分页资产记录</returns>
    Task<AssetRecordPageResponse> GetScoreRecordsAsync(int userId, int type, int page, int limit = 15);

    /// <summary>
    /// 获取支付记录
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <param name="page">页码</param>
    /// <param name="limit">每页数量</param>
    /// <returns>分页资产记录</returns>
    Task<AssetRecordPageResponse> GetPayRecordsAsync(int userId, int page, int limit = 15);
}
