using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Domain
{
	public class Host
	{
		private DateTime registerDate = DateTime.Now;

        private string ip = "192.168.1.200";
        private string subnetMask = "255.255.255.0";
        private string gateway = "192.168.1.1";
        private string dns = "114.114.114.114";
        private int port = 3341;
        private bool powerSupply = true;
        private int authorizedHours = -1;
        private int lockStatus = 2;//1锁开，2锁关

		/// <summary>
		/// ID
		/// </summary>
		public virtual int ID
		{
			get;
			set;
		}
        /// <summary>
        /// Hotel
        /// </summary>
        public virtual SysHotel SysHotel
        {
            get;
            set;
        }
		/// <summary>
		/// 主机编号
		/// </summary>
		public virtual string HostNumber
		{
			get;
			set;
		}
		/// <summary>
		/// 房间号
		/// </summary>
		public virtual string RoomNumber
		{
			get;
			set;
		}
		/// <summary>
		/// IP
		/// </summary>
        public virtual string IP
        {
            get;
            set;
        }
        /// <summary>
        /// 局域网IP
        /// </summary>
        public virtual string LanIP
        {
            get { return this.ip; }
            set
            {
                this.ip = value;
            }
        }
		/// <summary>
		/// 子网掩码
		/// </summary>
		public virtual string SubnetMask
		{
			get { return this.subnetMask; }
			set 
			{
                //if (String.IsNullOrEmpty(value))
                //{
                //    throw new ArgumentNullException("SubnetMask");
                //}
				this.subnetMask = value;
			}
		}
		/// <summary>
		/// 网关
		/// </summary>
		public virtual string Gateway
		{
			get { return this.gateway; }
			set
			{
                //if (String.IsNullOrEmpty(value))
                //{
                //    throw new ArgumentNullException("Gateway");
                //}
				this.gateway = value;
			}
		}
        /// <summary>
        /// DNS
        /// </summary>
        public virtual string DNS
        {
            get { return this.dns; }
            set
            {
                this.dns = value;
            }
        }
		/// <summary>
		/// 端口
		/// </summary>
		public virtual int Port
		{
			get { return this.port; }
			set
			{
                //if (value < 0 || value > 65535)
                //{
                //    throw new ArgumentOutOfRangeException("Port");
                //}
				this.port = value;
			}
		}
        /// <summary>
        /// 局域网端口
        /// </summary>
        public virtual int LanPort
        {
            get { return this.port; }
            set
            {
                this.port = value;
            }
        }
		/// <summary>
		/// MAC
		/// </summary>
		public virtual string MAC
		{
			get;
			set;
		}

		/// <summary>
		/// 所属楼层
		/// </summary>
		public virtual Group Group
		{
			get;
			set;
		}

		/// <summary>
		/// 房型
		/// </summary>
		public virtual RoomType RoomType
		{
			get;
			set;
		}

		/// <summary>
		/// 状态 0：离线 1：在线
		/// </summary>
		public virtual bool Status
		{
			get;
			set;
		}
		/// <summary>
		/// 版本号
		/// </summary>
		public virtual string Version
		{
			get;
			set;
		}
		/// <summary>
		/// 配置数据版本号
		/// </summary>
		public virtual string ConfigVersion
		{
			get;
			set;
		}
		/// <summary>
		/// 备注
		/// </summary>
		public virtual string Remark
		{
			get;
			set;
		}
		/// <summary>
		/// 注册日期
		/// </summary>
		public virtual DateTime RegisterDate
		{
			get { return this.registerDate; }
			set { this.registerDate = value; }
		}
		/// <summary>
		/// 房态
		/// </summary>
		public virtual RoomStatus RoomStatus
		{
			get;
			set;
		}

		/// <summary>
		/// 身份
		/// </summary>
		public virtual RoomCard RoomCard
		{
			get;
			set;
		}


        /*
		/// <summary>
		/// 求救
		/// </summary>
        public virtual bool SOS
        {
            get;
            set;
        }
		
		/// <summary>
		/// 请求清理
		/// </summary>
		public virtual bool Clear
		{
			get;
			set;
		}

		/// <summary>
		/// 请勿打扰
		/// </summary>
		public virtual bool DND
		{
			get;
			set;
		}
		/// <summary>
		/// 请求服务
		/// </summary>
		public virtual bool RequestService
		{
			get;
			set;
		}

		/// <summary>
		/// 请求退房
		/// </summary>
		public virtual bool RequestCheckOut
		{
			get;
			set;
		}*/

		/// <summary>
        /// 门锁 True/开，False/关
		/// </summary>
		public virtual bool DoorLockStatus
		{
			get;
			set;
		}

		/// <summary>
		/// 房门状态更新时间
		/// </summary>
		public virtual DateTime? DoorLockStatusUpdateTime
		{
			get;
			set;
		}

		/// <summary>
		/// 保险箱:0关，1开，2未接保险箱
		/// </summary>
		public virtual int SafeStatus
		{
			get;
			set;
		}
        /*
		/// <summary>
		/// 当前温度
		/// </summary>
		public virtual int CurrentTemp
		{
			get;
			set;
		}

		/// <summary>
		/// 设定温度
		/// </summary>
		public virtual int SettingTemp
		{
			get;
			set;
		}

		/// <summary>
		/// 风速
		/// </summary>
		public virtual int Speed
		{
			get;
			set;
		}

		/// <summary>
		/// 辅助房态
		/// </summary>
		public virtual string RoomStatusAidIDs
		{
			get;
			set;
		}

		/// <summary>
		/// 是否连通房
		/// </summary>
		public virtual bool IsConnectingRoom
		{
			get;
			set;
		}

		/// <summary>
		/// 连通房ID，逗号隔开
		/// </summary>
		public virtual string ConnectingRooms
		{
			get;
			set;
        }*/

		/// <summary>
		/// 主机温度
		/// </summary>
		public virtual int HostTemp
		{
			get;
			set;
		}
        /// <summary>
        /// 客房电源
        /// </summary>
        public virtual bool PowerSupply
        {
            get { return this.powerSupply; }
            set { this.powerSupply = value; }
        }

        /// <summary>
        /// 授权剩余小时
        /// </summary>
        public virtual int AuthorizedHours
        {
            get { return this.authorizedHours; }
            set { this.authorizedHours = value; }
        }
        /// <summary>
        /// 微信锁状态：1开，2关
        /// </summary>
        public virtual int LockStatus
        {
            get { return this.lockStatus; }
            set { this.lockStatus = value; }
        }
        /// <summary>
        /// 锁电压
        /// </summary>
        public virtual float LockVoltage
        {
            get;
            set;
        }
        /// <summary>
        /// 阿里云对接产品key
        /// </summary>
        public virtual string ProductKey
        {
            get;
            set;
        }
        /// <summary>
        /// 阿里云对接设备名称
        /// </summary>
        public virtual string DeviceName
        {
            get;
            set;
        }
        /// <summary>
        /// 阿里云对接设备密钥
        /// </summary>
        public virtual string DeviceSecret
        {
            get;
            set;
        }
        /// <summary>
        /// 主机密钥
        /// </summary>
        public virtual string HostSecret
        {
            get;
            set;
        }
        /// <summary>
        /// 阿里云物联网平台为该设备颁发的设备ID，作为该设备的唯一标识符。
        /// </summary>
        public virtual string IotId
        {
            get;
            set;
        }
        /// <summary>
        /// 是否下发密钥给主机
        /// </summary>
        public virtual bool IsPublish
        {
            get;
            set;
        }
        /// <summary>
        /// 若琪对接的webhook url，通知播放欢迎词使用
        /// </summary>
        public virtual string RokidWebhookUrl
        {
            get;
            set;
        }
        /// <summary>
        /// 绑定小度音箱的序列号
        /// </summary>
        public virtual string XiaoDuCUID
        {
            get;
            set;
        }
        /// <summary>
        /// 绑定小米小爱音箱的序列号
        /// </summary>
        public virtual string XiaoMiCUID
        {
            get;
            set;
        }
        /// <summary>
        /// TCL电视序列号
        /// </summary>
        public virtual string TCLCUID
        {
            get;
            set;
        }
        /// <summary>
        /// TCL 技能ID
        /// </summary>
        public virtual string TCLSkillID
        {
            get;
            set;
        }
        /// <summary>
        /// 华为电视序列号
        /// </summary>
        public virtual string HuaWeiCUID
        {
            get;
            set;
        }
        /// <summary>
        /// 天猫精灵序列号
        /// </summary>
        public virtual string TianMaoCUID
        {
            get;
            set;
        }
        /// <summary>
        /// 是否同步房号（生产工具同步）
        /// </summary>
        public virtual bool IsSyncRoomNumber
        {
            get;
            set;
        }
        /// <summary>
        /// 是否自动升级
        /// </summary>
        public virtual bool IsAutoUpdate
        {
            get;
            set;
        }
        /// <summary>
        /// MAC绑定时间
        /// </summary>
        public virtual DateTime? MACBindDate
        {
            get;
            set;
        }
        /// <summary>
        /// IP类型：1自动，2手动
        /// </summary>
        public virtual int IPType
        {
            get;
            set;
        }
        /// <summary>
        /// rcu到期时间
        /// </summary>
        public virtual DateTime? ExpireTime
        {
            get;
            set;
        }
        /// <summary>
        /// rcu运行时间
        /// </summary>
        public virtual DateTime? RunTime
        {
            get;
            set;
        }
        /// <summary>
        /// 设置rcu到期时间
        /// </summary>
        public virtual DateTime? SetExpireTime
        {
            get;
            set;
        }
        /// <summary>
        /// 是否锁定
        /// </summary>
        public virtual bool IsLock
        {
            get;
            set;
        }
        /// <summary>
        /// 季节
        /// </summary>
        public virtual string Season
        {
            get;
            set;
        }
        /// <summary>
        /// 服务器IP
        /// </summary>
        public virtual string ServerIP
        {
            get;
            set;
        }
        /// <summary>
        /// 服务器端口
        /// </summary>
        public virtual int ServerPort
        {
            get;
            set;
        }
        /// <summary>
        /// 最新更新日期
        /// </summary>
        public virtual DateTime? Last_Modified_Time
        {
            get;
            set;
        }
        /// <summary>
        /// 微信验证
        /// </summary>
        public virtual string WXValidate
        {
            get;
            set;
        }
        /// <summary>
        /// 机型
        /// </summary>
        public virtual string Model
        {
            get;
            set;
        }
        /// <summary>
        /// Launcher
        /// </summary>
        public virtual string LauncherVersion
        {
            get;
            set;
        }
        /// <summary>
        /// 升级状态：0升级就绪，1升级完成，2升级出错
        /// </summary>
        public virtual int UpgradeStatus
        {
            get;
            set;
        }
        /// <summary>
        /// 升级时间
        /// </summary>
        public virtual DateTime? UpgradeTime
        {
            get;
            set;
        }
        /// <summary>
        /// 最近一次通讯帧号
        /// </summary>
        public virtual int FrameNo
        {
            get;
            set;
        }
        /// <summary>
        /// 最近一次更新通讯帧号的时间
        /// </summary>
        public virtual DateTime? FrameNoTime
        {
            get;
            set;
        }
        /// <summary>
        /// 是否已删除
        /// </summary>
        public virtual bool IsDeleted
        {
            get;
            set;
        }

        public virtual string DisableStartTime { get; set; }
        public virtual string DisableEndTime { get; set; }
        public virtual bool IsWelcomeDisableTime { get; set; }
        public virtual string FCS_locationUUID { get; set; }
        public virtual string HiWeiCUID { get; set; }
        /// <summary>
        /// 电子门铃
        /// 视频流地址
        /// </summary>
        public virtual string EBell_RSTP { get; set; }

        /// <summary>
        /// 电子门铃在屏幕上的显示时间
        /// </summary>
        public virtual int EBell_TV_duration { get; set; }
	}
}
