@startuml

actor User as u
collections Cart as c
database CartStorage as cs
collections ProductService as p

u -> c : POST /user/<user_id>/cart/<sku_id>\n\t- count
activate c

c -> p : GET /product/<sku>
activate p
  p -> c : \nResponse: 200 OK\n\t- name\n\t- price\n\t- sku
deactivate p
c -> c : validate product exists
c -> cs : cart.AddItem()
c -> u : Response: 200 OK

deactivate c

@enduml
