feat: new endpoints for users and updated models
This commit is contained in:
7
app/models/server/command.py
Normal file
7
app/models/server/command.py
Normal file
@ -0,0 +1,7 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional
|
||||
|
||||
class ServerCommand(BaseModel):
|
||||
command: str
|
||||
server_ip: str
|
||||
require_online_player: Optional[bool] = False
|
17
app/models/server/event.py
Normal file
17
app/models/server/event.py
Normal file
@ -0,0 +1,17 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional, List, Dict
|
||||
from datetime import datetime
|
||||
|
||||
class PlayerEvent(BaseModel):
|
||||
event_type: str
|
||||
player_id: Optional[str] = None
|
||||
player_name: str
|
||||
duration: Optional[int] = None # в секундах
|
||||
timestamp: Optional[int] = None # UNIX timestamp в миллисекундах
|
||||
server_ip: str
|
||||
|
||||
class OnlinePlayersUpdate(BaseModel):
|
||||
event_type: str = "online_players_update"
|
||||
players: List[Dict]
|
||||
timestamp: int
|
||||
server_ip: str
|
17
app/models/server/playtime.py
Normal file
17
app/models/server/playtime.py
Normal file
@ -0,0 +1,17 @@
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
class PlayerSession(BaseModel):
|
||||
player_id: str
|
||||
player_name: str
|
||||
server_ip: str
|
||||
start_time: datetime
|
||||
end_time: Optional[datetime] = None
|
||||
duration: Optional[int] = None # в секундах
|
||||
|
||||
class PlayerPlaytime(BaseModel):
|
||||
player_id: str
|
||||
player_name: str
|
||||
total_time: int # общее время в секундах
|
||||
last_coins_update: datetime # последнее время начисления монет
|
@ -19,6 +19,8 @@ class UserInDB(BaseModel):
|
||||
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()
|
||||
|
||||
|
Reference in New Issue
Block a user