using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CD67.FicheCollege.Entity
{
    /// <summary>
    /// Classe d'extension de celle d'Entity, nécessaire pour y associer les Metadata
    /// </summary>
    [MetadataType(typeof(RestaurationFormulaire_Metadata))]
    public partial class RestaurationFormulaire
    {
    }

    /// <summary>
    /// Classe contenant les DataAnnotations pour chaque champ
    /// </summary>
    public class RestaurationFormulaire_Metadata
    {
        [Required(ErrorMessage = "Obligatoire")]
        public System.Guid Id { get; set; }

        [Required(ErrorMessage = "Obligatoire")]
        public int College_Id { get; set; }

        [Required(ErrorMessage = "Obligatoire")]
        [UIHint("RestaurationStatut")]
        public string Statut { get; set; }

        [Required(ErrorMessage = "Obligatoire")]
        [Display(Name = "Collège")]
        public int NbDP_College { get; set; }

        [Display(Name = "Lycée")]
        public int NbDP_Lycee { get; set; }

        [Display(Name = "Maternelle/ Primaire/ Périscolaire")]
        public int NbDP_MatPrimPeri { get; set; }

        [Display(Name = "Commensaux")]
        public int NbDP_Commensaux { get; set; }

        [Display(Name = "ATC")]
        public int NbDP_ATC { get; set; }

        [Display(Name = "Catégorie C et assimilés")]
        public int NbDP_AgentC { get; set; }

        public Nullable<decimal> Prix_Forfait5j { get; set; }
        public int NbJours_Forfait5j { get; set; }
        public Nullable<decimal> Prix_Forfait4j { get; set; }
        public int NbJours_Forfait4j { get; set; }
        public Nullable<decimal> Prix_Forfait3j { get; set; }
        public int NbJours_Forfait3j { get; set; }
        public Nullable<decimal> Prix_Forfait2j { get; set; }
        public int NbJours_Forfait2j { get; set; }
        public Nullable<decimal> Prix_Forfait1j { get; set; }
        public int NbJours_Forfait1j { get; set; }

        [Display(Name = "Prix du ticket")]
        public decimal Prix_Ticket { get; set; }

        [Display(Name = "Tarif de pension")]
        public Nullable<decimal> Tarif_Pension { get; set; }

        [Display(Name = "Prix du ticket ATC")]
        public decimal Prix_ATC { get; set; }

        [Display(Name = "Prix ticket agent de catégorie C et assimilés")]
        public decimal Prix_AgentC { get; set; }

        [Display(Name = "Prix ticket autres commensaux")]
        public Nullable<decimal> Prix_Commensaux { get; set; }

        [Display(Name = "Prix ticket école, périscolaire")]
        public Nullable<decimal> Prix_EcolePeri { get; set; }

        public int NbEleves_FondSocial { get; set; }
        public Nullable<decimal> Montant_FondSocial { get; set; }
        public int NbEleves_Impayes { get; set; }
        public Nullable<decimal> Montant_Impayes { get; set; }

        [DataType(DataType.Date)]
        public System.DateTime Date_AvisCA { get; set; }

        [Display(Name = "Je certifie sur l'honneur l'exactitude des renseignements fournis.")]
        public bool? Ind_Signature { get; set; }

        public virtual College College { get; set; }
    }
}