Spaces:
Runtime error
Runtime error
| from __future__ import annotations | |
| import re | |
| from datetime import datetime | |
| from pydantic import BaseModel, EmailStr, Field, field_validator | |
| class RegisterBody(BaseModel): | |
| email: EmailStr | |
| password: str = Field(min_length=6, max_length=128) | |
| name: str | None = Field(default=None, max_length=255) | |
| def validate_password_strength(cls, value: str) -> str: | |
| if len(value) < 8: | |
| raise ValueError("Password must be at least 8 characters long") | |
| if not re.search(r"[a-z]", value): | |
| raise ValueError("Password must include a lowercase letter") | |
| if not re.search(r"[A-Z]", value): | |
| raise ValueError("Password must include an uppercase letter") | |
| if not re.search(r"\d", value): | |
| raise ValueError("Password must include a digit") | |
| if not re.search(r"[^A-Za-z0-9]", value): | |
| raise ValueError("Password must include a symbol") | |
| return value | |
| class LoginBody(BaseModel): | |
| email: EmailStr | |
| password: str | |
| class UserOut(BaseModel): | |
| id: int | |
| email: str | |
| name: str | None = None | |
| created_at: datetime | |
| class TokenResponse(BaseModel): | |
| access_token: str | |
| token_type: str = "bearer" | |
| expires_in_minutes: int | |
| user: UserOut | |