using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

namespace BBWYB.Server.API.Controllers
{
    [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    public class PurchaseOrderController : BaseApiController
    {
        private PurchaseOrderBusiness purchaseOrderBusiness;

        public PurchaseOrderController(IHttpContextAccessor httpContextAccessor, PurchaseOrderBusiness purchaseOrderBusiness) : base(httpContextAccessor)
        {
            this.purchaseOrderBusiness = purchaseOrderBusiness;
        }

        /// <summary>
        /// 预览订单
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public PreviewOrderResponse PreviewPurchaseOrder([FromBody] PreviewOrderRequest request)
        {
            return purchaseOrderBusiness.PreviewPurchaseOrder(request);
        }

        /// <summary>
        /// 创建采购单
        /// </summary>
        /// <param name="request"></param>
        [HttpPost]
        public void CreatePurchaseOrder([FromBody] CreateOrderRequest request)
        {
            purchaseOrderBusiness.CreatePurchaseOrder(request);
        }

        /// <summary>
        /// 1688回调
        /// </summary>
        /// <param name="message"></param>
        /// <param name="_aop_signature"></param>
        [HttpPost]
        [AllowAnonymous]
        public void CallbackFrom1688([FromForm] string message, [FromForm] string _aop_signature)
        {
            purchaseOrderBusiness.CallbackFrom1688(message);
        }
    }
}