42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
from pydantic import BaseModel, EmailStr
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
|
|
# Для запросов
|
|
class UserCreate(BaseModel):
|
|
username: str
|
|
email: EmailStr
|
|
password: str
|
|
|
|
class UserLogin(BaseModel):
|
|
username: str
|
|
password: str
|
|
|
|
# Для MongoDB
|
|
class UserInDB(BaseModel):
|
|
username: str
|
|
email: EmailStr
|
|
hashed_password: str
|
|
uuid: str
|
|
skin_url: Optional[str] = None
|
|
skin_model: Optional[str] = "classic" # "classic" или "slim"
|
|
cloak_url: Optional[str] = None
|
|
is_active: bool = True
|
|
created_at: datetime = datetime.utcnow()
|
|
|
|
class Session(BaseModel):
|
|
access_token: str
|
|
client_token: str
|
|
user_uuid: str
|
|
expires_at: datetime
|
|
|
|
class ValidateRequest(BaseModel):
|
|
accessToken: str # camelCase
|
|
clientToken: str
|
|
|
|
class SkinUpdate(BaseModel):
|
|
skin_model: Optional[str] = "classic" # "classic" или "slim"
|
|
# Удаляем skin_url и skin_file, так как будем принимать файл напрямую
|
|
|
|
class CapeUpdate(BaseModel):
|
|
cape_url: str |