Private
Public Access
1
0

chg: usr: fine-tune the recent battle list #8
All checks were successful
Deploy to Production / deploy (push) Successful in 27s

This commit is contained in:
2026-04-21 13:57:44 +02:00
parent 69fce52bed
commit 1d8efa4e61
4 changed files with 22 additions and 7 deletions

View File

@@ -46,6 +46,7 @@ final readonly class ProfileGameDto implements JsonSerializable
public float $blueBonusPoints,
public array $redBonusStats,
public array $blueBonusStats,
public bool $bothRegistered,
) {
}

View File

@@ -61,7 +61,8 @@ final readonly class ProfileGameDtoFactory
redBonusPoints: $game->redBonusPoints ?? 0.0,
blueBonusPoints: $game->blueBonusPoints ?? 0.0,
redBonusStats: $game->redBonusStats ?? [],
blueBonusStats: $game->blueBonusStats ?? [],
blueBonusStats: $game->blueBonusStats ?? [],
bothRegistered: $game->red !== null && $game->blue !== null,
);
}
@@ -128,6 +129,7 @@ final readonly class ProfileGameDtoFactory
blueBonusPoints: $battle->blueBonusPoints,
redBonusStats: $battle->redBonusStats,
blueBonusStats: $battle->blueBonusStats,
bothRegistered: !$battle->oppIsGuest,
);
}

View File

@@ -40,9 +40,19 @@ class RecentBattleRepository extends ServiceEntityRepository
public function findRecentForUser(int $userId, int $limit = 30): array
{
return $this->createQueryBuilder('rb')
->where('rb.userId = :uid')
$qb = $this->createQueryBuilder('rb');
return $qb
->where($qb->expr()->eq('rb.userId', ':uid'))
->andWhere(
$qb->expr()->orX(
$qb->expr()->eq('rb.oppIsGuest', ':false'),
$qb->expr()->isNotNull('rb.redPoints'),
$qb->expr()->isNotNull('rb.bluePoints')
),
)
->setParameter('uid', $userId)
->setParameter('false', false)
->orderBy('rb.updated', 'DESC')
->setMaxResults($limit)
->getQuery()