32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
from pydantic import BaseModel, Field
|
|
from typing import List, Optional, Dict
|
|
|
|
class CaseItemMeta(BaseModel):
|
|
display_name: Optional[str] = None
|
|
lore: Optional[List[str]] = None
|
|
enchants: Optional[Dict[str, int]] = None
|
|
durability: Optional[int] = None
|
|
|
|
class CaseItem(BaseModel):
|
|
id: Optional[str] = None
|
|
name: str
|
|
material: str
|
|
amount: int = 1
|
|
weight: int = 1
|
|
meta: Optional[CaseItemMeta] = None
|
|
|
|
class CaseCreate(BaseModel):
|
|
name: str
|
|
description: Optional[str] = None
|
|
price: int = Field(gt=0)
|
|
server_ips: List[str] = Field(default_factory=lambda: ["*"])
|
|
image_url: Optional[str] = None # 🔹 Картинка кейса
|
|
items: List[CaseItem]
|
|
|
|
class CaseUpdate(BaseModel):
|
|
name: Optional[str] = None
|
|
description: Optional[str] = None
|
|
price: Optional[int] = Field(default=None, gt=0)
|
|
server_ips: Optional[List[str]] = None
|
|
image_url: Optional[str] = None # 🔹 Можно менять картинку
|
|
items: Optional[List[CaseItem]] = None |