using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.LocationEnum;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.Enums;
using WIDESEA_DTO.Basic;
using WIDESEA_Model.Models;
namespace WIDESEA_IBasicRepository
{
    /// 
    /// 货位信息仓储接口层
    /// 
    public interface ILocationInfoRepository : IRepository
    {
        /// 
        /// 根据巷道获取所有一深、二深对应的一组货位数据集合
        /// 
        /// 巷道号
        /// 
        List GetAllLocationGroups(string roadway);
        /// 
        /// 根据巷道、一深位货位状态、二深位货位状态获取对应的一组货位数据集合
        /// 
        /// 巷道号
        /// 一深位货位状态
        /// 二深位货位状态
        /// 
        List GetLocationGroups(string roadway, LocationStatusEnum locationAStatus, LocationStatusEnum locationBStatus);
        /// 
        /// 根据货位编号集合获取货位实体集合
        /// 
        /// 货位编号集合
        /// 
        List GetLocationInfos(List locationCodes);
        /// 
        /// 批量更新货位状态
        /// 
        /// 货位实体集合
        /// 货位状态
        void UpdateLocationStatus(List locationInfos, LocationStatusEnum locationStatus);
        /// 
        /// 获取可出库货位编号
        /// 
        /// 
        /// 
        List GetCanOutLocationCodes(int warehouseId);
    }
}