Files
Daniel Bedeleanu 62c592d6b8 Fix TokenResponse schema: make user field non-optional and properly typed
- Changed user field from Optional[User] to required User type
- Ensures user object is always included in login response
- Pydantic now properly serializes the complete user object
- Frontend can now successfully retrieve response.user for localStorage
2026-04-26 13:19:30 +03:00

50 lines
899 B
Python

from pydantic import BaseModel
from typing import Optional
# --- Users ---
class UserBase(BaseModel):
username: str
role: str = "user"
origin: str = "local"
class UserCreate(UserBase):
password: Optional[str] = None
class User(UserBase):
id: int
class Config:
from_attributes = True
class UserUpdate(BaseModel):
username: Optional[str] = None
password: Optional[str] = None
role: Optional[str] = None
class UserLogin(BaseModel):
username: str
password: str
class UserPasswordUpdate(BaseModel):
old_password: Optional[str] = None
new_password: str
class TokenResponse(BaseModel):
access_token: str
token_type: str = "bearer"
user_id: int
username: str
role: str
user: User # User object for frontend compatibility
# Rebuild TokenResponse to resolve forward references
TokenResponse.model_rebuild()