using HoneyBox.Model.Models.Mall;

namespace HoneyBox.Core.Interfaces;

/// <summary>
/// 商城服务接口
/// 处理钻石商品列表、钻石订单创建和查询等功能
/// Requirements: 15.1-15.3
/// </summary>
public interface IMallService
{
    /// <summary>
    /// 获取钻石商品列表
    /// </summary>
    /// <param name="userId">用户ID（可选，用于判断首充状态）</param>
    /// <returns>钻石商品列表</returns>
    Task<List<DiamondProductDto>> GetDiamondListAsync(int? userId);

    /// <summary>
    /// 创建钻石订单
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <param name="request">创建订单请求</param>
    /// <returns>创建订单结果</returns>
    Task<CreateDiamondOrderResult> CreateOrderProductsAsync(int userId, CreateDiamondOrderRequest request);

    /// <summary>
    /// 获取钻石订单状态
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <param name="orderNum">订单号</param>
    /// <returns>订单状态响应</returns>
    Task<DiamondOrderStatusResponse?> GetDiamondOrderLogAsync(int userId, string orderNum);
}
