1. Customer
Attributes:
- customerId: String
- name: String
- phoneNumber: String
- address: String
Methods:
- placeOrder()
- trackOrder()
- cancelOrder()
2. Order
Attributes:
- orderId: String
- customer: Customer
- orderItems: List<Pizza>
- totalAmount: double
- orderStatus: String
- paymentStatus: String
- timestamp: Date
Methods:
- calculateTotal()
- updateStatus()
- assignDelivery()
3. Pizza
Attributes:
- pizzaId: String
- size: String
- crustType: String
- toppings: List<Topping>
- basePrice: double
Methods:
- calculatePrice()
4. Topping
Attributes:
- name: String
- price: double
5. Payment
Attributes:
- paymentId: String
- order: Order
- amount: double
- paymentMode: String
- paymentDate: Date
- status: String
Methods:
- processPayment()
- refundPayment()
6. Inventory
Attributes:
- itemId: String
- itemName: String
- quantityAvailable: int
Methods:
- updateStock()
- checkAvailability()
7. KitchenStaff
Attributes:
- staffId: String
- name: String
Methods:
- receiveOrder()
- updateOrderStatus()
8. DeliveryExecutive
Attributes:
- deliveryId: String
- name: String
- phone: String
Methods:
- pickOrder()
- updateDeliveryStatus()
Relationships:
- Customer places Order → 1-to-many
- Order has Pizza → 1-to-many
- Pizza includes Topping → many-to-many
- Order has Payment → 1-to-1
- KitchenStaff prepares Order → many-to-many (via assignments)
- DeliveryExecutive delivers Order → 1-to-1
- Inventory tracks Toppings and Ingredients
How to Explain:
Focus on Object Interactions:
- Show how a customer placing an order leads to object creation (Order, Pizza, Payment).
Discuss Relationships:
- Use aggregation/composition to explain has-a relationships.
Encourage Students to Extend:
- Ask how they’d support combo offers, discount coupons, or real-time tracking.