using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SBF.Business;
using SBF.Model.Dto;

namespace SBF.API.Controllers
{
    /// <summary>
    /// 执行托管策略
    /// </summary>
    public class ExecuteTrusteeshipPolicyController  : BaseApiController
    {

        private ExecuteTrusteeshipPolicyBusiness executeTrusteeshipPolicyBusiness;

        public ExecuteTrusteeshipPolicyController(IHttpContextAccessor httpContextAccessor, ExecuteTrusteeshipPolicyBusiness executeTrusteeshipPolicyBusiness) : base(httpContextAccessor)
        {
            this.executeTrusteeshipPolicyBusiness = executeTrusteeshipPolicyBusiness;
        }

        /// <summary>
        /// 批量上传店铺预算数据(回调地址)
        /// </summary>
        /// <param name="requestList"></param>
        [HttpPost]
        [AllowAnonymous]
        public async Task BatchUpdateBudget(BatchUpdateBudgetRequest[]  requestList)
        {
         await   executeTrusteeshipPolicyBusiness.BatchUpdateBudget(requestList);
        }


        /// <summary>
        /// 批量上传店铺单元出价数据(回调地址)
        /// </summary>
        /// <param name="requestList"></param>
        [HttpPost]
        [AllowAnonymous]
        public async Task BatchUpdateBidPrice(BatchUpdateBidPriceRequest[] requestList)
        {
            await executeTrusteeshipPolicyBusiness.BatchUpdateBidPrice(requestList);
        }

        /// <summary>
        /// 更新策略数据(当日预算. 出价 ,当前时间花费情况) 9:00
        /// </summary>
        [HttpGet]
        [AllowAnonymous]
        public async Task UpdateTrusteeshipPolicyData()
        {
            await executeTrusteeshipPolicyBusiness.UpdateTrusteeshipPolicyData();
        }

        /// <summary>
        /// 判断 预算耗尽 更新出价 花费  预算
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [AllowAnonymous]
        public async Task JudgeBudgetCostOutUpdateTrusteeshipPolicyData()
        {
            await executeTrusteeshipPolicyBusiness.JudgeBudgetCostOutUpdateTrusteeshipPolicyData();
        }


        /// <summary>
        /// 运行成长期调高出价策略 
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [AllowAnonymous]
        public async Task RunGrowthPeriodIncreaseBidPriceTrusteeshipPolicy()
        {
            await executeTrusteeshipPolicyBusiness.RunGrowthPeriodIncreaseBidPriceTrusteeshipPolicy();
        }
        /// <summary>
        /// 运行成长期降低出价策略 
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [AllowAnonymous]
        public async Task RunGrowthPeriodLowerBidPriceTrusteeshipPolicy()
        {
            await executeTrusteeshipPolicyBusiness.RunGrowthPeriodLowerBidPriceTrusteeshipPolicy();
        }
    }
}