using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCS.BLL.DbModels;
using WCS.BLL.Manager;
using WCS.DAL.Db;
using WCS.DAL.DbModels;
using WCS.Model;
using static WCS.BLL.HardWare.WarningLight;

namespace WCS.BLL.HardWare
{
    public class SingleLightShelf : IShelfBase
    {
        public SingleLightShelf(ShelfInfo shelfInfo) 
        {

        }

        public int ShelfId { get; set; }
        public string ShelfCode { get; set; }
        public int RowCounts { get; set; }
        public int ColumnCounts { get; set; }
        public Mode CurrentMode { get; set; }
        public string ModulesStr { get; set; }
        public string GroupName { get; set; }
        public MatInfoResponse InStoreData { get; set; }
        public string? CurrentCom { get; set; } = string.Empty;
        public string OrderNumber { get; set; }
        public int LightId { get; set; }
        public LightColorEnum LightColor { get; set; }
        public List<int> ModuleIds { get; set; }
        public string ClientIp { get; set; }
        public List<string> ExceptionMessages { get; set; }
        public bool IsWarning { get; set; }
        public string WebSocketIpAddress { get; set; }

        public List<SmartShelfModule> Modules { get; set; } = new List<SmartShelfModule>();
        public DateTime SetCurrentModeTime { get; set; }

        public TCPClient TcpCleint { get { return TCPClientManager.GetTCPClientByIPHost(ClientIp); } }

        public bool ConfirmStocktakingSingle(int BoardId, int LightNumber)
        {
            throw new NotImplementedException();
        }

        public void GoInInstore(string IPAdress)
        {
            //找到对应的灯 亮灯

        }

        public void GoInOutstore(List<OutOrderMatDetail> MatDetails, OutOrder outOrder, string OperateUser)
        {
           
        }

        public void GoInStocktaking()
        {
            
        }

        public void GoInStocktaking(List<StockTakingOrderMatDetail> MatDetails, StockTakingOrder outOrder)
        {
           
        }

        public void GoOutInstore()
        {
            //找到已亮灯的 灭灯
           
        }

        public void GoOutOutstore()
        {
            
        }

        public void GoOutStocktaking()
        {
            
        }

        public void Reset()
        {
            return;
        }

        public void SetCurrentMode(Mode mode)
        {
            
        }

        public void ShelfCheck()
        {
           
        }

        public void Warning()
        {
          
        }
    }
}
