Resolve VSN-2080 "Feature/migrate passenger references from ID to UUID & remove unused functions"
Feature: Migration of Passenger Identification from ID to UUID & Cleanup of Temporary Trip Generation
This merge request completes the migration of passenger identification from numeric IDs (Long) to UUIDs (String) across the circuit service, and removes deprecated temporary trip generation functionality. The changes ensure consistency with external services, improve data integrity, and clean up legacy debug code from the codebase.
Scope of Changes
Data Transfer Objects (DTOs)
- Removed
passengerId(Long) field fromAmendmentPassengerDTO, now exclusively usingpassengerUuid - Updated
AddPassengerToCircuitrequest: changedpassengersIds(List) topassengerUuids(List) - Removed
user_idfromPassengerDtoandDestinationDto, standardizing onuser_uuid - Updated
CircuitInfoDTOandAddPointRequestto use UUID-based passenger references -
Deleted
TripDataBuilder.java: Removed temporary/debug class containing hardcoded test data for trip generation
Repository Layer
- Refactored
AmendmentPassengerRepositoryqueries frompassengerIdtopassengerUuid:-
findFirstByPassengerIdOrderByStartDateDescCreatedAtDesc→findFirstByPassengerUuidOrderByStartDateDescCreatedAtDesc -
findByPassengerIdAndIsActiveTrue→findByPassengerUuidAndIsActiveTrue -
existsByPassengerIdAndIsActiveTrue→existsByPassengerUuidAndIsActiveTrue -
findByPassengerId→findByPassengerUuid -
findByPassengerIdAndPeriodOverlap→findByPassengerUuidAndPeriodOverlap
-
- Updated MongoDB query annotations to reference
passengerUuidfield
Service Layer
- Refactored
AmendmentPassengerServiceinterface methods:-
getAllAmendmentsByPassengerId→getAllAmendmentsByPassengerUuid -
getLastAmendmentByPassengerId→getLastAmendmentByPassengerUuid -
getActiveAmendmentByPassengerId→getActiveAmendmentByPassengerUuid -
getAmendmentByPassengerId→getAmendmentByPassengerUuid -
createAmendmentPassengers(List<Long>)→createAmendmentPassengers(List<String>) -
hasNoTripsForAutomaticAmendment(Long)→hasNoTripsForAutomaticAmendment(String)
-
- Added
getPassengersByUuids(List<String>)method inUserServicefor bulk UUID lookups - Updated
countPassengersWithPowerWheelchairto accept UUIDs instead of IDs -
Removed from
TripService:-
generateTripsTemp(String circuitId)- temporary trip generation method -
generateTrips(String circuitId)- associated trip generation method
-
Controller Layer
- Removed deprecated ID-based endpoints from
AmendmentPassengerController(7 endpoints removed) -
Removed from
TripController:-
GET /generate-trips-tmp/{circuitId}- temporary trip generation endpoint
-
- Retained and cleaned up UUID-based endpoints as the standard API
Path Constants
- Removed
GENERATE_TRIPS_TMPconstant fromTripPath.java
Mapper Updates
- Updated
AmendmentPassengerMapper,AmendmentCircuitMapper,CircuitMapperto handle UUID mappings - Refactored
TripMapper,TripRecalculatorMapper, andAmendmentToTripAlgoMapperfor UUID compatibility - Modified
TripDriverAssignmentMapperto work with passenger UUIDs
External API Integration
- Enhanced
UserServiceImplwith UUID-based passenger retrieval logic - Updated
TripAlgoServiceImplto pass passenger UUIDs to algorithm service
Key Benefits
- Consistency: Aligns passenger identification with external services using standardized UUIDs
- Data Integrity: UUIDs provide globally unique identification, reducing collision risks
- Simplified API: Removal of duplicate ID-based endpoints reduces API surface and maintenance burden
-
Code Cleanup: Removal of
TripDataBuilderand temporary endpoints eliminates debug/test code from production - Future-Proof: UUID-based architecture supports distributed systems and cross-service references
- Reduced Complexity: ~150 lines of code removed, cleaner codebase
Closes VSN-2080