Update catalog.puml

This commit is contained in:
Theo Reichert 2023-11-09 09:01:25 +01:00 committed by Simon Bruder
parent 40f594ab66
commit 9ae84d47ee
Signed by: simon
GPG key ID: 8D3C82F9F309F8EC
2 changed files with 39 additions and 15 deletions

View file

@ -8,44 +8,68 @@ package Spring {
} }
package Salespoint { package Salespoint {
interface Catalog << T > Product >> 'https://st.inf.tu-dresden.de/SalesPoint/api//org/salespointframework/catalog/Catalog.html'
interface Catalog << T > Product >> {
findByAnyCategory(categories : String) : Streamable<Product>
findByAllCategories(categories : String) : Streamable<Product>
}
interface DataInitializer interface DataInitializer
interface Inventory << T > InventoryItem >> interface Inventory << T > InventoryItem >>
class Product class Product {
class Quantity + Product(name : String, price : javax.money.MonetaryAmount, [Metric : metric])
+ getID() : Product.Identifier
'+ addCategory(category : String) : boolean' #TODO: for class Inventory
'+ removeCategory(category : String) : boolean' #TODO: for class Inventory
'+ supports(quantity : Quantity) : boolean' #TODO: for class Cart
+ getCategories() : Streamable<String>
+ getName() : String
+ getPrice() : @NonNull javax.money.MonetaryAmount
}
class Quantity {
+ getAmount() : @NotNull BigDecimal
}
} }
package catering.catalog { package catering.catalog {
interface CateringCatalog { interface CateringCatalog {
+ DEFAULT_SORT : Sort + DEFAULT_SORT : Sort
+ findByType(type, sort : Sort) : Iterable
+ findByEventType(type) : Iterable
} }
CateringCatalog --o CatalogController : "-catalog" CateringCatalog --o CatalogController : "-catalog"
CateringCatalog ..> Catalog : "<bind> <T->Product" CateringCatalog ..> Catalog : "<bind> <T->Product"
class CatalogController { class CatalogController {
+ CatalogController() + CatalogController()
+ eventcateringCatalog(model : Model) : String + CatalogByEventategory(model : Model, form : Form) : String
+ partyserviceCatalog(model : Model) : String
+ mobilebreakfast(model : Model) : String
+ rentacookCatalog(model : Model) : String
} }
CatalogController --> Inventory : "- inventory" CatalogController --> Inventory : "- inventory"
CatalogController ..> Model : "use" CatalogController ..> Model : "use"
CatalogController .> CatalogForm : "use"
class CatalogForm {
- query
+ getQuery() : String
}
class Consumable { class Consumable {
wholesalePrice - wholesalePrice : javax.money.MonetaryAmount
retailPrice - retailPrice : javax.money.MonetaryAmount
promotionPrice [0..1] - promotionPrice : javax.money.MonetaryAmount
+ getWholesalePrice() : javax.money.MonetaryAmount
+ getPrice() : javax.money.MonetaryAmount
} }
Consumable --|> Product Consumable --|> Product
class Rentable { class Rentable {
pricePerHour - pricePerHour : javax.money.MonetaryAmount
- Events : Streamable<Event>
+ getPrice() : javax.money.MonetaryAmount
} }
Rentable --|> Product Rentable --|> Product
} }
'#TODO: to determine which Products of a Category to offer I need to retrieve information about availability of e.g. Cooks and ServicePersonel from the Users or Rentables from the Inventory'
@enduml @enduml

Binary file not shown.