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

namespace BBWY.Server.API.Controllers
{

    public class EvaluationAssistantController : BaseApiController
    {
        private EvaluationAssistantBusiness evaluationAssistantBusiness;

        public EvaluationAssistantController(IHttpContextAccessor httpContextAccessor, EvaluationAssistantBusiness evaluationAssistantBusiness) : base(httpContextAccessor)
        {
            this.evaluationAssistantBusiness = evaluationAssistantBusiness;
        }

        /// <summary>
        /// 新增/编辑赠品模板
        /// </summary>
        /// <param name="request"></param>
        [HttpPost]
        public void AddOrEditGiftTemplate([FromBody] AddOrEditGiftTemplateRequest request)
        {
            evaluationAssistantBusiness.AddOrEditGiftTemplate(request);
        }

        /// <summary>
        /// 获取赠品模板列表
        /// </summary>
        /// <param name="shopId"></param>
        /// <returns></returns>
        [HttpGet("{shopId}")]
        public IList<GiftTemplateResponse> GetGiftTemplateList([FromRoute] long shopId)
        {
            return evaluationAssistantBusiness.GetGiftTemplateList(shopId);
        }

        /// <summary>
        /// 删除赠品模板
        /// </summary>
        /// <param name="giftTemplateId"></param>
        [HttpDelete("{giftTemplateId}")]
        public void DeleteGiftTemplate([FromRoute] long giftTemplateId)
        {
            evaluationAssistantBusiness.DeleteGiftTemplate(giftTemplateId);
        }

        /// <summary>
        /// 新增或修改活动任务
        /// </summary>
        /// <param name="request"></param>
        [HttpPost]
        public void AddOrEditPromotionTask([FromBody] AddOrEditPromotionTaskRequest request)
        {
            evaluationAssistantBusiness.AddOrEditPromotionTask(request);
        }

        /// <summary>
        /// 获取活动列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public PromotionTaskResponse GetPromotionTaskList([FromBody] QueryPromotionTaskRequest request)
        {
            return evaluationAssistantBusiness.GetPromotionTaskList(request);
        }

        /// <summary>
        /// 修改活动排序
        /// </summary>
        /// <param name="request"></param>
        [HttpPost]
        public void EditPromotionTaskSort([FromBody] EditPromotionTaskSortRequest request)
        {
            evaluationAssistantBusiness.EditPromotionTaskSort(request);
        }

        /// <summary>
        /// 开始活动
        /// </summary>
        /// <param name="request"></param>
        [HttpPost]
        public void StartPromotionTask([FromBody] StartPromotionTaskRequest request)
        {
            evaluationAssistantBusiness.StartPromotionTask(request);
        }

        /// <summary>
        /// 删除任务同时删除京东活动
        /// </summary>
        /// <param name="request"></param>
        [HttpDelete]
        public void DeletePromotionTaskAndJDTask([FromBody] DeletePromotionTaskRequest request)
        {
            evaluationAssistantBusiness.DeletePromotionTaskAndJDTask(request);
        }

        /// <summary>
        /// 删除任务同时删除京东活动中的奶妈SKU
        /// </summary>
        /// <param name="request"></param>
        [HttpDelete]
        public void DeletePromotionTaskAndMotherSku([FromBody] DeletePromotionTaskRequest request)
        {
            evaluationAssistantBusiness.DeletePromotionTaskAndMotherSku(request);
        }

        /// <summary>
        /// 停止任务
        /// </summary>
        /// <param name="request"></param>
        [HttpPost]
        public void StopPromotionTask([FromBody] StopPromotionTaskRequest request)
        {
            evaluationAssistantBusiness.StopPromotionTask(request);
        }
    }
}