36 lines
1001 B
Python
36 lines
1001 B
Python
"""
|
|
Deck Sources — Shared Models
|
|
═════════════════════════════
|
|
|
|
Common data models for template decks fetched from external sources.
|
|
"""
|
|
|
|
|
|
class TemplateDeckCard:
|
|
"""A single card in a template deck."""
|
|
__slots__ = ("name", "quantity")
|
|
|
|
def __init__(self, name: str, quantity: int = 1):
|
|
self.name = name
|
|
self.quantity = quantity
|
|
|
|
def to_dict(self) -> dict:
|
|
return {"name": self.name, "quantity": self.quantity}
|
|
|
|
|
|
class TemplateDeck:
|
|
"""A template deck fetched from an external source."""
|
|
__slots__ = ("name", "source", "cards")
|
|
|
|
def __init__(self, name: str, source: str, cards: list = None):
|
|
self.name = name
|
|
self.source = source
|
|
self.cards = cards or [] # list of TemplateDeckCard
|
|
|
|
def to_dict(self) -> dict:
|
|
return {
|
|
"name": self.name,
|
|
"source": self.source,
|
|
"cards": [c.to_dict() for c in self.cards],
|
|
}
|