41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from pydantic import BaseModel
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
class UserCreate(BaseModel):
|
|
username: str
|
|
password: str
|
|
|
|
class UserLogin(BaseModel):
|
|
username: str
|
|
password: str
|
|
|
|
class UserInDB(BaseModel):
|
|
username: str
|
|
hashed_password: str
|
|
uuid: str
|
|
skin_url: Optional[str] = None
|
|
skin_model: Optional[str] = "classic"
|
|
cloak_url: Optional[str] = None
|
|
coins: int = 0 # Новое поле для монет
|
|
total_time_played: int = 0 # Общее время игры в секундах
|
|
is_active: bool = True
|
|
created_at: datetime = datetime.utcnow()
|
|
code: Optional[str] = None
|
|
telegram_user_id: Optional[int] = None
|
|
telegram_username: Optional[str] = None
|
|
is_verified: bool = False
|
|
code_expires_at: Optional[datetime] = None
|
|
is_admin: bool = False
|
|
expires_at: Optional[datetime] = None
|
|
class Session(BaseModel):
|
|
access_token: str
|
|
client_token: str
|
|
user_uuid: str
|
|
expires_at: datetime
|
|
|
|
class VerifyCode(BaseModel):
|
|
username: str
|
|
code: str
|
|
telegram_user_id: int
|
|
telegram_username: Optional[str] = None |