swt23w23/src/main/asciidoc/models/design/seq_order.puml
2023-11-12 19:54:19 +01:00

79 lines
2.1 KiB
Plaintext

@startuml
participant Customer
participant OrderController
participant Cart
participant OrderManagement
participant Spring
participant "order1:CustomOrder" as order1
== Add products to an event ==
Customer --> OrderController : event(Model model)
activate Customer
activate OrderController
OrderController --> Cart : iterator()
activate Cart
OrderController <-- Cart : Iterator<CartItem>
deactivate Cart
OrderController --> Spring : model.addAttribute()
activate Spring
OrderController <-- Spring : Model
deactivate Spring
Customer <-- OrderController : "event.html"
deactivate OrderController
Customer --> OrderController : addProduct()
activate OrderController
OrderController --> Cart : addOrUpdateItem()
activate Cart
OrderController <-- Cart
deactivate Cart
OrderController --> Spring : model.addAttribute()
activate Spring
OrderController <-- Spring : Model
deactivate Spring
Customer <-- OrderController : "redirect:/event.html"
deactivate OrderController
deactivate Customer
== Checkout (finish event planning) ==
Customer --> OrderController : checkout()
activate Customer
activate OrderController
create order1
OrderController --> order1 : new Order()
activate order1
OrderController <-- order1 : Order
deactivate order1
OrderController --> Cart : addItemsTo(order1)
activate Cart
OrderController <-- Cart
deactivate Cart
OrderController --> OrderManagement : payOrder(order1)
activate OrderManagement
OrderController <-- OrderManagement
OrderController --> OrderManagement : completeOrder(order1)
OrderController <-- OrderManagement
deactivate OrderManagement
OrderController --> Cart : clear()
activate Cart
OrderController <-- Cart
deactivate Cart
Customer <-- OrderController : "redirect:/cart.html"
deactivate Customer
deactivate OrderController
== List orders ==
Customer --> OrderController : orders()
activate Customer
activate OrderController
OrderController --> OrderManagement : findAll()
activate OrderManagement
OrderController <-- OrderManagement : Page<CustomOrder>
deactivate OrderManagement
OrderController --> Spring : model.addAttribute()
activate Spring
OrderController <-- Spring : Model
deactivate Spring
Customer <-- OrderController : "orders.html"
@enduml