28 lines
727 B
Python
28 lines
727 B
Python
import logging
|
|
from collections.abc import Sequence
|
|
import abc
|
|
import fin_defs
|
|
from typing import Any
|
|
import dataclasses
|
|
|
|
from . import common
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
@dataclasses.dataclass(frozen=True)
|
|
class WishlistItem:
|
|
"""A single wishlished product."""
|
|
|
|
product_name: str # Name of the game/product
|
|
reference_url: str # URL to a reference page for the item.
|
|
image_url: str | None = None # URL to the product image
|
|
console_name: str | None = None # Gaming platform/console name
|
|
reference_price: fin_defs.AssetAmount | None = None # Reference price, if any
|
|
|
|
|
|
class WishlistClient(abc.ABC):
|
|
|
|
@abc.abstractmethod
|
|
def get_wishlist(self) -> Sequence[WishlistItem]:
|
|
pass
|