857d456b95
* EventBrowsingService.BuildListAsync issued one snapshot query per event on every page render — N+1 against SQLite, with each round-trip hauling the full bet graph via Include(Bets). Replaced with a single ISnapshotRepository.ListByEventsAsync batch. * ListKnownSportCodesAsync / ListKnownCountryCodesAsync used to materialise every Event row to compute Distinct() in memory. Pushed to EF projection via two new IEventRepository methods (ListDistinctSportCodesAsync, ListDistinctCountryCodesAsync) implemented as .Select(...).Distinct().ToListAsync — single SELECT DISTINCT.