using Microsoft.AspNetCore.Mvc;
using SiNan.Business;
using SiNan.Model.Dto;

namespace SiNan.API.Controllers
{

    public class AggregationController : BaseApiController
    {
        private AggregationBusiness aggregationBusiness;

        public AggregationController(IHttpContextAccessor httpContextAccessor, AggregationBusiness aggregationBusiness) : base(httpContextAccessor)
        {
            this.aggregationBusiness = aggregationBusiness;
        }

        [HttpPost]
        public void StartSpuAggregationTask()
        {
            aggregationBusiness.StartSpuAggregationTask();
        }

        [HttpPost]
        public void StartSpuAggregationTaskByCondition([FromBody]SpuAggregationRequest request)
        {
            aggregationBusiness.StartSpuAggregationTaskByCondition(request);
        }

        [HttpPost]
        public void StartCampaignAggregationTask()
        {
            aggregationBusiness.StartCampaignAggregationTask();
        }

        [HttpPost]
        public void StartCampaginAggregationTaskByCondition([FromBody]CampaignAggregationRequest request)
        {
            aggregationBusiness.StartCampaginAggregationTaskByCondition(request);
        }

        [HttpPost]
        public void StartAdGroupAggregationTask()
        {
            aggregationBusiness.StartAdGroupAggregationTask();
        }

        [HttpPost]
        public void StartAdGroupAggregationTaskByCondition([FromBody]AdGroupAggregationRequest request)
        {
            aggregationBusiness.StartAdGroupAggregationTaskByCondition(request);
        }

        [HttpPost]
        public void StartAdSkuAggregationTask()
        {
            aggregationBusiness.StartAdSkuAggregationTask();
        }


        [HttpPost]
        public void StartAdSkuAggregationTaskByCondition([FromBody]AdSkuAggregationRequest request)
        {
            aggregationBusiness.StartAdSkuAggregationTaskByCondition(request);
        }
    }
}