mirror of
https://github.com/mwisnowski/mtg_python_deckbuilder.git
synced 2025-12-17 08:00:13 +01:00
feat(preview): sampling, metrics, governance, server mana data
Preview endpoint + fast caches; curated pins + role quotas + rarity/overlap tuning; catalog+preview metrics; governance enforcement flags; server mana/color identity fields; docs/tests/scripts updated.
This commit is contained in:
parent
8f47dfbb81
commit
c4a7fc48ea
40 changed files with 6092 additions and 17312 deletions
30
code/web/models/theme_api.py
Normal file
30
code/web/models/theme_api.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import List, Optional
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class ThemeSummary(BaseModel):
|
||||
id: str
|
||||
theme: str
|
||||
primary_color: Optional[str] = None
|
||||
secondary_color: Optional[str] = None
|
||||
popularity_bucket: Optional[str] = None
|
||||
deck_archetype: Optional[str] = None
|
||||
description: Optional[str] = None
|
||||
synergies: List[str] = Field(default_factory=list)
|
||||
synergy_count: int = 0
|
||||
# Diagnostics-only fields (gated by flag)
|
||||
has_fallback_description: Optional[bool] = None
|
||||
editorial_quality: Optional[str] = None
|
||||
|
||||
|
||||
class ThemeDetail(ThemeSummary):
|
||||
curated_synergies: List[str] = Field(default_factory=list)
|
||||
enforced_synergies: List[str] = Field(default_factory=list)
|
||||
inferred_synergies: List[str] = Field(default_factory=list)
|
||||
example_commanders: List[str] = Field(default_factory=list)
|
||||
example_cards: List[str] = Field(default_factory=list)
|
||||
synergy_commanders: List[str] = Field(default_factory=list)
|
||||
# Diagnostics-only optional uncapped list
|
||||
uncapped_synergies: Optional[List[str]] = None
|
||||
Loading…
Add table
Add a link
Reference in a new issue