using BPA.MES.Base.Application.Services.OrderService.Dtos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPA.MES.Base.Application.Services.OrderService.Service
{
    public interface IOrderService
    {
        /// <summary>
        /// 分页列表
        /// </summary>
        /// <returns></returns>
        Task<SqlSugarPagedList<OrderBaseDto>> PagedList(OrderQueryPageInput input);

        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> Add(List<OrderInfoBaseDto> inputDto);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
     
        Task<bool> Update(List<OrderInfoBaseDto> inputDto);

        /// <summary>
        /// 获取订单的商品
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<List<OrderInfoBaseDto>> GetOrderMaterial(string OrderId);


        /// <summary>
        /// 添加工单 并绑定订单
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        Task<bool> OrderAssociationWork(List<OrderInfoBaseDto> inputDto);

        /// <summary>
        /// 获取成品剩余制作数量
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<List<OrderWorkLimit>> GetFinalslLImit(string OrderId);

        Task<bool> CodeFirst();
    }
}
