using System.ComponentModel.DataAnnotations;

namespace GestionIntegral.Api.Dtos.Usuarios
{
    public class UpdateUsuarioRequestDto
    {
        // User no se puede cambiar usualmente, o requiere un proceso separado.
        // Si se permite cambiar, añadir validaciones. Por ahora lo omitimos del DTO de update.

        [Required(ErrorMessage = "El nombre es obligatorio.")]
        [StringLength(50)]
        public string Nombre { get; set; } = string.Empty;

        [Required(ErrorMessage = "El apellido es obligatorio.")]
        [StringLength(50)]
        public string Apellido { get; set; } = string.Empty;

        [Required(ErrorMessage = "El perfil es obligatorio.")]
        [Range(1, int.MaxValue, ErrorMessage = "Debe seleccionar un perfil válido.")]
        public int IdPerfil { get; set; }

        [Required(ErrorMessage = "El estado Habilitada es obligatorio.")]
        public bool Habilitada { get; set; }

        [Required(ErrorMessage = "El estado SupAdmin es obligatorio.")]
        public bool SupAdmin { get; set; }

        [Required(ErrorMessage = "El estado DebeCambiarClave es obligatorio.")]
        public bool DebeCambiarClave { get; set; }

        [StringLength(10)]
        public string VerLog { get; set; } = "1.0.0.0";
    }
}