from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField
from wtforms.validators import InputRequired, Email, Length, DataRequired

class LogIn(FlaskForm):
    """
    Formulario de inicio de sesión que hereda de FlaskForm.
    
    Campos:
        email (StringField): Campo para el correo electrónico del usuario.
        password (PasswordField): Campo para la contraseña del usuario.
    
    Validaciones:
        - Email: Requerido, formato válido y longitud máxima de 120 caracteres.
        - Password: Requerido.
    """
        
    email = StringField(
        "Email", 
        validators=[
            InputRequired(message="Este campo es obligatorio"), 
            Email(message="Ingresa un email válido"), 
            Length(max=120, message="El email no puede exceder los 120 caracteres")
        ],
        description="Correo electrónico registrado en la plataforma"
    )

    password = PasswordField(
        'Contraseña', 
        validators=[
            DataRequired(message="La contraseña es obligatoria")
        ],
        description="Contraseña de acceso a la cuenta",
        render_kw={"placeholder": "Ingresa tu contraseña"}
    )