uml_code
uml_code
class Customer {
- address : String
+ placeOrder()
+ rateDish(dish: Dish, rating: int)
+ rateBranch(branch: Branch, rating: int)
}
class Chef {
+ prepareDish(order: Order)
}
class DeliveryStaff {
+ deliverOrder(order: Order)
}
class Manager {
+ manageBranch(branch: Branch)
}
class Order {
- orderId : String
- orderDate : Date
- status : OrderStatus
- totalPrice : double
+ updateStatus(status: OrderStatus)
+ calculateTotal()
}
class Dish {
- dishId : String
- name : String
- price : double
+ prepare()
}
class Category {
- categoryId : String
- name : String
}
class Branch {
- branchId : String
- location : String
+ getMenu()
+ addEmployee(emp: Employee)
+ addEquipment(equip: Equipment)
+ addTable(table: Table)
}
class Equipment {
- equipmentId : String
- type : String
}
class Table {
- tableId : String
- capacity : int
}
class DishPromotion {
- dish : Dish
+ applyDiscount(order: Order)
}
class OrderPromotion {
+ applyDiscount(order: Order)
}
interface PaymentMethod {
+ pay(amount: double)
}
class CashPayment {
+ pay(amount: double)
}
class CardPayment {
- cardNumber : String
+ pay(amount: double)
}
' Inheritance
User <|-- Customer
User <|-- Employee
Employee <|-- Chef
Employee <|-- DeliveryStaff
Employee <|-- Manager
Promotion <|-- DishPromotion
Promotion <|-- OrderPromotion
PaymentMethod <|.. CashPayment
PaymentMethod <|.. CardPayment
' Associations
Branch "1" o-- "*" Employee
Branch "1" o-- "*" Equipment
Branch "1" o-- "*" Table
Order "*" --> "1" Customer
Order "*" --> "*" Dish
Dish "*" --> "1" Category
@enduml