-
Notifications
You must be signed in to change notification settings - Fork 0
/
foodo-model-2.plantuml
96 lines (71 loc) · 1.76 KB
/
foodo-model-2.plantuml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
@startuml
scale 1.5
skinparam shadowing false
rectangle "Foodo System" as FoodoSystem <<context map>> {
rectangle "User Service" <<bounded context>> {
entity User <<entity>> {
username
password
}
entity Location <<value object>> {
long
lat
}
}
rectangle "Customer Service" as CutomerServiceFoodo <<bounded context>> {
entity Customer <<entity>> {}
}
rectangle "Delivery Service" as DeliveryServiceFoodo <<bounded context>> {
entity Driver <<entity>> {}
}
rectangle "Order Service" as OrderServiceFoodo <<bounded context>> {
entity Order <<entity>> {
delivery_price
meal_price
total_price
}
enum OrderStatus <<value object>> {
PENDING: Status
ACCEPTED: Status
IN PROGRESS: Status
COMPLETED: Status
CANCELLED: Status
}
}
rectangle "Payment Service" as PaymentServiceFoodo <<bounded context>> {
entity Card <<entity>> {
card_number
exp_date
cvv
}
}
rectangle "Restaurant Service" as RestaurantServiceFoodo <<bounded context>> {
entity RestaurantCatalog <<repository>> {}
entity Meal <<entity>> {
name
price
description
}
entity Menu <<entity>> {}
entity Restaurant <<entity>> {
name
}
}
Customer --|> User
Driver --|> User
Restaurant --|> User
User o-- Location
Meal --o Menu
Menu --o Restaurant
Order <-- Customer : create/pay
Order <-- Driver : get/complete
Order <-- Restaurant : get/prepare
OrderStatus --o Order
Meal --o Order
Customer o-- Card
RestaurantCatalog o-- Restaurant
Menu <-- Customer : query
RestaurantCatalog <-- Customer : query
Order o-- User
}
@enduml