#pragma once #include #include "Map.h" #include "NotificationManagementService.h" #include "DataStore.h" class InventoryItem; class InventoryManagementService : public NotificationManagementService { private: DataStore& m_dataStore; static util::Map m_observers; public: InventoryManagementService() : m_dataStore(DataStore::getInstance()) {} util::Map getInventoryItems(); InventoryItem* getInventoryItem(const std::string& inventoryItemID); void addInventoryItem(const std::string& partName, int quantity, double price); void removeInventoryItem(const std::string& inventoryItemID); void sendLowStockAlerts(); void sendNotification(User* user, const std::string& title, const std::string& message) override; void attach(User* user) override; void detach(User* user) override; };