feat: improved contingents api performance with db backed snapshots

This commit is contained in:
Björn Fromme committed 2026-08-20 11:46:03 +02:00
1 parent d5f9f4ef10
commit 351fbab498
20 files changed
+1521 -109

No files matched your search

@@ -0,0 +1,48 @@
<?php
declare(strict_types=1);
namespace App\Repository\Groups;
use App\Entity\Groups\Accommodation;
use App\Entity\Groups\ContingentSyncState;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<ContingentSyncState>
*/
class ContingentSyncStateRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, ContingentSyncState::class);
}
public function findOneByAccommodation(Accommodation $accommodation): ?ContingentSyncState
{
return $this->findOneBy(['accommodation' => $accommodation]);
}
/**
* Returns every sync state keyed by accommodation id, for the revisions endpoint.
*
* @return array<int, ContingentSyncState>
*/
public function findAllIndexedByAccommodationId(): array
{
$indexed = [];
foreach ($this->findAll() as $state) {
$accommodation = $state->getAccommodation();
if (null === $accommodation || null === $accommodation->getId()) {
continue;
}
$indexed[$accommodation->getId()] = $state;
}
return $indexed;
}
}