Skip to content

Resolve VSN-2080 "Feature/migrate passenger references from ID to UUID"

Oussama Toumi a demandé de fusionner feature/VSN-2080 vers develop

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) with passengerUuid (string) in AmendmentPassengerDetails
  • Updated IAddPoint: passengerIdpassengerUuid
  • Updated ScheduleTime: passengerIds: number[]passengerUuids: string[]
  • Added uuid field to IPassengerList interface
  • Updated CircuitAssignmentRequest to use passengerUuids instead of passengerIds

API Endpoints (circuit.ts)

  • getAmendmentByPassengerId(passengerId)getAmendmentByPassengerUuid(passengerUuid)
    • Route: /by-passengerId/{id}/by-passenger-uuid/{uuid}
  • areTripsAlreadyGeneratedForAmendment now uses passengerUuid in path

Store Layer

  • Refactored amendmentPassengerStore methods:
    • getAmendmentByPassengerId(passengerId: number)getAmendmentByPassengerUuid(passengerUuid: string)
    • getInitialAmendmentByPassengerId(passengerId: number)getInitialAmendmentByPassengerId(passengerUuid: string)
    • areTripsAlreadyGeneratedForAmendment(passengerId: string)areTripsAlreadyGeneratedForAmendment(passengerUuid: string)
  • Refactored passengerscircuitStore methods:
    • 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 ScheduleTime interface and color dot rendering to use passengerUuids
  • circuit-schedules-table.tsx: Updated passenger schedule mapping with passengerUuid
  • usager-details-dialog.tsx: Now calls getAmendmentByPassengerUuid() instead of getAmendmentByPassengerId()
  • 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(): Uses passengerUuid for matching
    • extractUniquePassengers(): Returns uuid instead of id
    • getObservationSchedulesForPassenger(): Accepts passengerUuid parameter

Mock Data

  • Updated _avenantUsager.ts: passengerId: 0passengerUuid: ''
  • Updated _trajets.ts: passengerId: ''passengerUuid: ''
  • Updated _usagers.ts: Added uuid: '' to INITIAL_USAGER_DATA

Closes VSN-2080

Rapports de requête de fusion