using BBWYB.Server.Business;
using BBWYB.Server.Model.Db.MDS;
using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SDKAdapter.OperationPlatform.Models;

namespace BBWYB.Server.API.Controllers
{
    [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    public class VenderController : BaseApiController
    {
        private VenderBusiness venderBusiness;
        public VenderController(IHttpContextAccessor httpContextAccessor, VenderBusiness venderBusiness) : base(httpContextAccessor)
        {
            this.venderBusiness = venderBusiness;
        }

        /// <summary>
        /// 保存店铺信息
        /// </summary>
        /// <param name="shopSettingRequest"></param>
        /// <returns></returns>
        [HttpPost]
        public string SaveShopSetting([FromBody] ShopSettingRequest shopSettingRequest)
        {
            return venderBusiness.SaveShopSetting(shopSettingRequest);
        }

        /// <summary>
        /// 查询采购账号列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<Purchaseaccount> GetPurchaserList([FromBody] QueryPurchaseAccountRequest request)
        {
            return venderBusiness.GetPurchaserList(request);
        }

        /// <summary>
        /// 删除采购账号
        /// </summary>
        /// <param name="purchaseAccountId"></param>
        [HttpDelete("{purchaseAccountId}")]
        public void DeletePurchaseAccount([FromRoute] long purchaseAccountId)
        {
            venderBusiness.DeletePurchaseAccount(purchaseAccountId);
        }

        /// <summary>
        /// 查询店铺关联的物流公司列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public IList<OP_QueryExpressCompanyResponse> GetExpressCompanyList([FromBody] PlatformRequest request)
        {
            return venderBusiness.GetExpressCompanyList(request);
        }

        /// <summary>
        /// 获取快递100物流公司列表
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public IList<KuaiDi100ExpressCompany> GetKuaiDi100ExpressCompanyList([FromBody] KuaiDi100ExpressSearchRequest request)
        {
            return venderBusiness.GetKuaiDi100ExpressCompanyList(request);
        }
    }
}