/* File: Service.h Description: Declares the Service class which represents a vehicle service in the Vehicle Service Management System. Each service includes a unique ID, name, required inventory items, labor cost, and status. Author: Trenser Date: 19-May-2026 */ #pragma once #include #include "Map.h" #include "Vector.h" #include "Enums.h" class InventoryItem; class Service { private: static int m_uid; std::string m_id; std::string m_name; util::Vector m_requiredInventoryItemIDs; util::Map m_requiredInventoryItems; double m_laborCost; util::State m_status; public: Service(); Service(const std::string& name, const util::Map& requiredInventoryItems, double laborCost); Service(const std::string& id, const std::string& name, const util::Vector& requiredInventoryItemIDs, double laborCost, util::State state); const std::string& getId() const; const std::string& getName() const; const util::Vector& getRequiredInventoryItemIDs() const; const util::Map& getRequiredInventoryItems() const; double getLaborCost() const; util::State getState() const; void setId(const std::string& id); void setName(const std::string& name); void setRequiredInventoryItems(const util::Map& requiredInventoryItems); void setLaborCost(double laborCost); void setState(util::State status); std::string serialize() const; static Service* deserialize(const std::string&); static std::string getHeaders(); };