using System.Collections.Generic;
using System.Threading.Tasks;
using ASHermed.SinoInterface.Api.ContractModel.BlindBox.Dto;
using ASHermed.SinoInterface.ContractModel;

namespace ASHermed.SinoInterface.Api.IService.BlindBox
{
    /// <summary>
    /// 盲盒活动服务
    /// </summary>
    public interface IBlindBoxService
    {
        #region 医生端

        /// <summary>
        /// 盲盒活动登录
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<BaseResponse<BlindBoxLoginOutput>> LoginAsync(BlindBoxLoginInput input);

        /// <summary>
        /// 获取诊所的总领取人数和总领取次数
        /// </summary>
        /// <param name="hosId"></param>
        /// <returns></returns> 
        Task<BaseResponse<BlindBoxUvPvDto>> QueryUvPvAsync(int hosId);

        /// <summary>
        /// 列表查询
        /// </summary>
        /// <param name="hosId"></param>
        /// <param name="searchText"></param>
        /// <param name="language">语言</param>
        /// <returns></returns> 
        Task<BaseResponse<List<BlindBoxDto>>> QueryAsync(int hosId, string searchText, int language);

        #endregion

        #region 患者端

        /// <summary>
        /// 查询用户已领取次数
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="language"></param>
        /// <returns></returns> 
        Task<BaseResponse<GetItNowOutput>> GetItCountAsync(int userId, int language);

        /// <summary>
        /// 立即领取
        /// </summary>
        /// <param name="input"></param>
        /// <param name="language"></param>
        /// <returns></returns>
        Task<BaseResponse<GetItNowOutput>> GetItNowAsync(GetItNowInput input, int language);

        #endregion
    }
}