using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace FMSAdmin.Entities {
    public partial class CmZone {
        public CmZone() {
            BemsMonitoringPoint = new HashSet<BemsMonitoringPoint>();
            FmsMaterialWarehouse = new HashSet<FmsMaterialWarehouse>();
        }

        [Display(Name = "고유번호"), Key]
        public int SiteId { get; set; }
        public int BuildingId { get; set; }
        public int FloorId { get; set; }
        public int ZoneId { get; set; }
        [Display(Name = "구역명칭"), Required]
        [StringLength(50, ErrorMessage = "구역명칭은 최대 50자까지 입력 가능합니다.")]
        public string Name { get; set; }
        [NotMapped]
        [Display(Name = "엑셀행번호")]
        public int ExcelRowNum { get; set; }
        [Column("Target_temperature")]
        public double? TargetTemperature { get; set; }
        [Column("Target_humidity")]
        public short? TargetHumidity { get; set; }

        [ForeignKey("SiteId")]
        public virtual CmSite CmSite { get; set; }
        [ForeignKey("SiteId,BuildingId")]
        public virtual CmBuilding CmBuilding { get; set; }
        [ForeignKey("SiteId,BuildingId,FloorId")]
        public virtual CmFloor CmFloor { get; set; }

        [InverseProperty("CmZone")]
        public virtual CmZoneTempHumiSet CmZoneTempHumiSet { get; set; }
        [InverseProperty("CmZone")]
        public virtual ICollection<BemsMonitoringPoint> BemsMonitoringPoint { get; set; }
        [InverseProperty("CmZone")]
        public virtual ICollection<FmsMaterialWarehouse> FmsMaterialWarehouse { get; set; }
    }
}
