Skip to content

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