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

namespace FMSAdmin.Entities {
    public partial class CmCompany {
        public CmCompany() {
            CmDepartment = new HashSet<CmDepartment>();
            CmUser = new HashSet<CmUser>();
            FmsAccident = new HashSet<FmsAccident>();
        }

        [Display(Name = "현장 고유번호"), Key]
        public int SiteId { get; set; }
        [Display(Name = "회사 고유번호"), Key]
        public int CompanyId { get; set; }
        [Display(Name = "회사 유형번호")]
        public int CompanyTypeId { get; set; }
        [Display(Name = "회사명"), Required]
        [StringLength(50)]
        public string Name { get; set; }
        [Display(Name = "회사 전화번호"), Required]
        [StringLength(20)]
        public string PhoneNo { get; set; }
        [Display(Name = "회사 팩스번호")]
        [StringLength(20)]
        public string FaxNo { get; set; }
        [Display(Name = "대표자명"), Required]
        [StringLength(20)]
        public string RepresentativeName { get; set; }
        [Display(Name = "영업 담당자 이름")]
        [StringLength(20)]
        public string SalesName { get; set; }
        [Display(Name = "영업 담당자 전화번호")]
        [StringLength(20)]
        public string SalesPhoneNo { get; set; }
        [Display(Name = "우편번호 앞자리")]
        [StringLength(5)]
        public string AddressZip1 { get; set; }
        [Display(Name = "우편번호 뒷자리")]
        [StringLength(3)]
        public string AddressZip2 { get; set; }
        [Display(Name = "주소 1")]
        [StringLength(50)]
        public string Address1 { get; set; }
        [Display(Name = "주소 2")]
        [StringLength(100)]
        public string Adderss2 { get; set; }
        [Display(Name = "홈페이지 주소")]
        [StringLength(100)]
        public string Homepage { get; set; }
        [Display(Name = "비고")]
        [StringLength(1024)]
        public string Comment { get; set; }
        [Display(Name = "사용 유무")]
        public bool? IsUse { get; set; }

        [ForeignKey("CompanyTypeId")]
        [InverseProperty("CmCompany")]
        public virtual CmCompanyType CmCompanyType { get; set; }
        [ForeignKey(nameof(SiteId))]
        [InverseProperty(nameof(CmSite.CmCompany))]
        public virtual CmSite Site { get; set; }
        [InverseProperty("CmCompany")]
        public virtual ICollection<CmDepartment> CmDepartment { get; set; }
        [InverseProperty("CmCompany")]
        public virtual ICollection<CmUser> CmUser { get; set; }
        [InverseProperty("CmCompany")]
        public virtual ICollection<FmsAccident> FmsAccident { get; set; }
    }
}