Resolve VSN-2080 "Feature/migrate passenger references from ID to UUID"
Feature: Migration of Passenger Identification from ID to UUID
This merge request completes the frontend migration of passenger identification from numeric IDs (number) to UUIDs (string), aligning with backend changes. The changes ensure API consistency and improve data integrity across the application.
Scope of Changes
Types & Interfaces
- Replaced
passengerId(number) withpassengerUuid(string) inAmendmentPassengerDetails - Updated
IAddPoint:passengerId→passengerUuid - Updated
ScheduleTime:passengerIds: number[]→passengerUuids: string[] - Added
uuidfield toIPassengerListinterface - Updated
CircuitAssignmentRequestto usepassengerUuidsinstead ofpassengerIds
API Endpoints (circuit.ts)
-
getAmendmentByPassengerId(passengerId)→getAmendmentByPassengerUuid(passengerUuid)- Route:
/by-passengerId/{id}→/by-passenger-uuid/{uuid}
- Route:
-
areTripsAlreadyGeneratedForAmendmentnow usespassengerUuidin path
Store Layer
- Refactored
amendmentPassengerStoremethods:-
getAmendmentByPassengerId(passengerId: number)→getAmendmentByPassengerUuid(passengerUuid: string) -
getInitialAmendmentByPassengerId(passengerId: number)→getInitialAmendmentByPassengerId(passengerUuid: string) -
areTripsAlreadyGeneratedForAmendment(passengerId: string)→areTripsAlreadyGeneratedForAmendment(passengerUuid: string)
-
- Refactored
passengerscircuitStoremethods:-
cancelCircuitAssignmentForRepresentatives(passengerIds: number[])→cancelCircuitAssignmentForRepresentatives(passengerUuids: string[]) -
removePassengerFromCircuit({ passengerId: number })→removePassengerFromCircuit({ passengerUuid: string })
-
Component Layer
- circuit-usager.tsx: Refactored for UUID-based passenger selection, deletion, and amendment handling
-
week-schedule-table.tsx: Updated
ScheduleTimeinterface and color dot rendering to usepassengerUuids -
circuit-schedules-table.tsx: Updated passenger schedule mapping with
passengerUuid -
usager-details-dialog.tsx: Now calls
getAmendmentByPassengerUuid()instead ofgetAmendmentByPassengerId() - userSelector.tsx: Updated passenger selection logic for UUID handling
Utility Functions
-
passenger-color-generator.ts: Refactored
generatePassengerColor(passengerId: number)→generatePassengerColor(passengerUuid: string)using FNV-1a hash on string characters -
trajet-details.helpers.ts: Updated helper functions to match passengers by UUID:
-
getTripTimeForPassenger(): UsespassengerUuidfor matching -
extractUniquePassengers(): Returnsuuidinstead ofid -
getObservationSchedulesForPassenger(): AcceptspassengerUuidparameter
-
Mock Data
- Updated
_avenantUsager.ts:passengerId: 0→passengerUuid: '' - Updated
_trajets.ts:passengerId: ''→passengerUuid: '' - Updated
_usagers.ts: Addeduuid: ''toINITIAL_USAGER_DATA
Closes VSN-2080