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

namespace FMSAdmin.Entities {
    public partial class BemsReportHistory {

        public BemsReportHistory() {
            BemsReportHistoryContent = new List<BemsReportHistoryContent>();
        }

        //일지 이력
        [Display(Name = "현장 고유번호"), Key]
        public int SiteId { get; set; }

        [Display(Name = "순서 구분자"), Key]
        public int Seq { get; set; }

        [Display(Name = "등록 시간")]
        [Column(TypeName = "datetime")]
        public DateTime CreateDate { get; set; }

        [Display(Name = "일지 제목")]
        [StringLength(200)]
        public string ReportName { get; set; }

        [Display(Name = "일지 포맷 ID")]
        public int ReportFormatId { get; set; }

        [Display(Name = "포맷 이름")]
        [StringLength(50)]
        public string FormatName { get; set; }

        [Display(Name = "작성자")]
        [StringLength(50)]
        public string Writer { get; set; }

        [Display(Name = "팀장확인")]
        [StringLength(50)]
        public string Confirm1 { get; set; }

        [Display(Name = "소장확인")]
        [StringLength(50)]
        public string Confirm2 { get; set; }

        [Display(Name = "첨부파일 이름")]
        [StringLength(100)]
        public string FileName { get; set; }

        public int? FileId { get; set; }

        [Display(Name = "팀장확인")]
        public string ApproverUserId1 { get; set; }

        [Display(Name = "소장확인")]
        public string ApproverUserId2 { get; set; }
        [Column(TypeName = "date")]
        public DateTime? ApproveDate1 { get; set; }
        [Column(TypeName = "date")]
        public DateTime? ApproveDate2 { get; set; }
        [ForeignKey("SiteId")]
        public virtual CmSite Site { get; set; }

        [ForeignKey("SiteId,ReportFormatId")]
        [InverseProperty("BemsReportHistory")]
        public virtual BemsReportFormat BemsReportFormat { get; set; }

        [ForeignKey("SiteId,FileId")]
        public virtual CmFile CmFile { get; set; }


        [InverseProperty("BemsReportHistory")]
        public virtual ICollection<BemsReportHistoryContent> BemsReportHistoryContent { get; set; }

        [ForeignKey("ApproverUserId1")]
        public virtual CmUser ApproverUser1 { get; set; }
        [ForeignKey("ApproverUserId2")]
        public virtual CmUser ApproverUser2 { get; set; }
    }
}
