using Microsoft.AspNetCore.Mvc;
using WmsMobileServe.ApiClient.Mes.Dto;
using WmsMobileServe.ApiServe.Mobile.Dto;
using WmsMobileServe.ApiServe.Mobile.Service;
using WmsMobileServe.ApiServe.Mobile.Vo;
using WmsMobileServe.DataBase.Base.Po;


namespace WmsMobileServe.ApiServe.Mobile.Controllers;

// 入库专用 API

[Route("api/mobile/stockIn")]
[ApiController]
public class StockInController(StockInService stockInService) : ControllerBase
{
    /// <summary>
    /// 接口测试
    /// </summary>
    /// <returns></returns>
    [HttpGet("test")]
    public string ApiTest() => "OK";

    /// <summary>
    /// 空箱入库接口
    /// </summary>
    /// <param name="request"></param>
    /// <returns></returns>
    [HttpPost("emptyVehicleIn")]
    public MobileApiResponse EmptyVehicleIn([FromBody] EmptyVehicleInReq request) => stockInService.EmptyVehicleIn(request);

    /// <summary>
    /// 传入箱号获取箱号详细信息
    /// </summary>
    /// <param name="request"></param>
    /// <returns></returns>
    [HttpGet("getGoodsDetail")]
    public MobileApiResponse<GetGoodsDetailResp> GetGoodsDetail([FromQuery] string? boxNo) => stockInService.GetGoodsDetail(boxNo);


    // ---------------------  冷冻仓
    /// <summary>
    /// 获取可用的物料
    /// </summary>
    /// <param name="request"></param>
    /// <returns></returns>
    [HttpPost("getCanUseGoods")]
    public MobileApiResponse<TRKWareNoticeTab> GetCanUseGoods([FromBody] GetCanUseGoodsRequest request) => stockInService.GetCanUseGoods(request);

    // -------------------   冷冻仓
    /// <summary>
    /// 码盘入库
    /// </summary>
    /// <returns></returns>
    [HttpPost("bindingVehicleIn")]
    public MobileApiResponse BindingVehicleIn([FromBody] BindingVehicleInRequest request) => stockInService.BindingVehicleIn(request);





    /// <summary>
    /// MES码盘入库
    /// </summary>
    /// <returns></returns>
    [HttpPost("bindingVehicleInMes")]
    public MobileApiResponse BindingVehicleInMes([FromBody] BindingVehicleInReq request) => stockInService.BindingVehicleInMes(request);

    /// <summary>
    /// 获取EBS码盘信息
    /// </summary>
    /// <returns></returns>
    [HttpGet("getCuxData")]
    public MobileApiResponse<List<CuxWmsPoLinesItf>> GetCuxData() => stockInService.GetCuxData();


    /// <summary>
    /// Ebs码盘入库
    /// </summary>
    /// <returns></returns>
    [HttpPost("bindingVehicleInEbsOld")]
    public MobileApiResponse BindingVehicleInEbsOld([FromBody] BindingVehicleInEbsOldReq request) => stockInService.BindingVehicleInEbsOld(request);

    /// <summary>
    /// Ebs码盘入库
    /// </summary>
    /// <returns></returns>
    [HttpPost("bindingVehicleInEbs")]
    public MobileApiResponse BindingVehicleInEbs([FromBody] BindingVehicleInEbsReq request) => stockInService.BindingVehicleInEbs(request);

}
