using StandManager.Domain.Entita;
using StandManager.Domain.Entita.Base;
using System.ComponentModel.DataAnnotations.Schema;

namespace StandManager.Model
{
    public class InvitoEventoViewModel
    {
        public Guid? Id { get; set; }
        public Guid? EventoId { get; set; }
        public Guid? ClienteId { get; set; }
        public Guid? DestinazioneId { get; set; }
        public string CodiceFornito { get; set; }
        public string RagioneSociale { get; set; }
        public List<IscrizioneEventoViewModel> IscrizioniEvento { get; set; }

        public static implicit operator InvitoEventoViewModel(InvitoEvento model)
        {
            return model == null
                ? null
                : new InvitoEventoViewModel()
                {
                    ClienteId = model.ClienteId,
                    CodiceFornito = model.CodiceFornito,
                    EventoId = model.EventoId,
                    Id = model.Id,
                    IscrizioniEvento = model.IscrizioniEvento?.Select(x => (IscrizioneEventoViewModel)x).ToList(),
                    RagioneSociale = model.Cliente?.RagioneSociale
                };
        }
    }
}
