Source code for pytenno.models.orders

from dataclasses import dataclass
from datetime import datetime

from pytenno.utils import _from_data

from .enums import OrderType, Platform
from .items import ItemInOrder
from .users import UserShort


[docs]@dataclass(kw_only=True) class OrderCommon: """Common base class that orders inherit from.""" id: str """The ID of the order.""" platinum: int """The amount of platinum per item in the order.""" quantity: int """How many items the user is selling / buying.""" order_type: OrderType """The type of order.""" platform: Platform """The platform the order is on.""" region: str """The region the order is on.""" creation_date: datetime """The time the order was created.""" last_update: datetime """The time the order was last updated.""" visible: bool """Whether the order is visible to others. In this case, always True.""" mod_rank: int | None = None """The mod rank of the order's item. Default is ``None``, meaning not applicable."""
[docs]@dataclass(kw_only=True) class OrderCreated(OrderCommon): """Represents an Order after it has been passed to the API and is now created.""" item: ItemInOrder """The item in the order.""" def _from_data(data: dict): return OrderCreated( item=_from_data(ItemInOrder, data.pop("item")), )
[docs]@dataclass(kw_only=True) class OrderRow(OrderCommon): """Same as OrderCommon, but with a full user model.""" user: UserShort """The user who made the order.""" def _from_data(node: dict): return OrderRow( user=UserShort(**node.pop("user")), **node, ) def __repr__(self) -> str: return f"<OrderRow id={self.id} user={self.user.ingame_name}>"
[docs]@dataclass(kw_only=True) class OrderFull(OrderRow): """Same as OrderRow, but with a full item model.""" item: ItemInOrder """The item in the order."""