test player_inventory

This commit is contained in:
2025-12-16 00:15:29 +05:00
parent 80a9fbe148
commit bb74dbbba7
8 changed files with 204 additions and 43 deletions

View File

@ -19,7 +19,7 @@ class CaseCreate(BaseModel):
name: str
description: Optional[str] = None
price: int = Field(gt=0)
server_ids: List[str] = Field(default_factory=lambda: ["*"])
server_ips: List[str] = Field(default_factory=lambda: ["*"])
image_url: Optional[str] = None # 🔹 Картинка кейса
items: List[CaseItem]
@ -27,6 +27,6 @@ class CaseUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
price: Optional[int] = Field(default=None, gt=0)
server_ids: Optional[List[str]] = None
server_ips: Optional[List[str]] = None
image_url: Optional[str] = None # 🔹 Можно менять картинку
items: Optional[List[CaseItem]] = None

26
app/models/inventory.py Normal file
View File

@ -0,0 +1,26 @@
from pydantic import BaseModel, Field
from typing import Dict, Any, Optional, List
from datetime import datetime
class InventoryItemCreate(BaseModel):
username: str
server_ip: str
item_data: Dict[str, Any]
source: Dict[str, Any] # например {"type":"case","case_id": "...", "case_name": "...", "rarity": "..."}
created_at: datetime = Field(default_factory=datetime.utcnow)
class InventoryItem(BaseModel):
id: str
username: str
server_ip: str
item_data: Dict[str, Any]
source: Dict[str, Any]
status: str = "stored" # stored | withdrawing | delivered | failed
created_at: datetime
delivered_at: Optional[datetime] = None
withdraw_operation_id: Optional[str] = None
class InventoryWithdrawRequest(BaseModel):
username: str
item_id: str
server_ip: str