fix gpt
This commit is contained in:
@ -92,6 +92,51 @@ class CardRepository(BaseRepository[UserCard]):
|
||||
obtained_at=card.obtained_at
|
||||
)
|
||||
self.session.add(registry)
|
||||
|
||||
async def get_total_card_count(self) -> int:
|
||||
"""Get total number of cards obtained"""
|
||||
result = await self.session.execute(
|
||||
select(func.count(UserCard.id))
|
||||
)
|
||||
return result.scalar() or 0
|
||||
|
||||
async def get_cards_by_rarity(self) -> dict:
|
||||
"""Get card count by rarity"""
|
||||
result = await self.session.execute(
|
||||
select(UserCard.status, func.count(UserCard.id))
|
||||
.group_by(UserCard.status)
|
||||
)
|
||||
|
||||
cards_by_rarity = {}
|
||||
for status, count in result.all():
|
||||
cards_by_rarity[status.value if hasattr(status, 'value') else str(status)] = count
|
||||
|
||||
return cards_by_rarity
|
||||
|
||||
async def get_recent_cards(self, limit: int = 10) -> List[dict]:
|
||||
"""Get recent card activities"""
|
||||
result = await self.session.execute(
|
||||
select(
|
||||
UserCard.card_id,
|
||||
UserCard.status,
|
||||
UserCard.obtained_at,
|
||||
User.did.label('owner_did')
|
||||
)
|
||||
.join(User, UserCard.user_id == User.id)
|
||||
.order_by(UserCard.obtained_at.desc())
|
||||
.limit(limit)
|
||||
)
|
||||
|
||||
activities = []
|
||||
for row in result.all():
|
||||
activities.append({
|
||||
'card_id': row.card_id,
|
||||
'status': row.status.value if hasattr(row.status, 'value') else str(row.status),
|
||||
'obtained_at': row.obtained_at,
|
||||
'owner_did': row.owner_did
|
||||
})
|
||||
|
||||
return activities
|
||||
|
||||
|
||||
class UniqueCardRepository(BaseRepository[UniqueCardRegistry]):
|
||||
|
Reference in New Issue
Block a user