@startuml 'maybe for mathis kral since he did videoshop:order-limit' 'maybe for eren since he did videoshop:clickable-cart-item' 'maybe for erik since he did videoshop:cart-remove' skinparam linetype ortho skinparam groupInheritance 2 package Spring { interface Model } package Salespoint { interface OrderManager <<"T > Order">> class Cart class Cash class Order class Quantity class UserAccount enum OrderStatus } package catering.catalog { class Consumable class Rentable class MultiProduct { + getPrice() } class customProduct class Employee { + getMaxHours() + getSalaryPerHour() } note "this could work" as myNote MultiProduct --|> Salespoint.Product MultiProduct "1" o-- "*" customProduct customProduct ..> Consumable customProduct ..> Rentable customProduct ..> Employee myNote .- Employee } package catering.order { class OrderController { + OrderController() + initializeCart() : Cart + addProduct(product : Product, amount : int, cart: Cart) + buy(cart : Cart, userAccount : UserAccount) : String + orders(model : Model) : String } OrderController --> OrderManager : "-orderManager" OrderController ..> Model OrderController ..> UserAccount OrderController ..> Order OrderController ..> OrderStatus OrderController ..> Cash OrderController ..> Quantity OrderController ..> Cart OrderController ..> catering.catalog.multiProduct } @enduml