using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using UnivateProperties_API.Containers.Property;
using UnivateProperties_API.Model.Region;

namespace UnivateProperties_API.Model.Property
{
    public class Property : BaseEntity
    {
        #region Properties
        public string CreatedBy { get; set; }
        [ForeignKey("PropertyType")]        
        public int PropertyTypeId { get; set; }
        public string PropertyName { get; set; }
        public string Unit { get; set; }
        public decimal OperationalCosts { get; set; }           
        public decimal Price { get; set; }
        public string PricePer { get; set; }
        public bool IsSale { get; set; }
        public string Description { get; set; }
        public string ShortDescription { get; set; }
        public string AddressLine1 { get; set; }
        public string AddressLine2 { get; set; }
        public string AddressLine3 { get; set; }
        public int SuburbId { get; set; }
        public int CityId { get; set; }
        public int ProvinceId { get; set; }
        public bool Published { get; set; }

        public virtual PropertyType PropertyType { get; set; }
        public virtual Province Province { get; set; }
        public virtual City City { get; set; }
        public virtual Suburb Suburb { get; set; }

        public ICollection<PropertyUserField> PropertyUserFields { get; set; }
        public ICollection<PropertyImage> PropertyImages { get; set; }

        [NotMapped]
        public List<PropertyDetailGroup> DisplayData { get; set; }
        #endregion
    }
}