34 lines
1.1 KiB
Markdown
34 lines
1.1 KiB
Markdown
```mermaid
|
|
flowchart TD
|
|
receiveTracking(["Receive Tracking"])
|
|
findContainerAndShipment["SELECT container JOIN Shipment"]
|
|
updateShipment[/Update shipment\]
|
|
isArrivingSoon{{"Is arrival estimate between now and now + 24h?"}}
|
|
hasArrived{{"Is arrival estimate <=now?"}}
|
|
isDelayed{{Is arrival estimate > original arrival + 24h?}}
|
|
sendNotification[/Send notification\]
|
|
|
|
|
|
receiveTracking -- "`
|
|
**Tracking data**
|
|
carrierName:**string**
|
|
destinationUnLoCode:**string**
|
|
departureDate:**string[_datetime_]**
|
|
arrivalDateEstimate:**string[_datetime_]**
|
|
containerNumber:**string**
|
|
`" --> findContainerAndShipment
|
|
findContainerAndShipment --> |WHERE containers.containerNumber = :trackingData.containerNumber| updateShipment
|
|
updateShipment --> isArrivingSoon & hasArrived & isDelayed
|
|
isDelayed -->|set delayed flag| sendNotification
|
|
hasArrived --> |set has arrived flag| sendNotification
|
|
isArrivingSoon -->|set is arriving soon flag| sendNotification
|
|
|
|
%% isArrivingSoon -->|yes| sendArriveSoon
|
|
```
|
|
|
|
```mermaid
|
|
flowchart
|
|
getShipments([Get all shipments])
|
|
|
|
```
|