using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace FSI.Prj.Mgt.Models
{
    public class Project
    {
        public Project()
        {
            Plants = new HashSet<Plant>();
        }

        [Key]
        public int Id { get; set; }

        [DisplayName("Projekt-Nr")]
        [Required(ErrorMessage = "Dieses Feld wird benötigt.")]
        public int No{ get; set; }               
        
        [DisplayName("Name")]
        [Required(ErrorMessage = "Dieses Feld wird benötigt.")]
        public string Name { get; set; }
        
        [DisplayName("Beschreibung")]
        [Required(ErrorMessage = "Dieses Feld wird benötigt.")]
        public string Description { get; set; }

        
        [DisplayName("Status")]
        [Required(ErrorMessage = "Dieses Feld wird benötigt.")]
        public ProjectStatus Status { get; set; }
       
        [ForeignKey("Id")]
        [DisplayName("Anlage, Teilanlage, ...")]
        public int? PlantId { get; set; }

        public virtual Plant Plant { get; set; }

        public virtual ICollection<Plant> Plants { get; set; }

    }

    public enum ProjectStatus
    {
        [Display(Name = "in Bearbeitung")]
        started,

        [Display(Name = "beendet")]
        ended,

        [Display(Name = "zurückgestellt")]
        shelved,
    }
}
