from marshmallow import Schema, fields, validate


class EmailSchema(Schema):
    """
    Schema for an email address.

    Attributes:
        email (str): User's email address.
    """

    # Define the email field with required and validation rules
    email = fields.String(
        required=True,  # Email is required
        validate=[
            validate.Email(error="Invalid email format"),  # Validate as an email address
            validate.Length(min=5, max=100, error="Email must be between 5 and 100 characters"),  # Specify length range
        ],
        error_messages={'required': 'Email is required.'},  # Custom error message for required field
        description='User email'  # Description for the email field
    )
