using HoneyBox.Admin.Business.Models;
using HoneyBox.Admin.Business.Models.Finance;

namespace HoneyBox.Admin.Business.Services.Interfaces;

/// <summary>
/// 财务服务接口
/// </summary>
public interface IFinanceService
{
    /// <summary>
    /// 获取消费排行榜
    /// </summary>
    /// <param name="request">查询请求</param>
    /// <returns>消费排行榜</returns>
    Task<PagedResult<ConsumptionRankingResponse>> GetConsumptionRankingAsync(FinanceQueryRequest request);

    /// <summary>
    /// 获取余额明细
    /// </summary>
    /// <param name="request">查询请求</param>
    /// <returns>余额明细列表</returns>
    Task<PagedResult<BalanceDetailResponse>> GetBalanceDetailsAsync(FinanceQueryRequest request);

    /// <summary>
    /// 获取积分明细
    /// </summary>
    /// <param name="request">查询请求</param>
    /// <returns>积分明细列表</returns>
    Task<PagedResult<IntegralDetailResponse>> GetIntegralDetailsAsync(FinanceQueryRequest request);

    /// <summary>
    /// 获取钻石明细
    /// </summary>
    /// <param name="request">查询请求</param>
    /// <returns>钻石明细列表</returns>
    Task<PagedResult<ScoreDetailResponse>> GetScoreDetailsAsync(FinanceQueryRequest request);

    /// <summary>
    /// 获取充值记录
    /// </summary>
    /// <param name="request">查询请求</param>
    /// <returns>充值记录列表</returns>
    Task<PagedResult<RechargeRecordResponse>> GetRechargeRecordsAsync(FinanceQueryRequest request);
}
