Diagrammes de Séquence
Création d'un Voyage
sequenceDiagram
participant Client
participant TripsController
participant TripsService
participant CommonServices
participant PartnersAPI
participant Database
Client->>TripsController: POST /trips (Trip)
TripsController->>TripsService: addTrip(Trip)
TripsService->>PartnersAPI: checkEstablishment(establishmentId)
PartnersAPI-->>TripsService: EstablishmentRepresentation
TripsService->>TripsService: generateUniqueReference()
TripsService->>Database: save(TripEntity)
Database-->>TripsService: TripEntity
TripsService-->>TripsController: TripRepresentation
TripsController-->>Client: HTTP 201 Created
Réservation d'un Voyage
sequenceDiagram
participant Client
participant ReservationController
participant ReservationService
participant CommonServices
participant PricingTools
participant Database
Client->>ReservationController: POST /reservations
ReservationController->>CommonServices: checkClient(clients)
ReservationController->>ReservationService: addTripReservation(Lead)
ReservationService->>CommonServices: checkPublishedTripPublication()
ReservationService->>PricingTools: calculatePricing()
ReservationService->>Database: save(ReservationEntity)
Database-->>ReservationService: ReservationEntity
ReservationService-->>ReservationController: ReservationRepresentation
ReservationController-->>Client: HTTP 201 Created
Publication d'un Voyage
sequenceDiagram
participant Client
participant PublicationController
participant PublicationService
participant CommonServices
participant Database
Client->>PublicationController: POST /publications
PublicationController->>PublicationService: addTripPublication(Publication)
PublicationService->>CommonServices: getTripById(tripId)
CommonServices->>Database: findById(tripId)
Database-->>CommonServices: TripEntity
PublicationService->>Database: save(PublicationEntity)
Database-->>PublicationService: PublicationEntity
PublicationService-->>PublicationController: PublicationRepresentation
PublicationController-->>Client: HTTP 201 Created
Mise à Jour d'une Réservation
sequenceDiagram
participant Client
participant ReservationController
participant ReservationService
participant CommonServices
participant Database
Client->>ReservationController: PUT /reservations/{id}
ReservationController->>CommonServices: checkTripReservation(id)
CommonServices->>Database: findById(id)
Database-->>CommonServices: ReservationEntity
ReservationController->>ReservationService: updateTripReservation()
ReservationService->>Database: save(ReservationEntity)
Database-->>ReservationService: ReservationEntity
ReservationService-->>ReservationController: ReservationRepresentation
ReservationController-->>Client: HTTP 200 OK
Calcul de Prix
sequenceDiagram
participant Client
participant PricingController
participant PricingService
participant CommonServices
participant PricingTools
Client->>PricingController: POST /pricing
PricingController->>CommonServices: checkClient(clients)
PricingController->>PricingService: getTripPricing(Lead)
PricingService->>CommonServices: checkPublishedTripPublication()
PricingService->>PricingTools: calculatePricing()
PricingTools-->>PricingService: PricingDetails
PricingService-->>PricingController: PricingDetails
PricingController-->>Client: HTTP 200 OK