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

namespace BBWY.Server.API.Controllers
{
    public class PurchaseOrderController : BaseApiController
    {
        private PurchaseOrderBusiness purchaseOrderBusiness;

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

        [HttpPost]
        public void AddPurchaseOrder([FromBody] AddPurchaseOrderRequest addPurchaseOrderRequest)
        {
            purchaseOrderBusiness.AddPurchaseOrder(addPurchaseOrderRequest);
        }

        [HttpPut]
        public void EditPurchaseOrder([FromBody] EditPurchaseOrderRequest editPurchaseOrderRequest)
        {
            purchaseOrderBusiness.EditPurchaseOrder(editPurchaseOrderRequest);
        }

        [HttpPost]
        public IList<PurchaseOrderResponse> GetList([FromBody] QueryPurchaseOrderRequest queryPurchaseOrderRequest)
        {
            return purchaseOrderBusiness.GetList(queryPurchaseOrderRequest);
        }

        [HttpDelete("{id}")]
        public void DeletePurchaseOrder([FromRoute] long id)
        {
            purchaseOrderBusiness.DeletePurchaseOrder(id);
        }

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