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

namespace FMSAdmin.Entities {
    public partial class FmsMonthlyReport {
        [Key]
        public int SiteId { get; set; }
        public int? MonthlyReportId { get; set; }
        [Required]
        [StringLength(128)]
        public string Name { get; set; }
        [StringLength(1024)]
        public string Contents { get; set; }
        [Required]
        [StringLength(24)]
        public string RegisterUserId { get; set; }
        [Key]
        [Column(TypeName = "date")]
        public DateTime AddDate { get; set; }
        [Key]
        public int BusinessFieldId { get; set; }
        [Display(Name = "기본사항(사이트)")]
        public string SiteInfoDatas { get; set; }
        [Display(Name = "설비기준")]
        public string FacilityStandards { get; set; }
        [Display(Name = "임대기준")]
        public string RentalStandards { get; set; }
        [Display(Name = "조직도현황PDF")]
        public int? OrganizationChartStatusFileId { get; set; }
        [Display(Name = "인원투입현황")]
        public string HumanCountStatus { get; set; }
        [Display(Name = "관리사무실 연락처")]
        public string ManagementOfficeContact { get; set; }
        [Display(Name = "유관기관 연락처")]
        public string RelatedInstitutionsContact { get; set; }
        [Display(Name = "인원변동현황")]
        public string UserChangeStatus { get; set; }
        [Display(Name = "입주사현황")]
        public int? RentalStatusFileId { get; set; }
        [Display(Name = "층별사용현황")]
        public int? LayoutStatusFileId { get; set; }
        [Display(Name = "주요입주사연락처")]
        public string TenantContact { get; set; }
        [Display(Name = "주차관리")]
        public int? ParkingManagementFileId { get; set; }
        [Display(Name = "대관관리")]
        public int? RentalManagementFileId { get; set; }
        [Display(Name = "중점업무")]
        public int? MonthlyPriorityWorkFileId { get; set; }
        [Display(Name = "개선보고서")]
        public int? ImprovementReportFileId { get; set; }
        [Display(Name = "익월중점업무")]
        public int? NextMonthPriorityWorkFileId { get; set; }
        [Display(Name = "비용")]
        public int? CostFileId { get; set; }
        [Display(Name = "주변현황")]
        public int? SurroundingStatusFileId { get; set; }

        public string Datas { get; set; }
        [StringLength(24)]
        public string ApproverUserId { get; set; }
        [Column(TypeName = "date")]
        public DateTime? ApproveDate { get; set; }
        [Column(TypeName = "date")]
        public DateTime? RegisterDate { get; set; }
        [StringLength(24)]
        public string ApproverUserId2 { get; set; }
        [Column(TypeName = "date")]
        public DateTime? ApproveDate2 { get; set; }
        [StringLength(24)]
        public string ApproverUserId3 { get; set; }
        [Column(TypeName = "date")]
        public DateTime? ApproveDate3 { get; set; }
        [StringLength(24)]
        public string ApproverUserId4 { get; set; }
        [Column(TypeName = "date")]
        public DateTime? ApproveDate4 { get; set; }
        [StringLength(24)]
        public string ApproverUserId5 { get; set; }
        [Column(TypeName = "date")]
        public DateTime? ApproveDate5 { get; set; }
        [Display(Name = "설비가동현황")]
        public string FacilityTime { get; set; }
        [Display(Name = "설비가동현황 그래프")]
        public string FacilityTimeGraph { get; set; }
        [Display(Name = "에너지 사용량")]
        public string EnergyUsage { get; set; }
        [Display(Name = "에너지 사용량 그래프")]
        public string EnergyUsageGraph { get; set; }
        [Display(Name = "에너지 단가변동")]
        public string EnergyCost { get; set; }
        [Display(Name = "에너지 요금분석")]
        public string EnergyCharge { get; set; }
        [Display(Name = "에너지 요금분석 그래프")]
        public string EnergyChargeGraph { get; set; }
        [Display(Name = "에너지 증감분석")]
        public string EnergyAnalysis { get; set; }

        [ForeignKey("BusinessFieldId")]
        public virtual CmBusinessField CmBusinessField { get; set; }
        [ForeignKey("RegisterUserId")]
        public virtual CmUser CmUser { get; set; }
        [ForeignKey("SiteId")]
        public virtual CmSite Site { get; set; }
        [ForeignKey("SiteId,OrganizationChartStatusFileId")]
        public virtual CmFile OrganizationChartStatus { get; set; }
        [ForeignKey("SiteId,RentalStatusFileId")]
        public virtual CmFile RentalStatus { get; set; }
        [ForeignKey("SiteId,LayoutStatusFileId")]
        public virtual CmFile LayoutStatus { get; set; }
        [ForeignKey("SiteId,ParkingManagementFileId")]
        public virtual CmFile ParkingManagement { get; set; }
        [ForeignKey("SiteId,RentalManagementFileId")]
        public virtual CmFile RentalManagement { get; set; }
        [ForeignKey("SiteId,MonthlyPriorityWorkFileId")]
        public virtual CmFile MonthlyPriorityWork { get; set; }
        [ForeignKey("SiteId,ImprovementReportFileId")]
        public virtual CmFile ImprovementReport { get; set; }
        [ForeignKey("SiteId,NextMonthPriorityWorkFileId")]
        public virtual CmFile NextMonthPriorityWork { get; set; }
        [ForeignKey("SiteId,CostFileId")]
        public virtual CmFile Cost { get; set; }
        [ForeignKey("SiteId,SurroundingStatusFileId")]
        public virtual CmFile SurroundingStatus { get; set; }


    }
}
