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

namespace BBWY.Server.API.Controllers
{
    public class PurchaseSchemeController : BaseApiController
    {
        private PurchaseSchemeBusiness purchaseSchemeBusiness;

        public PurchaseSchemeController(PurchaseSchemeBusiness purchaseSchemeBusiness, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
        {
            this.purchaseSchemeBusiness = purchaseSchemeBusiness;
        }

        /// <summary>
        /// 添加/编辑采购商
        /// </summary>
        /// <param name="batchCURDSchemeRequest"></param>
        [HttpPost]
        public void EditPurchaseScheme([FromBody] BatchCURDSchemeRequest batchCURDSchemeRequest)
        {
            purchaseSchemeBusiness.EditPurchaseScheme(batchCURDSchemeRequest);
        }

        /// <summary>
        /// 根据产品Id批量查询采购商列表
        /// </summary>
        /// <param name="querySchemeRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<PurchaseSchemeResponse> GetPurchaseSchemeList([FromBody] QuerySchemeRequest querySchemeRequest)
        {
            return purchaseSchemeBusiness.GetPurchaseSchemeList(querySchemeRequest);
        }

        /// <summary>
        /// 删除采购商
        /// </summary>
        /// <param name="deletePurchaseSchemeRequest"></param>
        [HttpDelete]
        public void DeletePurchaser([FromBody] DeletePurchaseSchemeRequest deletePurchaseSchemeRequest)
        {
            purchaseSchemeBusiness.DeletePurchaser(deletePurchaseSchemeRequest);
        }

        /// <summary>
        /// 删除采购方案
        /// </summary>
        /// <param name="schemeId"></param>
        [HttpDelete("{schemeId}")]
        public void DeletePurchaseScheme([FromRoute] long schemeId)
        {
            purchaseSchemeBusiness.DeletePurchaseScheme(schemeId);
        }

        /// <summary>
        /// 查询共有采购商
        /// </summary>
        /// <param name="querySchemeRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<Purchaser> GetSharePurchaser([FromBody] QuerySchemeRequest querySchemeRequest)
        {
            return purchaseSchemeBusiness.GetSharePurchaser(querySchemeRequest);
        }
    }
}