From 82fa90e786403d80a287920d332ae4e0a6527e3e Mon Sep 17 00:00:00 2001 From: Joel Thomas <1914@trenser.com> Date: Wed, 18 Feb 2026 20:47:53 +0530 Subject: [PATCH] Add RestaurantOwner Menu definitions - Add RestaurantOwner Menu definitions - Remove unused id attribute in class User --- .../Trenser.FoodDeliveryApp/CustomerMenu.h | 6 +- .../DeliveryPartnerMenu.h | 6 +- .../FoodDeliveryController.h | 14 ++++ .../Trenser.FoodDeliveryApp/Menu.h | 10 ++- .../RestaurantOwnerMenu.cpp | 75 +++++++++++++++++++ .../RestaurantOwnerMenu.h | 6 +- .../Trenser.FoodDeliveryApp.vcxproj | 4 + .../Trenser.FoodDeliveryApp.vcxproj.filters | 12 +++ .../Trenser.FoodDeliveryApp/User.h | 1 - 9 files changed, 120 insertions(+), 14 deletions(-) diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/CustomerMenu.h b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/CustomerMenu.h index e6e3e5e..2403ab9 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/CustomerMenu.h +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/CustomerMenu.h @@ -10,7 +10,7 @@ Date: 18-12-2026 class CustomerMenu : public Menu { public: - CustomerMenu(FoodDeliveryController& foodDeliveryController) : Menu(foodDeliveryController) {} - void showMenu() const override; - void handleOperation() override; + CustomerMenu(FoodDeliveryController& foodDeliveryController, const std::string userFullName): Menu(foodDeliveryController, userFullName) {} + void showMenu() override; + bool handleOperation(char) override; }; diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/DeliveryPartnerMenu.h b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/DeliveryPartnerMenu.h index afd1347..4aa02ca 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/DeliveryPartnerMenu.h +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/DeliveryPartnerMenu.h @@ -10,7 +10,7 @@ Date: 18-12-2026 class DeliveryPartnerMenu : public Menu { public: - DeliveryPartnerMenu(FoodDeliveryController& foodDeliveryController) : Menu(foodDeliveryController) {} - void showMenu() const override; - void handleOperation() override; + DeliveryPartnerMenu(FoodDeliveryController& foodDeliveryController, const std::string userFullName): Menu(foodDeliveryController, userFullName) {} + void showMenu() override; + bool handleOperation(char) override; }; diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.h b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.h index fad0dc1..a05be3a 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.h +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/FoodDeliveryController.h @@ -1,5 +1,19 @@ +/* +Author: Joel Mathew Thomas +Date: 18-02-2026 +*/ + #pragma once class FoodDeliveryController { +public: + void listRestaurants(); + void updateRestaurantStatus(); + void listRestaurantOrders(); + void markOrderReady(); + void listMenuItems(); + void addMenuItem(); + void removeMenuItem(); + void logout(); }; diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Menu.h b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Menu.h index 282848d..0ffb4f8 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Menu.h +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Menu.h @@ -5,16 +5,18 @@ Date: 18-12-2026 #pragma once #include +#include #include "FoodDeliveryController.h" class Menu { -private: +protected: FoodDeliveryController& m_foodDeliveryController; + std::string m_userFullName; public: - Menu(FoodDeliveryController& foodDeliveryController) : m_foodDeliveryController(foodDeliveryController) {} + Menu(FoodDeliveryController& foodDeliveryController, const std::string& userFullName) : m_foodDeliveryController(foodDeliveryController), m_userFullName(userFullName) {} virtual ~Menu() = default; - virtual void showMenu() const = 0; - virtual void handleOperation() = 0; + virtual void showMenu() = 0; + virtual bool handleOperation(char) = 0; }; diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/RestaurantOwnerMenu.cpp b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/RestaurantOwnerMenu.cpp index 2c4c8e0..02e63f7 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/RestaurantOwnerMenu.cpp +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/RestaurantOwnerMenu.cpp @@ -1 +1,76 @@ +/* +Author: Joel Mathew Thomas +Date: 18-02-2026 +*/ + +#include #include "RestaurantOwnerMenu.h" +#include "inputHelper.h" +#include "outputHelper.h" + +void RestaurantOwnerMenu::showMenu() +{ + bool isMenuActive = true; + while (isMenuActive) + { + char choice; + util::clear(); + std::cout << "Welcome " << m_userFullName << "\n"; + std::cout << "Restaurant Owner Menu\n" + "1. List My Restaurants\n" + "2. Update Restaurant Status\n" + "3. List Orders\n" + "4. Mark Order Ready for Delivery\n" + "5. List Menu Items\n" + "6. Add New Item to Menu\n" + "7. Remove Item from Menu\n" + "8. Logout\n" + "Choice?: "; + util::readValue(choice); + if (!handleOperation(choice)) + { + isMenuActive = false; + } + } +} + +bool RestaurantOwnerMenu::handleOperation(char choice) +{ + bool isMenuActive = true; + util::clear(); + switch (choice) + { + case '1': + m_foodDeliveryController.listRestaurants(); + break; + case '2': + m_foodDeliveryController.updateRestaurantStatus(); + break; + case '3': + m_foodDeliveryController.listRestaurantOrders(); + break; + case '4': + m_foodDeliveryController.markOrderReady(); + break; + case '5': + m_foodDeliveryController.listMenuItems(); + break; + case '6': + m_foodDeliveryController.addMenuItem(); + break; + case '7': + m_foodDeliveryController.removeMenuItem(); + break; + case '8': + m_foodDeliveryController.logout(); + isMenuActive = false; + break; + } + std::cout << "\nDo you want to continue (Y/N)?: "; + util::readValue(choice); + if (choice != 'Y' && choice != 'y') + { + isMenuActive = false; + } + return isMenuActive; +} diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/RestaurantOwnerMenu.h b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/RestaurantOwnerMenu.h index 5fc8d08..5465417 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/RestaurantOwnerMenu.h +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/RestaurantOwnerMenu.h @@ -10,8 +10,8 @@ Date: 18-12-2026 class RestaurantOwnerMenu : public Menu { public: - RestaurantOwnerMenu(FoodDeliveryController& foodDeliveryController): Menu(foodDeliveryController) {} - void showMenu() const override; - void handleOperation() override; + RestaurantOwnerMenu(FoodDeliveryController& foodDeliveryController, const std::string userFullName): Menu(foodDeliveryController, userFullName) {} + void showMenu() override; + bool handleOperation(char) override; }; diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp.vcxproj b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp.vcxproj index 1bce237..81d7b9e 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp.vcxproj +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp.vcxproj @@ -131,10 +131,12 @@ + + @@ -150,10 +152,12 @@ + + diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp.vcxproj.filters b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp.vcxproj.filters index 298500b..d05e1a1 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp.vcxproj.filters +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp.vcxproj.filters @@ -78,6 +78,12 @@ Controller + + Utility + + + Utility + @@ -128,5 +134,11 @@ Controller + + Utility + + + Utility + \ No newline at end of file diff --git a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/User.h b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/User.h index 2f1e4f5..dd4be74 100644 --- a/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/User.h +++ b/Trenser.FoodDeliveryApp/Trenser.FoodDeliveryApp/User.h @@ -9,7 +9,6 @@ Date: 17-02-2026 class User { private: - int m_id; std::string m_username; std::string m_name; std::string m_phone;