/* * File: DataStore.h * Description: Central Storage for all the System Data. * Author: Trenser * Created: 01-Apr-2026 */ #pragma once #include #include "Employee.h" #include "Log.h" #include "Timestamp.h" #include "Admin.h" #include "HRManager.h" #include "GeneralEmployee.h" #include "ITExecutive.h" #include "FinanceExecutive.h" #include "TeamExecutive.h" #include "TalentExecutive.h" #include "Team.h" #include "Room.h" #include "Ticket.h" #include "JobListing.h" #include "Notification.h" #include "Announcement.h" #include "Faq.h" #include "Payroll.h" #include "Payslip.h" using employeeMap = std::map; using payrollMap = std::map>; using payslipMap = std::map>; using logMap = std::map; using candidateMap = std::map>; class DataStore { private: Employee* m_authenticatedEmployee; employeeMap m_employees; payrollMap m_payrolls; payslipMap m_payslips; logMap m_logs; candidateMap m_candidates; DataStore() : m_authenticatedEmployee(nullptr) {}; public: static DataStore& getInstance(); DataStore(const DataStore&) = delete; DataStore& operator=(const DataStore&) = delete; DataStore(DataStore&&) = delete; DataStore& operator=(DataStore&&) = delete; employeeMap& getEmployees(); payrollMap& getPayrolls(); payslipMap& getPayslips(); logMap& getLogs(); candidateMap& getCandidates(); Employee*& getAuthenticatedEmployee(); void setAuthenticatedEmployee(Employee*); ~DataStore(); };