using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

namespace BBWYB.Server.API.Controllers
{
    [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    public class TimeLimitTaskController : BaseApiController
    {
        private TimeLimitTaskBusiness timeLimitTaskBusiness;
        public TimeLimitTaskController(IHttpContextAccessor httpContextAccessor, TimeLimitTaskBusiness timeLimitTaskBusiness) : base(httpContextAccessor)
        {
            this.timeLimitTaskBusiness = timeLimitTaskBusiness;
        }

        /// <summary>
        /// 检查任务过期(自动任务,前端无需对接)
        /// </summary>
        [HttpPost]
        [AllowAnonymous]
        public void CheckTask()
        {
            timeLimitTaskBusiness.CheckTask();
        }

        /// <summary>
        /// 查询限时任务列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public TimeLimitTaskListResponse QueryTimeLimitTask([FromBody] QueryTimeLimitTaskRequest request)
        {
            return timeLimitTaskBusiness.QueryTimeLimitTask(request);
        }

        /// <summary>
        /// 限时任务统计
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<TimeLimitTaskStatisticsResponse> TimeOutStatistics(QueryTimeOutRequest request)
        {
            return timeLimitTaskBusiness.TimeOutStatistics(request);
        }
    }
}