feat(events): add competitor number (bib) support

Allow participants to set their bib/competitor number per event.
Display as badge next to username in participant lists.

- Add competitorNumber field to EventParticipant model
- Add PUT /events/:slug/competitor-number endpoint
- Include competitorNumber in heats/me and heats/all responses
- Add input field in HeatsBanner component
- Display badge in UserListItem component
- Add unit tests for competitor number feature
This commit is contained in:
Radosław Gierwiało
2025-11-23 17:55:25 +01:00
parent a2279662dc
commit edf68f2489
9 changed files with 323 additions and 10 deletions

View File

@@ -292,7 +292,8 @@ export const heatsAPI = {
async getMyHeats(slug) {
const data = await fetchAPI(`/events/${slug}/heats/me`);
return data.data;
// Returns { data: heats[], competitorNumber: number|null }
return data;
},
async getAllHeats(slug) {
@@ -306,6 +307,14 @@ export const heatsAPI = {
});
return data;
},
async setCompetitorNumber(slug, competitorNumber) {
const data = await fetchAPI(`/events/${slug}/competitor-number`, {
method: 'PUT',
body: JSON.stringify({ competitorNumber }),
});
return data;
},
};
// Matches API (Phase 2)