using System.ComponentModel.DataAnnotations; namespace MieSystem.Models.ViewModels { public class ExpedienteViewModel { public int Id { get; set; } [Required(ErrorMessage = "El nombre es requerido")] [StringLength(100, ErrorMessage = "El nombre no puede exceder 100 caracteres")] [Display(Name = "Nombre")] public string Nombre { get; set; } [Required(ErrorMessage = "Los apellidos son requeridos")] [StringLength(100, ErrorMessage = "Los apellidos no pueden exceder 100 caracteres")] [Display(Name = "Apellidos")] public string Apellidos { get; set; } [Required(ErrorMessage = "La fecha de nacimiento es requerida")] [DataType(DataType.Date)] [Display(Name = "Fecha de Nacimiento")] public DateTime FechaNacimiento { get; set; } [Display(Name = "Nombre del Padre")] [StringLength(100, ErrorMessage = "El nombre no puede exceder 100 caracteres")] public string NombrePadre { get; set; } [Display(Name = "Nombre de la Madre")] [StringLength(100, ErrorMessage = "El nombre no puede exceder 100 caracteres")] public string NombreMadre { get; set; } [Required(ErrorMessage = "El nombre del responsable es requerido")] [StringLength(100, ErrorMessage = "El nombre no puede exceder 100 caracteres")] [Display(Name = "Nombre del Responsable")] public string NombreResponsable { get; set; } [Display(Name = "Parentesco del Responsable")] public string ParentescoResponsable { get; set; } [Required(ErrorMessage = "El sexo es requerido")] [Display(Name = "Sexo")] public string Sexo { get; set; } [Required(ErrorMessage = "La dirección es requerida")] [StringLength(200, ErrorMessage = "La dirección no puede exceder 200 caracteres")] [Display(Name = "Dirección")] public string Direccion { get; set; } [Display(Name = "Teléfono")] [Phone(ErrorMessage = "Formato de teléfono inválido")] public string Telefono { get; set; } [Display(Name = "Observaciones")] [StringLength(500, ErrorMessage = "Las observaciones no pueden exceder 500 caracteres")] public string Observaciones { get; set; } [Display(Name = "Foto")] [DataType(DataType.Upload)] public IFormFile Foto { get; set; } public string FotoUrl { get; set; } [Display(Name = "Edad")] public int Edad { get { if (FechaNacimiento == default) return 0; var today = DateTime.Today; var age = today.Year - FechaNacimiento.Year; if (FechaNacimiento.Date > today.AddYears(-age)) age--; return age; } } [Display(Name = "Nombre Completo")] public string NombreCompleto => $"{Nombre} {Apellidos}"; } }