using BBWYB.Server.Business;
using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Mvc;

namespace BBWYB.Server.API.Controllers
{
    public class PurchaserController : BaseApiController
    {
        private PurchaserBusiness purchaserBusiness;

        public PurchaserController(IHttpContextAccessor httpContextAccessor, PurchaserBusiness purchaserBusiness) : base(httpContextAccessor)
        {
            this.purchaserBusiness = purchaserBusiness;
        }

        /// <summary>
        /// 根据关键词搜索采购商名称列表
        /// </summary>
        /// <param name="keywords"></param>
        /// <returns></returns>
        [HttpGet("{keywords}")]
        public ListResponse<string> QueryPurchaserNameList([FromRoute] string keywords)
        {
            return purchaserBusiness.QueryPurchaserNameList(keywords);
        }

        /// <summary>
        /// 根据关键词搜索采购商产地列表
        /// </summary>
        /// <param name="keywords"></param>
        /// <returns></returns>
        [HttpGet("{keywords}")]
        public ListResponse<string> QueryPurchaserLocationList([FromRoute] string keywords)
        {
            return purchaserBusiness.QueryPurchaserLocationList(keywords);
        }

        /// <summary>
        /// 查询采购商列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public ListResponse<PurchaserResponse> QueryPurchaserList([FromBody] QueryPurchaserRequest request)
        {
            return purchaserBusiness.QueryPurchaserList(request);
        }

        /// <summary>
        /// 查询供应商主营类目或标签列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public ListResponse<PurchaserExtendedInfoResponse> QueryPurchaserCategoryList([FromBody] QueryPurchaserExtendedRequest request)
        {
            return purchaserBusiness.QueryPurchaserCategoryList(request);
        }

        /// <summary>
        /// 修改供应商扩展信息
        /// </summary>
        /// <param name="request"></param>
        [HttpPost]
        public void EditPurchaserExtendedInfo([FromBody] EditPurchaserExtendedInfoRequest request)
        {
            purchaserBusiness.EditPurchaserExtendedInfo(request);
        }
    }
}