11b47d38c1
- 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>
63 lines
2.6 KiB
C++
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;
|
|
}; |