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

namespace SiNan.API.Controllers
{
    public class GOIController : BaseApiController
    {
        private GOIBusiness goiBusiness;
        public GOIController(IHttpContextAccessor httpContextAccessor, GOIBusiness goiBusiness) : base(httpContextAccessor)
        {
            this.goiBusiness = goiBusiness;
        }

        /// <summary>
        /// 产品维度分析-查询SPU综合GOI
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public ListResponse<ProductGOIResponse> QueryProductGOI([FromBody] QueryProductGOIRequest request)
        {
            return goiBusiness.QueryProductGOI(request);
        }

        /// <summary>
        /// 产品维度分析-查询SKU综合GOI
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public ListResponse<ProductSkuGOIResponse> QueryProductSkuGOI([FromBody] QueryProductSkuGOIRequest request)
        {
            return goiBusiness.QueryProductSkuGOI(request);
        }

        /// <summary>
        /// 产品维度分析-SPU花费曲线接口
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public List<PopularizeCostCurveStatisticsResponse> PopularizeCostCurveStatisticsBySpu([FromBody] PopularizeCostCurveStatisticsBySpuRequest request)
        {
            return goiBusiness.PopularizeCostCurveStatisticsBySpu(request);
        }

        /// <summary>
        /// 产品维度分析-SKU花费曲线接口
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public List<PopularizeCostCurveStatisticsResponse> PopularizeCostCurveStatisticsBySku([FromBody] PopularizeCostCurveStatisticsBySkuRequest request)
        {
            return goiBusiness.PopularizeCostCurveStatisticsBySku(request);
        }

        /// <summary>
        /// 产品360推广分析
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public ListResponse<Product360PopularizeAnalysisCampaginRepsonse> QueryProduct360PopularizeGOI(Product360PopularizeAnalysisRequest request)
        {
            return goiBusiness.QueryProduct360PopularizeGOI(request);
        }

        /// <summary>
        /// 产品360分析-星象柱状图统计接口
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public List<JDXXHistogramResponse> QueryProduct360HistogramStatistics([FromBody] JDXXHistogramRequest request)
        {
            return goiBusiness.QueryProduct360HistogramStatistics(request);
        }

        /// <summary>
        /// 产品360分析-头部统计
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public Product360TopStatisticsResponse QueryProduct360TopStatistics([FromBody] Product360TopStatisticsRequest request)
        {
            return goiBusiness.QueryProduct360TopStatistics(request);
        }


        /// <summary>
        /// 根据spu查询推广维度GOI
        /// </summary>
        /// <param name="request"></param>
        /// <returns>SPU GOI</returns>
        [HttpPost]
        public ListResponse<GOIBySpu> QueryPopularizeLevelGOIBySpuId([FromBody] QueryPopularizeLevelGOIBySpuIdRequest request)
        {
            return goiBusiness.QueryPopularizeLevelGOIBySpuId(request);
        }

        /// <summary>
        /// 根据shopId查询推广维度GOI
        /// </summary>
        /// <param name="request"></param>
        /// <returns>店铺GOI</returns>
        [HttpPost]
        public GOIByShop QueryPopularizeLevelGOIByShopId([FromBody] QueryPopularizeLevelGOIByShopIdRequest request)
        {
            return goiBusiness.QueryPopularizeLevelGOIByShopId(request);
        }
    }
}