Adding card variant support

This commit is contained in:
Cal Corum 2025-07-22 09:26:23 -05:00
parent adaa8206c8
commit b20d0cdf88
2 changed files with 13 additions and 5 deletions

2
.gitignore vendored
View File

@ -59,3 +59,5 @@ pyvenv.cfg
docker-compose* docker-compose*
*.db *.db
venv venv
.claude/
CLAUDE.md

View File

@ -24,6 +24,7 @@ class CardPydantic(pydantic.BaseModel):
team_id: int team_id: int
pack_id: int pack_id: int
value: Optional[int] = 0 value: Optional[int] = 0
variant: Optional[int] = 0
class CardModel(pydantic.BaseModel): class CardModel(pydantic.BaseModel):
@ -33,7 +34,7 @@ class CardModel(pydantic.BaseModel):
@router.get('') @router.get('')
async def get_cards( async def get_cards(
player_id: Optional[int] = None, team_id: Optional[int] = None, pack_id: Optional[int] = None, player_id: Optional[int] = None, team_id: Optional[int] = None, pack_id: Optional[int] = None,
value: Optional[int] = None, min_value: Optional[int] = None, max_value: Optional[int] = None, value: Optional[int] = None, min_value: Optional[int] = None, max_value: Optional[int] = None, variant: Optional[int] = None,
order_by: Optional[str] = None, limit: Optional[int] = None, dupes: Optional[bool] = None, order_by: Optional[str] = None, limit: Optional[int] = None, dupes: Optional[bool] = None,
csv: Optional[bool] = None): csv: Optional[bool] = None):
all_cards = Card.select() all_cards = Card.select()
@ -65,6 +66,8 @@ async def get_cards(
all_cards = all_cards.where(Card.pack == this_pack) all_cards = all_cards.where(Card.pack == this_pack)
if value is not None: if value is not None:
all_cards = all_cards.where(Card.value == value) all_cards = all_cards.where(Card.value == value)
# if variant is not None:
# all_cards = all_cards.where(Card.variant == variant)
if min_value is not None: if min_value is not None:
all_cards = all_cards.where(Card.value >= min_value) all_cards = all_cards.where(Card.value >= min_value)
if max_value is not None: if max_value is not None:
@ -93,12 +96,12 @@ async def get_cards(
# raise HTTPException(status_code=404, detail=f'No cards found') # raise HTTPException(status_code=404, detail=f'No cards found')
if csv: if csv:
data_list = [['id', 'player', 'cardset', 'rarity', 'team', 'pack', 'value']] data_list = [['id', 'player', 'cardset', 'rarity', 'team', 'pack', 'value']] #, 'variant']]
for line in all_cards: for line in all_cards:
data_list.append( data_list.append(
[ [
line.id, line.player.p_name, line.player.cardset, line.player.rarity, line.team.abbrev, line.pack, line.id, line.player.p_name, line.player.cardset, line.player.rarity, line.team.abbrev, line.pack,
line.value line.value, # line.variant
] ]
) )
return_val = DataFrame(data_list).to_csv(header=False, index=False) return_val = DataFrame(data_list).to_csv(header=False, index=False)
@ -177,7 +180,8 @@ async def v1_cards_post(cards: CardModel, token: str = Depends(oauth2_scheme)):
player_id=x.player_id, player_id=x.player_id,
team_id=x.team_id, team_id=x.team_id,
pack_id=x.pack_id, pack_id=x.pack_id,
value=x.value value=x.value,
# variant=x.variant
) )
if inc_dex: if inc_dex:
Paperdex.get_or_create(team_id=x.team_id, player_id=x.player_id) Paperdex.get_or_create(team_id=x.team_id, player_id=x.player_id)
@ -287,7 +291,7 @@ async def v1_cards_wipe_team(team_id: int, token: str = Depends(oauth2_scheme)):
@router.patch('/{card_id}') @router.patch('/{card_id}')
async def v1_cards_patch( async def v1_cards_patch(
card_id, player_id: Optional[int] = None, team_id: Optional[int] = None, pack_id: Optional[int] = None, card_id, player_id: Optional[int] = None, team_id: Optional[int] = None, pack_id: Optional[int] = None,
value: Optional[int] = None, roster1_id: Optional[int] = None, roster2_id: Optional[int] = None, value: Optional[int] = None, variant: Optional[int] = None, roster1_id: Optional[int] = None, roster2_id: Optional[int] = None,
roster3_id: Optional[int] = None, token: str = Depends(oauth2_scheme)): roster3_id: Optional[int] = None, token: str = Depends(oauth2_scheme)):
if not valid_token(token): if not valid_token(token):
logging.warning(f'Bad Token: {token}') logging.warning(f'Bad Token: {token}')
@ -313,6 +317,8 @@ async def v1_cards_patch(
this_card.pack_id = pack_id this_card.pack_id = pack_id
if value is not None: if value is not None:
this_card.value = value this_card.value = value
# if variant is not None:
# this_card.variant = variant
if roster1_id is not None: if roster1_id is not None:
this_card.roster1_id = roster1_id this_card.roster1_id = roster1_id
if roster2_id is not None: if roster2_id is not None: