- Modularize loadStates()
- Modularize persistStates()
- Do not convert size_t to int in isEmailValid()
- Make non state mutating functions const
- Make isPhoneNumberValid and isEmailValid static
- Do not remove a menuItem from the database
- Set the removed MenuItem status to not available
- In List Menu Items, list status of availability
- In pickItemFromMenu, only display available MenuItems
- 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
- 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
- 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()
- 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
- 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
- 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
- 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