Add RestaurantOwner Menu definitions

- Add RestaurantOwner Menu definitions
- Remove unused id attribute in class User
This commit is contained in:
Joel Thomas
2026-02-18 20:47:53 +05:30
parent 42d2fac9dd
commit 82fa90e786
9 changed files with 120 additions and 14 deletions
@@ -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;
};
@@ -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;
};
@@ -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();
};
@@ -5,16 +5,18 @@ Date: 18-12-2026
#pragma once
#include <iostream>
#include <string>
#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;
};
@@ -1 +1,76 @@
/*
Author: Joel Mathew Thomas
Date: 18-02-2026
*/
#include <iostream>
#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<char>(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<char>(choice);
if (choice != 'Y' && choice != 'y')
{
isMenuActive = false;
}
return isMenuActive;
}
@@ -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;
};
@@ -131,10 +131,12 @@
<ClCompile Include="DeliveryPartnerMenu.cpp" />
<ClCompile Include="FileDatabase.cpp" />
<ClCompile Include="FoodDeliveryController.cpp" />
<ClCompile Include="inputHelper.cpp" />
<ClCompile Include="Item.cpp" />
<ClCompile Include="Menu.cpp" />
<ClCompile Include="MenuItem.cpp" />
<ClCompile Include="Order.cpp" />
<ClCompile Include="OutputHelper.cpp" />
<ClCompile Include="Restaurant.cpp" />
<ClCompile Include="RestaurantOwner.cpp" />
<ClCompile Include="RestaurantOwnerMenu.cpp" />
@@ -150,10 +152,12 @@
<ClInclude Include="DeliveryPartnerMenu.h" />
<ClInclude Include="FileDatabase.h" />
<ClInclude Include="FoodDeliveryController.h" />
<ClInclude Include="inputHelper.h" />
<ClInclude Include="Item.h" />
<ClInclude Include="Menu.h" />
<ClInclude Include="MenuItem.h" />
<ClInclude Include="Order.h" />
<ClInclude Include="OutputHelper.h" />
<ClInclude Include="Restaurant.h" />
<ClInclude Include="RestaurantOwner.h" />
<ClInclude Include="RestaurantOwnerMenu.h" />
@@ -78,6 +78,12 @@
<ClCompile Include="CustomerMenu.cpp">
<Filter>Controller</Filter>
</ClCompile>
<ClCompile Include="inputHelper.cpp">
<Filter>Utility</Filter>
</ClCompile>
<ClCompile Include="OutputHelper.cpp">
<Filter>Utility</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Address.h">
@@ -128,5 +134,11 @@
<ClInclude Include="CustomerMenu.h">
<Filter>Controller</Filter>
</ClInclude>
<ClInclude Include="inputHelper.h">
<Filter>Utility</Filter>
</ClInclude>
<ClInclude Include="OutputHelper.h">
<Filter>Utility</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -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;