133785dd3f
- Switched shared_ptr to raw pointers - Added cleanup logic in DataStore - Fixed Factory object creation - Updated function signatures to match changes - Small refactors and formatting fixes
44 lines
1.6 KiB
C++
44 lines
1.6 KiB
C++
/*
|
|
File: JobListing.h
|
|
* Description : Represents a job opening along with its details and applied candidates.
|
|
* Author : Trenser
|
|
* Created : 01-Apr-2026
|
|
*/
|
|
#pragma once
|
|
#include <string>
|
|
#include <map>
|
|
#include "Candidate.h"
|
|
#include "Enums.h"
|
|
using candidateMap = std::map<std::string, Candidate*>;
|
|
|
|
class JobListing
|
|
{
|
|
private:
|
|
static int m_uid;
|
|
std::string m_id;
|
|
std::string m_name;
|
|
std::string m_description;
|
|
Enums::JobListingStatus m_status;
|
|
int m_numberOfVacancies;
|
|
candidateMap m_candidates;
|
|
public:
|
|
JobListing() : m_id("JL" + std::to_string(++m_uid)), m_name(""), m_description(""), m_status(Enums::JobListingStatus::CLOSED), m_numberOfVacancies(0) {}
|
|
JobListing(const std::string& name,
|
|
const std::string& description,
|
|
Enums::JobListingStatus status,
|
|
int numberOfVacancies,
|
|
const candidateMap& candidates)
|
|
: m_id("JL" + std::to_string(++m_uid)), m_name(name), m_description(description), m_status(status), m_numberOfVacancies(numberOfVacancies), m_candidates(candidates) {}
|
|
const std::string& getJobId() const;
|
|
const std::string& getJobName() const;
|
|
const std::string& getJobDescription() const;
|
|
Enums::JobListingStatus getJobStatus() const;
|
|
int getNumberOfVacancies() const;
|
|
const candidateMap& getCandidates() const;
|
|
void setJobId(const std::string& id);
|
|
void setJobName(const std::string& name);
|
|
void setJobDescription(const std::string& description);
|
|
void setJobStatus(Enums::JobListingStatus status);
|
|
void setNumberOfVacancies(int numberOfVacancies);
|
|
void setCandidates(const candidateMap& candidates);
|
|
}; |