using System.ComponentModel.DataAnnotations;

namespace GestionIntegral.Api.Dtos.Usuarios
{
    public class CreateUsuarioRequestDto
    {
        [Required(ErrorMessage = "El nombre de usuario es obligatorio.")]
        [StringLength(20, MinimumLength = 3, ErrorMessage = "El nombre de usuario debe tener entre 3 y 20 caracteres.")]
        public string User { get; set; } = string.Empty;

        [Required(ErrorMessage = "La contraseña es obligatoria.")]
        [StringLength(50, MinimumLength = 6, ErrorMessage = "La contraseña debe tener al menos 6 caracteres.")]
        public string Password { get; set; } = string.Empty; // Contraseña en texto plano para la creación

        [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; }

        public bool Habilitada { get; set; } = true;
        public bool SupAdmin { get; set; } = false;
        public bool DebeCambiarClave { get; set; } = true; // Por defecto, forzar cambio al primer login

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