Add RestaurantOwner Menu definitions
- Add RestaurantOwner Menu definitions - Remove unused id attribute in class User
This commit is contained in:
@@ -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" />
|
||||
|
||||
+12
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user