so much stuff lol
This commit is contained in:
@@ -1,50 +1,41 @@
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from typing import Optional, List
|
||||
from typing import List, Optional
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel
|
||||
|
||||
# Base schema with common attributes
|
||||
class BoxBase(BaseModel):
|
||||
product_id: int
|
||||
type: str
|
||||
set_code: str
|
||||
sku: int
|
||||
name: str
|
||||
expected_number_of_cards: int
|
||||
description: str
|
||||
image_url: str
|
||||
description: Optional[str] = None
|
||||
game_id: int
|
||||
set_id: Optional[int] = None
|
||||
price: Optional[float] = None
|
||||
quantity: Optional[int] = 0
|
||||
status: Optional[str] = "available" # available, sold, reserved
|
||||
|
||||
# Schema for creating a new box
|
||||
class BoxCreate(BoxBase):
|
||||
pass
|
||||
|
||||
# Schema for updating a box
|
||||
class BoxUpdate(BaseModel):
|
||||
product_id: Optional[int] = None
|
||||
type: Optional[str] = None
|
||||
set_code: Optional[str] = None
|
||||
sku: Optional[int] = None
|
||||
name: Optional[str] = None
|
||||
expected_number_of_cards: Optional[int] = None
|
||||
description: Optional[str] = None
|
||||
image_url: Optional[str] = None
|
||||
class BoxUpdate(BoxBase):
|
||||
pass
|
||||
|
||||
# Schema for reading a box
|
||||
class Box(BoxBase):
|
||||
class BoxInDB(BoxBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
cards: List["Card"] = []
|
||||
open_boxes: List["OpenBox"] = []
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
# Schema for deleting a box
|
||||
class BoxDelete(BaseModel):
|
||||
id: int
|
||||
message: str
|
||||
|
||||
# Schema for listing boxes
|
||||
class BoxList(BaseModel):
|
||||
boxes: List[Box]
|
||||
boxes: List[BoxInDB]
|
||||
total: int
|
||||
page: int
|
||||
limit: int
|
||||
@@ -52,30 +43,30 @@ class BoxList(BaseModel):
|
||||
# OpenBox schemas
|
||||
class OpenBoxBase(BaseModel):
|
||||
box_id: int
|
||||
number_of_cards: int
|
||||
date_opened: datetime
|
||||
opened_at: Optional[datetime] = None
|
||||
opened_by: Optional[str] = None
|
||||
contents: Optional[List[dict]] = None
|
||||
status: Optional[str] = "pending" # pending, opened, verified, listed
|
||||
|
||||
class OpenBoxCreate(OpenBoxBase):
|
||||
pass
|
||||
|
||||
class OpenBoxUpdate(BaseModel):
|
||||
number_of_cards: Optional[int] = None
|
||||
date_opened: Optional[datetime] = None
|
||||
class OpenBoxUpdate(OpenBoxBase):
|
||||
pass
|
||||
|
||||
class OpenBox(OpenBoxBase):
|
||||
class OpenBoxInDB(OpenBoxBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
box: Optional[Box] = None
|
||||
cards: List["Card"] = []
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class OpenBoxDelete(BaseModel):
|
||||
id: int
|
||||
message: str
|
||||
|
||||
class OpenBoxList(BaseModel):
|
||||
open_boxes: List[OpenBox]
|
||||
open_boxes: List[OpenBoxInDB]
|
||||
total: int
|
||||
page: int
|
||||
limit: int
|
@@ -1,39 +1,55 @@
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from typing import Optional, List
|
||||
from typing import List, Optional
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel
|
||||
|
||||
# Base schema with common attributes
|
||||
class CardBase(BaseModel):
|
||||
name: str
|
||||
rarity: str
|
||||
set_name: str
|
||||
price: float
|
||||
quantity: int = 0
|
||||
rarity: Optional[str] = None
|
||||
set_name: Optional[str] = None
|
||||
price: Optional[float] = None
|
||||
quantity: Optional[int] = 0
|
||||
|
||||
# TCGPlayer specific fields
|
||||
tcgplayer_sku: Optional[str] = None
|
||||
product_line: Optional[str] = None
|
||||
product_name: Optional[str] = None
|
||||
title: Optional[str] = None
|
||||
number: Optional[str] = None
|
||||
condition: Optional[str] = None
|
||||
tcg_market_price: Optional[float] = None
|
||||
tcg_direct_low: Optional[float] = None
|
||||
tcg_low_price_with_shipping: Optional[float] = None
|
||||
tcg_low_price: Optional[float] = None
|
||||
total_quantity: Optional[int] = None
|
||||
add_to_quantity: Optional[int] = None
|
||||
tcg_marketplace_price: Optional[float] = None
|
||||
photo_url: Optional[str] = None
|
||||
|
||||
# Schema for creating a new card
|
||||
class CardCreate(CardBase):
|
||||
pass
|
||||
|
||||
# Schema for updating a card
|
||||
class CardUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
rarity: Optional[str] = None
|
||||
set_name: Optional[str] = None
|
||||
price: Optional[float] = None
|
||||
quantity: Optional[int] = None
|
||||
class CardUpdate(CardBase):
|
||||
pass
|
||||
|
||||
# Schema for reading a card (includes id and relationships)
|
||||
class Card(CardBase):
|
||||
class CardInDB(CardBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
orders: List["Order"] = []
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
# Schema for listing cards
|
||||
class CardList(BaseModel):
|
||||
cards: List[Card]
|
||||
cards: List[CardInDB]
|
||||
total: int
|
||||
page: int
|
||||
limit: int
|
||||
limit: int
|
||||
|
||||
# Schema for deleting a card
|
||||
class CardDelete(BaseModel):
|
||||
message: str
|
@@ -1,38 +1,40 @@
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from typing import Optional, List
|
||||
from typing import List, Optional
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel
|
||||
|
||||
# Base schema with common attributes
|
||||
class FileBase(BaseModel):
|
||||
name: str
|
||||
type: str
|
||||
path: str
|
||||
type: Optional[str] = None
|
||||
size: Optional[int] = None
|
||||
content_type: Optional[str] = None
|
||||
metadata: Optional[dict] = None
|
||||
|
||||
# Schema for creating a new file
|
||||
class FileCreate(FileBase):
|
||||
pass
|
||||
|
||||
# Schema for updating a file
|
||||
class FileUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
type: Optional[str] = None
|
||||
path: Optional[str] = None
|
||||
class FileUpdate(FileBase):
|
||||
pass
|
||||
|
||||
# Schema for reading a file
|
||||
class File(FileBase):
|
||||
class FileInDB(FileBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
# Schema for deleting a file
|
||||
class FileDelete(BaseModel):
|
||||
id: int
|
||||
message: str
|
||||
|
||||
# Schema for listing files
|
||||
class FileList(BaseModel):
|
||||
files: List[File]
|
||||
files: List[FileInDB]
|
||||
total: int
|
||||
page: int
|
||||
limit: int
|
@@ -1,39 +1,41 @@
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from typing import Optional, List
|
||||
from typing import List, Optional
|
||||
from datetime import datetime
|
||||
from pydantic import BaseModel
|
||||
|
||||
# Base schema with common attributes
|
||||
class GameBase(BaseModel):
|
||||
name: str
|
||||
description: str
|
||||
image_url: str
|
||||
publisher: Optional[str] = None
|
||||
release_date: Optional[datetime] = None
|
||||
description: Optional[str] = None
|
||||
website: Optional[str] = None
|
||||
logo_url: Optional[str] = None
|
||||
status: Optional[str] = "active" # active, inactive, discontinued
|
||||
|
||||
# Schema for creating a new game
|
||||
class GameCreate(GameBase):
|
||||
pass
|
||||
|
||||
# Schema for updating a game
|
||||
class GameUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
description: Optional[str] = None
|
||||
image_url: Optional[str] = None
|
||||
class GameUpdate(GameBase):
|
||||
pass
|
||||
|
||||
# Schema for reading a game
|
||||
class Game(GameBase):
|
||||
class GameInDB(GameBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
boxes: List["Box"] = []
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
# Schema for deleting a game
|
||||
class GameDelete(BaseModel):
|
||||
id: int
|
||||
message: str
|
||||
|
||||
# Schema for listing games
|
||||
class GameList(BaseModel):
|
||||
games: List[Game]
|
||||
games: List[GameInDB]
|
||||
total: int
|
||||
page: int
|
||||
limit: int
|
Reference in New Issue
Block a user