Files
Training-Team2-Zenvy-Jan26/Trenser.Zenvy/Trenser.Zenvy/datastores/DataStore.h
T

50 lines
1.2 KiB
C++

/*
* File: DataStore.h
* Description: Central Storage for all the System Data.
* Author: Trenser
* Created: 01-Apr-2026
*/
#pragma once
#include <map>
#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"
using employeeMap = std::map<std::string,Employee*>;
using logMap = std::map<util::Timestamp, Log*>;
class DataStore
{
private:
Employee* m_authenticatedEmployee;
employeeMap m_employees;
logMap m_logs;
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();
Employee* getAuthenticatedUser();
logMap& getLogs();
Employee*& getAuthenticatedEmployee();
void setAuthenticatedEmployee(Employee*);
~DataStore();
};