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

namespace FMSAdmin.Entities {
    public partial class CmTenant {
        public CmTenant() {
        }

        [Display(Name = "고유번호"), Key]
        public int SiteId { get; set; }
        public int TenantId { get; set; }
        [Display(Name = "입주사타입"), Required]
        public int CompanyTypeId { get; set; }
        [Display(Name = "입주사명"), Required]
        [StringLength(50, ErrorMessage = "입주사명은 최대 50자까지 입력 가능합니다.")]
        public string Name { get; set; }
        [Display(Name = "대표명")]
        [StringLength(20, ErrorMessage = "대표명은 최대 20자까지 입력 가능합니다.")]
        public string RepresentativeName { get; set; }
        [Display(Name = "대표전화")]
        [StringLength(20, ErrorMessage = "대표전화는 최대 20자까지 입력 가능합니다.")]
        public string RepresentativePhone { get; set; }
        [Display(Name = "FAX")]
        [StringLength(20, ErrorMessage = "FAX번호는 최대 20자까지 입력 가능합니다.")]
        public string Fax { get; set; }
        [Display(Name = "빌딩정보")]
        public int? BuildingId { get; set; }
        [Display(Name = "층정보")]
        public int FloorId { get; set; }
        [Display(Name = "임대면적")]
        [StringLength(20, ErrorMessage = "면적은 최대 20자까지 입력 가능합니다.")]
        public string AreaSize { get; set; }
        [Display(Name = "전용면적")]
        [StringLength(20, ErrorMessage = "면적은 최대 20자까지 입력 가능합니다.")]
        public string ExclusiveArea { get; set; }

        [Display(Name = "담당자명")]
        [StringLength(20, ErrorMessage = "담당자명은 최대 20자까지 입력 가능합니다.")]
        public string ChargeName { get; set; }
        [Display(Name = "담당자번호")]
        [StringLength(20, ErrorMessage = "담당자번호는 최대 20자까지 입력 가능합니다.")]
        public string ChargePhone { get; set; }
        [Display(Name = "우편번호")]
        [StringLength(5, ErrorMessage = "우편번호는 최대 5자까지 입력 가능합니다.")]
        public string AddressZip { get; set; }
        [Display(Name = "주소")]
        [StringLength(100, ErrorMessage = "주소1은 최대 100자까지 입력 가능합니다.")]
        public string Address1 { get; set; }
        [StringLength(100, ErrorMessage = "주소2는 최대 100자까지 입력 가능합니다.")]
        public string Address2 { get; set; }
        [Display(Name = "홈페이지 주소")]
        [StringLength(100, ErrorMessage = "홈페이지 주소는 최대 100자까지 입력 가능합니다.")]
        public string Homepage { get; set; }
        [Display(Name = "비고")]
        [StringLength(1024, ErrorMessage = "비고는 최대 1024자까지 입력 가능합니다.")]
        public string Comment { get; set; }
        [StringLength(100, ErrorMessage = "이메일은 최대 100자까지 입력 가능합니다.")]
        public string ChargeEmail { get; set; }
        [Display(Name = "사용여부")]
        public bool? IsUse { get; set; }

        [NotMapped]
        public int ExcelRowNum { get; set; }

        [ForeignKey("SiteId")]
        public virtual CmSite CmSite { get; set; }
        [ForeignKey("CompanyTypeId")]
        public virtual CmCompanyType CmCompanyType { get; set; }
        [ForeignKey("SiteId,BuildingId")]
        public virtual CmBuilding CmBuilding { get; set; }
        [ForeignKey("SiteId,BuildingId,FloorId")]
        public virtual CmFloor CmFloor { get; set; }
    }
}
