using HoneyBox.Admin.Business.Models.DesignatedPrize;

namespace HoneyBox.Admin.Business.Services.Interfaces;

/// <summary>
/// 指定中奖配置服务接口
/// </summary>
public interface IDesignatedPrizeService
{
    /// <summary>
    /// 获取商品的指定中奖配置列表
    /// </summary>
    /// <param name="goodsId">商品ID</param>
    /// <returns>配置列表</returns>
    Task<List<DesignatedPrizeDto>> GetByGoodsIdAsync(int goodsId);

    /// <summary>
    /// 创建指定中奖配置
    /// </summary>
    /// <param name="goodsId">商品ID</param>
    /// <param name="request">创建请求</param>
    /// <returns>创建的配置</returns>
    Task<DesignatedPrizeDto> CreateAsync(int goodsId, CreateDesignatedPrizeRequest request);

    /// <summary>
    /// 更新指定中奖配置
    /// </summary>
    /// <param name="id">配置ID</param>
    /// <param name="request">更新请求</param>
    /// <returns>更新后的配置</returns>
    Task<DesignatedPrizeDto> UpdateAsync(int id, UpdateDesignatedPrizeRequest request);

    /// <summary>
    /// 删除指定中奖配置
    /// </summary>
    /// <param name="id">配置ID</param>
    /// <returns>是否成功</returns>
    Task<bool> DeleteAsync(int id);
}
