From 5eaf97d8db8ac8155a8df1cf5f7a95e6af01f6d2 Mon Sep 17 00:00:00 2001 From: Erik Hohlfeld Date: Thu, 16 Nov 2023 18:28:09 +0100 Subject: [PATCH] Update order design to match prototype Add orderCatalog.puml UML-diagram. Split up the order and orderCatalog UML-diagrams to reduce the size. Updated the developer_documentation.adoc. --- .../asciidoc/developer_documentation.adoc | 12 ++++ src/main/asciidoc/models/design/order.puml | 9 +-- src/main/asciidoc/models/design/order.svg | 4 +- .../asciidoc/models/design/orderCatalog.puml | 64 +++++++++++++++++++ .../asciidoc/models/design/orderCatalog.svg | 3 + 5 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 src/main/asciidoc/models/design/orderCatalog.puml create mode 100644 src/main/asciidoc/models/design/orderCatalog.svg diff --git a/src/main/asciidoc/developer_documentation.adoc b/src/main/asciidoc/developer_documentation.adoc index 3e46583..78ded32 100644 --- a/src/main/asciidoc/developer_documentation.adoc +++ b/src/main/asciidoc/developer_documentation.adoc @@ -249,6 +249,18 @@ image:models/design/inventory.svg[class design diagram - Inventory] |InventoryMutateForm |An class to validate the user input of the edit/add form |=== +=== OrderCatalog + +image:models/design/orderCatalog.svg[class design diagram - OrderCatalog] + +[options="header"] +|=== +|Class/Enumeration |Description +|OrderCatalogController |A Spring MVC Controller to handle the event catalog +|OrderCatalogEntry |A class to save an event pack created by the administrator +|OrderCatalogEntryRepository |A repository to save all event packs in the form of OrderCatalogEntry +|=== + === Order image:models/design/order.svg[class design diagram - Order] diff --git a/src/main/asciidoc/models/design/order.puml b/src/main/asciidoc/models/design/order.puml index a04f1e8..7107790 100644 --- a/src/main/asciidoc/models/design/order.puml +++ b/src/main/asciidoc/models/design/order.puml @@ -27,7 +27,7 @@ package catering.order { - finish : LocalDateTime } - enum OrderType { + enum EventType { EVENT_CATERING RENT_A_COOK BREAKFAST_SERVICE @@ -57,15 +57,16 @@ package catering.order { OrderController ...> Cash OrderController ...> Quantity OrderController ...> CustomOrder - CustomOrder o--- "1" OrderType : -orderType + CustomOrder o--- "1" EventType : -eventType OrderController ...> ProductForm - N1 ..> OrderType + N1 ..> EventType } OrderController ...> Salespoint.Product -CustomOrder ---|> Salespoint.Order +CustomOrder --|> Salespoint.Order CustomOrder ...> time.LocalDateTime CustomOrder ...> time.DateTimeFormatter +OrderController .....> catering.orderCatalog.OrderCatalogEntry package time { class LocalDateTime diff --git a/src/main/asciidoc/models/design/order.svg b/src/main/asciidoc/models/design/order.svg index 02a34ea..7b43d2d 100644 --- a/src/main/asciidoc/models/design/order.svg +++ b/src/main/asciidoc/models/design/order.svg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:68c60236ab92da9ad345415e81acde6bb95e350670adb698103b7de2e83de2cb -size 33384 +oid sha256:4d5942dc47a595446ca7779f16d44cc1eaeeef2a0fff408342fdcdc8323112b0 +size 41219 diff --git a/src/main/asciidoc/models/design/orderCatalog.puml b/src/main/asciidoc/models/design/orderCatalog.puml new file mode 100644 index 0000000..bfb6dd4 --- /dev/null +++ b/src/main/asciidoc/models/design/orderCatalog.puml @@ -0,0 +1,64 @@ +@startuml +skinparam linetype ortho +skinparam groupInheritance 2 + +package Spring { + interface Model +} + +package Salespoint { + class Cash + class Quantity + class UserAccount + class Product +} + +package catering.order { + enum EventType +} + +package catering.orderCatalog { + class OrderCatalogController { + + OrderCatalogController() + + catalog(model : Model) : String + + configureCatalog(model : Model) : String + + catalogAdd(eventType : OrderCatalogEntry.EventType, minimumTimePeriod : int, totalCost : int, model : Model) : String + + removeEntry(catalogEntryID : int) : String + + addProduct(name : String, amount : int, cost : double) : String + + removeProduct(id : String, model : Model) : String + + addTime(minimumTimePeriod : int, eventType : OrderCatalogEntry.EventType, products : Collection, model : Model) : String + + chooseEvent(events : String) : String + } + + class OrderCatalogEntry { + + OrderCatalogEntry() + + getId() : int + + getEventType() : EventType + + getProducts() : Collection + + getMinimumTimePeriod() : int + + getTotalCost() : int + + setEventType(eventType : EventType) : void + + setMinimumTimePeriod(timePeriod : int) : void + + setTotalCost(totalCost : int) : void + + addProduct(name : String, count : Integer) : void + } + + class OrderCatalogEntryRepository { + + OrderCatalogEntryRepository() + + addCatalogEntry(catalogEntry : OrderCatalogEntry) : boolean + + removeCatalogEntry(catalogEntryID : int) : boolean + + getCatalogEntries() : Set + } +} + +OrderCatalogEntryRepository o---> OrderCatalogEntry +OrderCatalogController ...> OrderCatalogEntryRepository +OrderCatalogEntryRepository --|> Spring.CrudRepository +OrderCatalogController ...> Salespoint.Product +OrderCatalogController ..> Spring.Model +OrderCatalogController ...> Salespoint.Cash +OrderCatalogController ...> Salespoint.Quantity +OrderCatalogController ...> Salespoint.UserAccount +OrderCatalogEntry ...> catering.order.EventType + +@enduml diff --git a/src/main/asciidoc/models/design/orderCatalog.svg b/src/main/asciidoc/models/design/orderCatalog.svg new file mode 100644 index 0000000..009523a --- /dev/null +++ b/src/main/asciidoc/models/design/orderCatalog.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2dace369c8be4fd6a459e842fd08083aa0547aac6b80ac6deb0d84a11ad5550 +size 30477