import logging from collections.abc import Sequence import abc import fin_defs from typing import Any import dataclasses 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