Files
Training-Team2-Zenvy-Jan26/Trenser.Zenvy/Trenser.Zenvy/models/Employee.h
T
joelthomastrenser 11b47d38c1 Set up codebase
- Define models, factory classes, data store,
utility classes (timestamp, io helpers, enums, validator)
- Define Model Class Structures
- Add new model Log
- Add new service LogService
- Add Factory class
- Add Utilities like Timestamp, Validator, Input/Output Helpers..

Co-authored-by: Tinu Johnson <tinu.johnson@trenser.com>
Co-authored-by: Princy Jerin <princy.jerin@trenser.com>
Co-authored-by: Ajmal Jalaludeen <ajmal.jalaludeen@trenser.com>
Co-authored-by: Jissin Sam Mathew <jissin.mathew@trenser.com>
2026-04-01 13:26:58 +05:30

63 lines
2.6 KiB
C++

#pragma once
#include <string>
#include <memory>
#include <map>
#include "Payslip.h"
#include "Attendance.h"
#include "Leave.h"
#include "Payroll.h"
#include "Enums.h"
using payslipMap = std::map<std::string, std::shared_ptr<Payslip>>;
using attendanceMap = std::map<int, std::map<std::string, std::shared_ptr<Attendance>>>;
using leaveMap = std::map<std::string, std::shared_ptr<Leave>>;
class Employee
{
private:
std::string m_id;
std::string m_password;
std::string m_name;
std::string m_phone;
std::string m_email;
Enums::AccountStatus m_accountStatus;
Enums::TeamStatus m_teamStatus;
std::string m_teamId;
std::shared_ptr<Payroll> m_payroll;
payslipMap m_payslips;
attendanceMap m_attendances;
leaveMap m_leaves;
public:
Employee() : m_id(""), m_password(""), m_name(""), m_phone(""), m_email(""), m_accountStatus(Enums::AccountStatus::ACTIVE), m_teamStatus(Enums::TeamStatus::NOT_IN_TEAM), m_teamId("") {}
Employee(const std::string& id,
const std::string& password,
const std::string& name,
const std::string& phone,
const std::string& email,
const std::string& teamId,
std::shared_ptr<Payroll> payroll)
: m_id(id), m_password(password), m_name(name), m_phone(phone), m_email(email), m_accountStatus(Enums::AccountStatus::ACTIVE), m_teamStatus(Enums::TeamStatus::NOT_IN_TEAM), m_teamId(teamId), m_payroll(payroll) {}
const std::string& getEmployeeId() const;
const std::string& getEmployeePassword() const;
const std::string& getEmployeeName() const;
const std::string& getEmployeePhone() const;
const std::string& getEmployeeEmail() const;
Enums::AccountStatus getEmployeeAccountStatus() const;
Enums::TeamStatus getEmployeeTeamStatus() const;
const std::string& getEmployeeTeamId() const;
std::shared_ptr<Payroll> getPayroll() const;
const payslipMap& getEmployeePayslips() const;
const attendanceMap& getEmployeeAttendances() const;
const leaveMap& getEmployeeLeaves() const;
void setEmployeeId(const std::string& id);
void setEmployeePassword(const std::string& password);
void setEmployeeName(const std::string& name);
void setEmployeePhone(const std::string& phone);
void setEmployeeAccountStatus(Enums::AccountStatus status);
void setEmployeeTeamStatus(Enums::TeamStatus status);
void setEmployeeTeamId(const std::string& teamId);
void setEmployeePayroll(std::shared_ptr<Payroll> payroll);
void addPayslip(std::shared_ptr<Payslip> payslip);
void addAttendance(std::shared_ptr<Attendance> attendance);
void addLeave(std::shared_ptr<Leave> leave);
~Employee() = default;
};