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

60 lines
1.6 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"
#include "Payroll.h"
#include "Payslip.h"
using employeeMap = std::map<std::string,Employee*>;
using payrollMap = std::map<std::string, std::shared_ptr<Payroll>>;
using payslipMap = std::map<std::string, std::shared_ptr<Payslip>>;
using logMap = std::map<util::Timestamp, Log*>;
using candidateMap = std::map<std::string, std::shared_ptr<Candidate>>;
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();
};