HaniBlindBox/server/HoneyBox/src/HoneyBox.Admin.Business/Services/Interfaces/IPrizeLevelService.cs
2026-01-30 03:01:16 +08:00

53 lines
1.5 KiB
C#

using HoneyBox.Admin.Business.Models;
using HoneyBox.Admin.Business.Models.Goods;
namespace HoneyBox.Admin.Business.Services.Interfaces;
/// <summary>
/// 奖品等级服务接口
/// </summary>
public interface IPrizeLevelService
{
/// <summary>
/// 获取奖品等级列表
/// </summary>
Task<PagedResult<PrizeLevelResponse>> GetPrizeLevelsAsync(PrizeLevelListRequest request);
/// <summary>
/// 获取奖品等级详情
/// </summary>
Task<PrizeLevelResponse?> GetPrizeLevelAsync(int id);
/// <summary>
/// 创建奖品等级
/// </summary>
Task<int> CreatePrizeLevelAsync(PrizeLevelCreateRequest request);
/// <summary>
/// 更新奖品等级
/// </summary>
Task<bool> UpdatePrizeLevelAsync(int id, PrizeLevelUpdateRequest request);
/// <summary>
/// 删除奖品等级
/// </summary>
Task<bool> DeletePrizeLevelAsync(int id);
/// <summary>
/// 获取所有奖品等级选项(用于下拉选择)
/// </summary>
Task<List<PrizeLevelOptionResponse>> GetPrizeLevelOptionsAsync();
/// <summary>
/// 根据盒子类型获取奖品等级选项
/// </summary>
/// <param name="goodsType">盒子类型</param>
/// <param name="isChildPrize">是否为子奖品(宝箱内奖品)</param>
Task<List<PrizeLevelOptionResponse>> GetPrizeLevelOptionsByTypeAsync(int goodsType, bool isChildPrize = false);
/// <summary>
/// 获取概率总和
/// </summary>
Task<decimal> GetTotalProbabilityAsync();
}