mirror of
https://github.com/st-tu-dresden-praktikum/swt23w23
synced 2024-06-30 18:03:42 +02:00
75 lines
2.4 KiB
Plaintext
75 lines
2.4 KiB
Plaintext
@startuml
|
|
skinparam linetype ortho
|
|
skinparam groupInheritance 2
|
|
|
|
package Spring {
|
|
interface Model
|
|
class Sort
|
|
}
|
|
|
|
package Salespoint {
|
|
'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 Inventory << T > InventoryItem >>
|
|
class Product {
|
|
+ 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 {
|
|
interface CateringCatalog {
|
|
+ DEFAULT_SORT : Sort
|
|
}
|
|
CateringCatalog --o CatalogController : "-catalog"
|
|
CateringCatalog ..> Catalog : "<bind> <T->Product"
|
|
|
|
class CatalogController {
|
|
+ CatalogController()
|
|
+ CatalogByEventategory(model : Model, form : Form) : String
|
|
}
|
|
CatalogController --> Inventory : "- inventory"
|
|
CatalogController ..> Model : "use"
|
|
CatalogController .> CatalogForm : "use"
|
|
|
|
class CatalogForm {
|
|
- query
|
|
+ getQuery() : String
|
|
}
|
|
|
|
class Consumable {
|
|
- wholesalePrice : javax.money.MonetaryAmount
|
|
- retailPrice : javax.money.MonetaryAmount
|
|
- promotionPrice : javax.money.MonetaryAmount
|
|
+ getWholesalePrice() : javax.money.MonetaryAmount
|
|
+ getPrice() : javax.money.MonetaryAmount
|
|
}
|
|
Consumable --|> Product
|
|
|
|
class Rentable {
|
|
- pricePerHour : javax.money.MonetaryAmount
|
|
- Events : Streamable<Event>
|
|
+ getPrice() : javax.money.MonetaryAmount
|
|
|
|
}
|
|
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 |