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

namespace FMSAdmin.Entities {
    public partial class BemsChartInfo {

        [Display(Name = "현장 고유번호"), Key]
        public int SiteId { get; set; }
        [Display(Name = "설비 타입 ID"), Key]
        public int FacilityTypeId { get; set; }
        [Display(Name = "차트 ID"), Key]
        public int ChartId { get; set; }
        [Display(Name = "좌 Y축 제목"), Required]
        [StringLength(64)]
        public string LAxTitle { get; set; }
        [Display(Name = "우 Y축 제목")]
        [StringLength(64)]
        public string RAxTitle { get; set; }
        [Display(Name = "X축 제목")]
        [StringLength(64)]
        public string XAxTitle { get; set; }
        [Display(Name = "X축 관제점")]
        public int? XSFmId { get; set; }
        [Display(Name = "X축 차트타입")]
        [StringLength(16)]
        public string XSType { get; set; }
        [Display(Name = "좌 Y축 항목1 관제점"), Required]
        public int LSFmId1 { get; set; }
        [Display(Name = "좌 Y축 항목1 표시명"), Required]
        [StringLength(64)]
        public string LSName1 { get; set; }
        [Display(Name = "좌 Y축 항목1 차트타입"), Required]
        [StringLength(16)]
        public string LSType1 { get; set; }
        [Display(Name = "좌 Y축 항목2 관제점")]
        public int? LSFmId2 { get; set; }
        [Display(Name = "좌 Y축 항목2 표시명")]
        [StringLength(64)]
        public string LSName2 { get; set; }
        [Display(Name = "좌 Y축 항목2 차트타입")]
        [StringLength(16)]
        public string LSType2 { get; set; }
        [Display(Name = "좌 Y축 항목3 관제점")]
        public int? LSFmId3 { get; set; }
        [Display(Name = "좌 Y축 항목3 표시명")]
        [StringLength(64)]
        public string LSName3 { get; set; }
        [Display(Name = "좌 Y축 항목3 차트타입")]
        [StringLength(16)]
        public string LSType3 { get; set; }
        [Display(Name = "좌 Y축 항목4 관제점")]
        public int? LSFmId4 { get; set; }
        [Display(Name = "좌 Y축 항목4 표시명")]
        [StringLength(64)]
        public string LSName4 { get; set; }
        [Display(Name = "좌 Y축 항목4 차트타입")]
        [StringLength(16)]
        public string LSType4 { get; set; }
        [Display(Name = "우 Y축 항목1 관제점")]
        public int? RSFmId1 { get; set; }
        [Display(Name = "우 Y축 항목1 표시명")]
        [StringLength(64)]
        public string RSName1 { get; set; }
        [Display(Name = "우 Y축 항목1 차트타입")]
        [StringLength(16)]
        public string RSType1 { get; set; }
        [Display(Name = "우 Y축 항목2 관제점")]
        public int? RSFmId2 { get; set; }
        [Display(Name = "우 Y축 항목2 표시명")]
        [StringLength(64)]
        public string RSName2 { get; set; }
        [Display(Name = "우 Y축 항목2 차트타입")]
        [StringLength(16)]
        public string RSType2 { get; set; }
        [Display(Name = "우 Y축 항목3 관제점")]
        public int? RSFmId3 { get; set; }
        [Display(Name = "우 Y축 항목3 표시명")]
        [StringLength(64)]
        public string RSName3 { get; set; }
        [Display(Name = "우 Y축 항목3 차트타입")]
        [StringLength(16)]
        public string RSType3 { get; set; }
        [Display(Name = "우 Y축 항목4 관제점")]
        public int? RSFmId4 { get; set; }
        [Display(Name = "우 Y축 항목4 표시명")]
        [StringLength(64)]
        public string RSName4 { get; set; }
        [Display(Name = "우 Y축 항목4 차트타입")]
        [StringLength(16)]
        public string RSType4 { get; set; }
        [Display(Name = "차트 제목"), Required]
        [StringLength(64)]
        public string Title { get; set; }
        [Display(Name = "X축 값 사용 여부")]
        public bool? UseX { get; set; }
        [Display(Name = "좌 Y축 최대최소값 사용 여부")]
        public bool? UseLAxMinMax { get; set; }
        [Display(Name = "우 Y축 최대최소값 사용 여부")]
        public bool? UseRAxMinMax { get; set; }
        [Display(Name = "X축 최대최소값 사용 여부")]
        public bool? UseXAxMinMax { get; set; }
        [Display(Name = "좌 Y축 최소값")]
        public double? LAxMin { get; set; }
        [Display(Name = "좌 Y축 최대값")]
        public double? LAxMax { get; set; }
        [Display(Name = "우 Y축 최소값")]
        public double? RAxMin { get; set; }
        [Display(Name = "우 Y축 최대값")]
        public double? RAxMax { get; set; }
        [Display(Name = "X축 최소값")]
        public double? XAxMin { get; set; }
        [Display(Name = "X축 최대값")]
        public double? XAxMax { get; set; }
        [Display(Name = "차트 색상"), Required]
        [StringLength(32)]
        public string Palette { get; set; }
        [Display(Name = "차트 사용 여부")]
        public bool? UseChart { get; set; }
        [Display(Name = "좌 Y축 기준선 사용 여부"), Required]
        public bool? UseLCTLine { get; set; }
        [Display(Name = "좌 Y축 기준선 제목")]
        [StringLength(64)]
        public string LCTLineTitle { get; set; }
        [Display(Name = "좌 Y축 기준선 값")]
        public double? LCTLineValue { get; set; }
        [Display(Name = "우 Y축 기준선 사용 여부"), Required]
        public bool? UseRCTLine { get; set; }
        [Display(Name = "우 Y축 기준선 제목")]
        [StringLength(64)]
        public string RCTLineTitle { get; set; }
        [Display(Name = "우 Y축 기준선 값")]
        public double? RCTLineValue { get; set; }

        [ForeignKey(nameof(FacilityTypeId))]
        [InverseProperty(nameof(BemsFacilityType.BemsChartInfo))]
        public virtual BemsFacilityType FacilityType { get; set; }
        [ForeignKey(nameof(SiteId))]
        [InverseProperty(nameof(CmSite.BemsChartInfo))]
        public virtual CmSite Site { get; set; }
    }
}
