from marshmallow import Schema, fields, validate, EXCLUDE class LoginSchema(Schema): """Validation schema for user login""" class Meta: unknown = EXCLUDE username = fields.Str( required=True, validate=validate.Length(min=3, max=100), error_messages={"required": "Username is required"} ) password = fields.Str( required=True, validate=validate.Length(min=6, max=200), error_messages={"required": "Password is required"} ) class RegisterSchema(Schema): """Validation schema for user registration""" class Meta: unknown = EXCLUDE username = fields.Str( required=True, validate=validate.Length(min=3, max=100), error_messages={"required": "Username is required"} ) password = fields.Str( required=True, validate=validate.Length(min=6, max=200), error_messages={"required": "Password is required"} ) email = fields.Email( required=True, error_messages={"required": "Email is required"} ) class ChangePasswordSchema(Schema): """Validation schema for password change""" class Meta: unknown = EXCLUDE new_password = fields.Str( required=True, validate=validate.Length(min=6, max=200), error_messages={"required": "New password is required"} ) password_confirm = fields.Str( required=True, validate=validate.Length(min=6, max=200), error_messages={"required": "Password confirmation is required"} )