using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Models
{

    /// <summary>
    /// 房间配置信息
    /// </summary>
    [Table("TBL_ROOM_SET_CONFIG"), Comment("房间配置信息 房间配置状态由人工录入，表示房间配置设定目标")]

    public class TBL_ROOM_SET_CONFIG
    {


        /// <summary>
        /// ID  主键id
        /// </summary>
        [Key, Column(TypeName = "int"), Comment("ID,自增长"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int ID { get; set; }

        /// <summary>
        ///    房间ID
        /// </summary>
        [Column(TypeName = "int"), Comment("房间ID")]
        public int ROOM_ID { get; set; }


        /// <summary>
        ///    房间ID old
        /// </summary>
        [Column(TypeName = "int"), Comment("房间 old ID")]
        public int ROOM_OLD_ID { get; set; }

        /// <summary>
        ///    房间号
        /// </summary>
        [Column(TypeName = "nvarchar(50)"), Comment("写入到RCU的房间号")]
        public string RCU_ROOM { get; set; }

        /// <summary>
        ///    项目编号
        /// </summary>
        [Column(TypeName = "nvarchar(50)"), Comment("写入到RCU的项目编号")]
        public string PRODUCT_CODE { get; set; }


        /// <summary>
        ///    RCU_SEASON 季节   0 未知  1 春天  2 夏天  3 冬天
        /// </summary>
        [Column(TypeName = "int"), Comment("RCU_SEASON 季节  0 未知  1 春天  2 夏天  3 冬天 ")]
        public int RCU_SEASON { get; set; }


        /// <summary>
        /// 授权到期时间
        /// </summary>

        [Column(TypeName = "datetime"), Comment("授权到期时间")]

        public DateTime? AUTH_DATETIME { get; set; }


        /// <summary>
        ///    锁定状态 0 未知  1 未锁  2 锁  
        /// </summary>
        [Column(TypeName = "int"), Comment("锁定状态")]
        public int VALID_STATUS { get; set; }


        /// <summary>
        /// 房间备注
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("房间备注")]

        public string ROOM_DESCRIPTION { get; set; }


        /// <summary>
        /// 固件版本
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("固件版本")]

        public string FW_VER { get; set; }


        /// <summary>
        /// 配置文件版本
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("配置文件版本")]

        public string CONFIG_VER { get; set; }




        /// <summary>
        /// 固件自动下发方式
        /// </summary>

        [Column(TypeName = "int"), Comment("固件自动下发方式")]

        public int FW_AUTO_UPGRADE { get; set; }



        /// <summary>
        /// 配置文件自动下发方式
        /// </summary>

        [Column(TypeName = "int"), Comment("配置文件自动下发方式")]

        public int CFG_AUTO_UPDATE { get; set; }



        /// <summary>
        /// RCU 本地端口
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("RCU 本地端口")]

        public string RCU_LOCAL_PORT { get; set; }



        /// <summary>
        /// RCU RCU 内网IP地址
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("RCU RCU 内网IP地址")]

        public string RCU_LOCAL_IP { get; set; }

        /// <summary>
        /// RCU RCU 子网掩码
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("RCU RCU 子网掩码")]

        public string RCU_SUB_MASK { get; set; }


        /// <summary>
        /// RCU RCU 网关
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("RCU RCU 网关")]

        public string RCU_GETWAY { get; set; }



        /// <summary>
        /// RCU DNS服务器
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("RCU DNS服务器")]

        public string RCU_DNS_SERVER { get; set; }




        /// <summary>
        /// 云端服务器 IP
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment(" 云端服务器 IP")]

        public string RCU_CLOUD_SVR_IP { get; set; }


        /// <summary>
        /// 云端服务器网址  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment(" 云端服务器网址")]

        public string RCU_CLOUD_SVR_URL { get; set; }



        /// <summary>
        /// 云端端口确定方式  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment(" 云端端口确定方式")]

        public string RCU_CLOUD_SVR_PORT_MODE { get; set; }


        /// <summary>
        /// 云端端口  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment(" 云端端口")]

        public string RCU_CLOUD_SVR_PORT { get; set; }


        /// <summary>
        /// Socket3 功能  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment(" Socket3 功能")]

        public string RCU_SOCKET3_FUN { get; set; }


        /// <summary>
        /// 内网服务器 IP 
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("内网服务器 IP")]

        public string RCU_LOCAL_SVR_IP { get; set; }


        /// <summary>
        /// 内网服务器 IP 
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("内网服务器端口确定方式")]

        public string RCU_LOCAL_SVR_PORT_MODE { get; set; }


        /// <summary>
        /// 内网服务器端口  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("内网服务器端口")]

        public string RCU_LOCAL_SVR_PORT { get; set; }



        /// <summary>
        /// MQTT产品密钥  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("MQTT产品密钥")]

        public string RCU_MQTT_PRODUCT_SECRET { get; set; }



        /// <summary>
        /// MQTT设备名称  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("MQTT设备名称")]

        public string RCU_MQTT_DEV_NAME { get; set; }



        /// <summary>
        /// MQTT设备密钥  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("MQTT设备密钥")]

        public string RCU_MQTT_DEV_SECRET { get; set; }

        /// <summary>
        /// MQTT发布主题  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("MQTT发布主题")]

        public string RCU_MQTT_PUB_TOPIC { get; set; }

        /// <summary>
        /// MQTT订阅主题  
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("MQTT发布主题")]

        public string RCU_MQTT_SUB_TOPIC { get; set; }

        /// <summary>
        /// MQTT保活时间  
        /// </summary>

        [Column(TypeName = "int"), Comment("MQTT保活时间")]

        public int RCU_MQTT_KEEPALIVE { get; set; }

        /// <summary>
        /// 心跳包间隔时间  
        /// </summary>

        [Column(TypeName = "int"), Comment("心跳包间隔时间")]

        public int RCU_HEARTBEAT_TIMEOUT { get; set; }


        /// <summary>
        /// 心跳包重发次数  
        /// </summary>

        [Column(TypeName = "int"), Comment("心跳包重发次数")]

        public int RCU_HEARTBEAT_RETRY { get; set; }



        /// <summary>
        /// 重发失败判定断联次数  
        /// </summary>

        [Column(TypeName = "int"), Comment("重发失败判定断联次数")]

        public int RCU_HEARTBEAT_FAIL_THD { get; set; }


        /// <summary>
        /// 文件日志服务器 IP   
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("文件日志服务器 IP ")]

        public string RCU_TFTP_LOG_SVR_IP { get; set; }



        /// <summary>
        ///  文件日志配置字
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("文件日志配置字")]

        public string RCU_TFTP_LOG_CFG { get; set; }


        /// <summary>
        ///  文件日志服务器TFTP端口
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("文件日志服务器TFTP端口")]

        public string RCU_TFTP_LOG_SVR_PORT { get; set; }


        /// <summary>
        ///  通讯加密
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("通讯加密")]

        public string RCU_SECRET_MODE { get; set; }



        /// <summary>
        ///  配置修改标记位
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("配置修改标记位")]

        public string CFG_MODIFIED_FLAG { get; set; }


        /// <summary>
        ///  配置可用标记 （避免编辑到一半的数据被下发）
        /// </summary>

        [Column(TypeName = "nvarchar(100)"), Comment("配置可用标记 （避免编辑到一半的数据被下发）")]

        public string CFG_READY_FLAG { get; set; }


        /// <summary>
        /// 记录更新时间
        /// </summary>

        [Required, Column(TypeName = "datetime"), Comment("记录更新时间")]

        public DateTime UPDATE_TIMEMARK { get; set; }


        /// <summary>
        /// 备注
        /// </summary>

        [Column(TypeName = "nvarchar(520)"), Comment("备注")]

        public string REMARK { get; set; }

        /// <summary>
        /// IP类型
        /// </summary>
        [Column(TypeName = "int"), Comment("IP类型")]

        public int IPType { get; set; }
    }
}
