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

namespace FMSAdmin.Entities {
    public partial class FmsConstructionEstimation {
        [Key]
        public int SiteId { get; set; }
        [Key]
        public int ConstructionId { get; set; }
        [Column(TypeName = "datetime")]
        public DateTime EstimateDate { get; set; }
        [Required]
        [StringLength(24)]
        public string EstimateUserId { get; set; }
        [Column("Safety01_CleanUp")]
        public bool? Safety01CleanUp { get; set; }
        [Column("Safety02_PersonalProtection")]
        public bool? Safety02PersonalProtection { get; set; }
        [Column("Safety03_FireExtinguisher")]
        public bool? Safety03FireExtinguisher { get; set; }
        [Column("Safety04_HighPlaceWork")]
        public bool? Safety04HighPlaceWork { get; set; }
        [Column("Safety05_Weld")]
        public bool? Safety05Weld { get; set; }
        [Column("Safety06_SurroundingCleanUp")]
        public bool? Safety06SurroundingCleanUp { get; set; }
        [Column("Safety07_SurroundingHealthy")]
        public bool? Safety07SurroundingHealthy { get; set; }
        [Column("Safety08_Noise")]
        public bool? Safety08Noise { get; set; }
        [Column("Safety09_FacilityProtection")]
        public bool? Safety09FacilityProtection { get; set; }
        [Column("Safety10_Waste")]
        public bool? Safety10Waste { get; set; }
        [Column("Safety11_Execution")]
        public bool? Safety11Execution { get; set; }
        [Column("Safety12_Announcement")]
        public bool? Safety12Announcement { get; set; }
        [Column("Ability01_Compliance")]
        public bool? Ability01Compliance { get; set; }
        [Column("Ability02_Fault")]
        public bool? Ability02Fault { get; set; }
        [Column("Ability03_SkillLevel")]
        public bool? Ability03SkillLevel { get; set; }
        [Column("Ability04_ProcessManagement")]
        public bool? Ability04ProcessManagement { get; set; }
        [Column("Ability05_Collaboration")]
        public bool? Ability05Collaboration { get; set; }
        [Column("Service01_Compliance")]
        public bool? Service01Compliance { get; set; }
        [Column("Service02_SkillLevel")]
        public bool? Service02SkillLevel { get; set; }
        [StringLength(1024)]
        public string Comment { get; set; }
        public double? TotalEstimateScore { get; set; }
        public double? SafetyScore { get; set; }
        public double? AbilityScore { get; set; }
        public double? ServiceScore { get; set; }

        [ForeignKey("EstimateUserId")]
        [InverseProperty("FmsConstructionEstimation")]
        public virtual CmUser CmUser { get; set; }
        [ForeignKey("SiteId,ConstructionId")]
        [InverseProperty("FmsConstructionEstimation")]
        public virtual FmsConstruction FmsConstruction { get; set; }
    }
}
