Files
Aether/backend/app/users/schemas.py
T
2026-01-05 23:31:36 +03:00

65 lines
1.4 KiB
Python

from typing import Optional
from datetime import date
import uuid
from pydantic import BaseModel, EmailStr
class UserBase(BaseModel):
display_name: Optional[str] = None
username: Optional[str] = None
# email: Optional[str] = None
birth_day: Optional[date] = None
# description: str
# avatar_url: str
class UserCreate(UserBase):
display_name: str
username: str
email: EmailStr
password: str
class Config:
from_attributes = True
class UserUpdate(UserBase):
description: Optional[str] = None
birth_day: Optional[date] = None
class User(UserBase):
id: int
display_name: str
username: str
email: EmailStr
birth_day: Optional[date] = None
description: Optional[str] = None
avatar_url: Optional[str] = None
is_active: bool
is_verified: bool
is_superuser: bool
class UserCreateDB(UserBase):
email: Optional[str] = None
hashed_password: Optional[str] = None
is_active: Optional[bool] = None
is_verified: Optional[bool] = None
is_superuser: Optional[bool] = None
class UserUpdateDB(UserBase):
email: Optional[str] = None
hashed_password: str
description: Optional[str] = None
birth_day: Optional[date] = None
is_active: Optional[bool] = None
is_verified: Optional[bool] = None
is_superuser: Optional[bool] = None
class Token(BaseModel):
access_token: str
refresh_token: uuid.UUID
token_type: str