using BBWY.Server.Business.Statistics;
using BBWY.Server.Model.Dto;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;

namespace BBWY.Server.API.Controllers
{

    public class JDReportFormStatisticsController : BaseApiController
    {
        private JDReportFormStatisticsBusiness jDReportFormStatisticsBusiness;

        public JDReportFormStatisticsController(IHttpContextAccessor httpContextAccessor, JDReportFormStatisticsBusiness jDReportFormStatisticsBusiness) : base(httpContextAccessor)
        {
            this.jDReportFormStatisticsBusiness = jDReportFormStatisticsBusiness;
        }

        /// <summary>
        /// 计划维度GOI,支持快车和京速推
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDMultiLevelGOIResponse> CalculationCampaignLevelGOI([FromBody] GOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationCampaignLevelGOI(gOIRequest);
        }

        /// <summary>
        /// 计划维度商品GOI
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDProductAndPopularizeLevelGOIResponse> CalculationCampaignLevelProductGOI([FromBody] GOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationCampaignLevelProductGOI(gOIRequest);
        }

        /// <summary>
        /// 计划维度推广GOI
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDProductAndPopularizeLevelGOIResponse> CalculationCampaignLevelPopularizeGOI([FromBody] GOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationCampaignLevelPopularizeGOI(gOIRequest);
        }

        /// <summary>
        /// 单元维度GOI,仅支持快车
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDMultiLevelGOIResponse> CalculationAdGroupLevelGOI([FromBody] GOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationAdGroupLevelGOI(gOIRequest);
        }

        /// <summary>
        /// 单元维度商品GOI
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdGroupLevelProductGOI([FromBody] GOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationAdGroupLevelProductGOI(gOIRequest);
        }

        /// <summary>
        /// 单元维度推广GOI
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdGroupLevelPopularizeGOI([FromBody] GOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationAdGroupLevelPopularizeGOI(gOIRequest);
        }

        /// <summary>
        /// 创意维度GOI,仅支持快车
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDMultiLevelGOIResponse> CalculationAdLevelGOI([FromBody] GOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationAdLevelGOI(gOIRequest);
        }

        /// <summary>
        /// 创意维度商品GOI
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdLevelProductGOI([FromBody] GOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationAdLevelProductGOI(gOIRequest);
        }

        /// <summary>
        /// 创意维度推广GOI
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDProductAndPopularizeLevelGOIResponse> CalculationAdLevelPopularizeGOI([FromBody] GOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationAdLevelPopularizeGOI(gOIRequest);
        }

        /// <summary>
        /// SKU维度GOI,仅支持京速推
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDSkuLevelGOIResponse> CalculationSkuLevelGOI([FromBody] SkuGOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationSkuLevelGOI(gOIRequest);
        }

        /// <summary>
        /// SKU维度商品GOI
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDSkuLevelProductAndPopularizeGOIResponse> CalculationSkuLevelProductGOI([FromBody] SkuGOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationSkuLevelProductGOI(gOIRequest);
        }

        /// <summary>
        /// SKU维度推广GOI
        /// </summary>
        /// <param name="gOIRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<JDSkuLevelProductAndPopularizeGOIResponse> CalculationSkuLevelPopularizeGOI([FromBody] SkuGOIRequest gOIRequest)
        {
            return jDReportFormStatisticsBusiness.CalculationSkuLevelPopularizeGOI(gOIRequest);
        }
    }
}