from __future__ import annotations from pydantic import BaseModel, Field class LoginRequest(BaseModel): username: str = Field(min_length=3, max_length=50) password: str = Field(min_length=8, max_length=128) class RegisterRequest(BaseModel): username: str = Field(min_length=3, max_length=50, pattern=r'^[a-zA-Z0-9_-]+$') password: str = Field(min_length=8, max_length=128) display_name: str = Field(min_length=1, max_length=100) email: str | None = None class TokenResponse(BaseModel): access_token: str token_type: str = "bearer" class UserResponse(BaseModel): id: str username: str display_name: str email: str | None timezone: str model_config = {"from_attributes": True}