from pydantic import BaseModel, Field class UserResponse(BaseModel): id: int username: str preferred_language: str = 'pl' preferred_font: str = 'default' model_config = {"from_attributes": True} class TokenResponse(BaseModel): access_token: str token_type: str = "bearer" user: UserResponse class RegisterRequest(BaseModel): username: str = Field(min_length=3, max_length=120) password: str = Field(min_length=4, max_length=128) class ChangePasswordRequest(BaseModel): current_password: str new_password: str = Field(min_length=4, max_length=128) class UpdateUserPreferencesRequest(BaseModel): preferred_language: str = Field(default='pl', min_length=2, max_length=8) preferred_font: str = Field(default='default', min_length=2, max_length=32)