Commit Graph

37 Commits

Author SHA1 Message Date
Joel Thomas d6a22948b6 Add assignments to filter Files 2026-02-23 08:52:41 +05:30
Joel Thomas 7d51eeccdf feat: add file-based persistence and restore full app state
- implement FileDatabase<T> for loading and saving objects
- add serialize / deserialize methods to all model classes
- add foreign key relationships among classes alongside object ownership
- replace object references and usernames with persistent IDs
- replace users map from username key to userId key
- load full state on startup and persist state on shutdown
- re-link users, restaurants, menu items, orders, items, and assignments after load
- fix: add order to controller m_orders
- refactor: store shared pointer to MenuItem in Item, not a reference
- refactor: store shared pointer to Order in DeliveryAssignment
- refactor: remove customer username from Order
- add initial snapshot files for users, restaurants, and menu items
- add empty snapshot files for remaining persisted entities
2026-02-23 00:51:40 +05:30
Joel Thomas 6f12328ed5 Implement delivery assignment flow, restaurant order handling, and new controller helpers
- Add new Controller helper getDeliveryStatusString()
- Add new Controller helper pickAssignmentFromDeliveryAssignments()
- Implement controller listRestaurantOrders()
- Implement controller markOrderReady()
- Add order to restaurant when customer places order
- Add m_assignments attribute to Controller
- Implement controller listDeliveryAssignments()
- Implement controller acceptDeliveryAssignments()
- Implement controller confirmDeliveryAssignments()
2026-02-21 13:26:37 +05:30
Joel Thomas 813f236172 Refactor delivery and order handling: unique IDs, status methods, new fields, naming fixes, and menu/controller corrections
- Add static m_uid to DeliveryAssignment for unique IDs
    - Implement DeliveryAssignment getStatus() and setStatus()
    - Add DeliveryPartner::getAssignedDeliveries()
    - Rename pickOrderFromOrders() param to userOrders
    - Fix spelling issues and setw() widths
    - Mark non-mutating controller methods as const
    - Add newline before Net Cost output
    - Restrict cancellation to orders in CREATED state
    - Add customerUsername to Order with getters/setters
    - Implement Restaurant::addOrder()
    - Fix RestaurantOwnerMenu option 5
2026-02-21 13:21:26 +05:30
Joel Thomas 08cdab9e43 Remove Address class and add Address attribute to class User 2026-02-21 12:57:38 +05:30
Joel Thomas 27dab16ae1 Implement customer order controllers with related model/helper updates
- Implement Controller listCustomerOrders()
- Implement Controller placeOrder()
- Implement Controller cancelOrder()
- Fix Item() constructor
- Add static m_uid to Order to track unique ID
- Add Order Status getter and setter
- Rename pickMenuFromMenuItems() to pickItemFromMenu()
- Add new controller helper pickOrderFromOrders()
- Add new controller helper getOrderStatusString()
2026-02-20 17:30:57 +05:30
Joel Thomas 184ea60c08 fix: Only display Invalid Index in listMenuItems() and addMenuItems() if owner has any restaurants 2026-02-20 09:47:38 +05:30
Joel Thomas 1fb2e57404 Make controller helper pickRestaurantFromRestaurants() generic 2026-02-20 09:46:02 +05:30
Joel Thomas 219fa0f14f Implement controller viewProfile()
- Implement controller viewProfile()
- Remove empty space
2026-02-20 01:41:33 +05:30
Joel Thomas 923c2ae412 Implement controller removeMenuItem() 2026-02-20 00:59:54 +05:30
Joel Thomas b43086f578 Implement Controller listMenuItems() and addMenuItem()
- Implement Controller listMenuItems() and addMenuItem()
- Add m_uid to MenuItem to track unique menu item id
- Implement MenuItem getDescription() method
- Add addMenuItem() method in Restaurant Class
2026-02-20 00:27:56 +05:30
Joel Thomas 0636dd9398 fix: Print Invalid Index only if map not empty in UpdateRestaurantStatus() 2026-02-20 00:26:11 +05:30
Joel Thomas 284a2a4cc5 Make functions static and const
- Make controller helper functions static
- Make controller functions which do not modify state const
2026-02-20 00:22:48 +05:30
Joel Thomas 7d98ad508a Add private Controller helper method getRestaurantFromRestaurants() 2026-02-19 21:16:04 +05:30
Joel Thomas 6adc50fbd5 chore: Do exception handling to prevent appliation crash 2026-02-19 20:01:18 +05:30
Joel Thomas ec31206437 Implement Controller updateRestaurantStatus()
- Implement Controller updateRestaurantStatus()
- Avoid unecessary copies, keep ownerRestaurant reference
2026-02-19 19:16:23 +05:30
Joel Thomas b74989859e Implement controller listRestaurants and addNewRestaurant()
- Implement Controller listRestaurants()
    - Add and Implement new controller method addNewRestaurant()
    - Add new controller helper method checkAccess()
    - Add static unique id counter in Restaurant class
    - Add new Restaurant class method getName()
    - Add new option in RestaurantOwnerMenu: Add New Restaurant
2026-02-19 17:37:11 +05:30
Joel Thomas 3d436af779 bugfix: Fix User Full Name not being displayed 2026-02-19 16:00:26 +05:30
Joel Thomas c5e4ecbe02 Implement Controller run()
- Implement Controller run()
- Remove Do you want to continue prompts for util::pressEnter
- change type of choice from char -> int
- Display Invalid Password on bad login
- Create empty controller method definitions
2026-02-19 15:39:37 +05:30
Joel Thomas e959c32bd3 Add pressEnter() inputHelper 2026-02-19 15:39:27 +05:30
Joel Thomas cd0f7694b9 Implement Controller registerUser()
- Implement Controller registerUser()
    - Add Parent Constructor Initialization for User Sub Classes
2026-02-19 13:48:44 +05:30
Joel Thomas a491187e3d Implement Controller login()
- Implement Controller login()
- Add getType() method in User to determine User Type to create
  corresponding menu object
- Remove logout() method from Controller, as login() can procedurally
  logout
- Remove unused includes from Controller
2026-02-19 10:33:58 +05:30
Joel Thomas 135ccffa72 Add readString inputHelper 2026-02-19 10:33:28 +05:30
Joel Thomas 7faa6a076f Rename outputHelper 2026-02-19 00:24:04 +05:30
Joel Thomas c334a64a45 Add View My Profile option 2026-02-18 23:50:51 +05:30
Joel Thomas bd60fd6884 Add Delivery Partner Menu definitions 2026-02-18 23:41:56 +05:30
Joel Thomas a6c4d2d392 Add Customer Menu definitions 2026-02-18 23:36:49 +05:30
Joel Thomas c0913f27ec Add forward declarations in FoodDeliveryController and Menu headers 2026-02-18 23:25:33 +05:30
Joel Thomas 82fa90e786 Add RestaurantOwner Menu definitions
- Add RestaurantOwner Menu definitions
- Remove unused id attribute in class User
2026-02-18 20:47:53 +05:30
Joel Thomas 42d2fac9dd Add output helper 2026-02-18 20:40:35 +05:30
Joel Thomas 5fa4d68493 Fix syntax issues 2026-02-18 19:02:01 +05:30
Joel Thomas 549ff26481 Add DeliveryAssignment class definition 2026-02-18 18:56:11 +05:30
Joel Thomas 22a146a560 Add Input Helper 2026-02-18 18:37:48 +05:30
Joel Thomas 1785aefe52 Add Non user class definitions 2026-02-18 17:02:49 +05:30
Joel Thomas b213cb1698 User class definitions 2026-02-18 13:14:08 +05:30
Joel Thomas 7c17576e8c Class Definitions 2026-02-18 01:43:34 +05:30
Joel Thomas 915df9dd61 Project Structure 2026-02-17 13:34:28 +05:30