Class Candidate

java.lang.Object
me.josephsf.jobportaljosephsfeir.model.Candidate

public class Candidate extends Object
Model class representing a job candidate's profile in the Job Portal system.

The Candidate entity contains detailed professional information about users with the CANDIDATE role. This includes personal details, professional background, education, skills, and preferences relevant to job seeking. Each Candidate is linked to a User entity through the userId field.

Candidate profiles are stored in the "candidates" collection in MongoDB. Each document maintains a one-to-one relationship with a document in the users collection.

Candidate documents include:

  • Personal information (name, contact details, location)
  • Professional background (current title, experience level, years of experience)
  • Technical and soft skills
  • Work experience history
  • Educational background
  • Job search preferences and availability
  • Audit timestamps (createdAt, updatedAt)

This profile information is used for job matching, searching, and for displaying candidate details to recruiters.

Since:
2025-05-15
See Also:
  • Constructor Details

    • Candidate

      public Candidate()
      Default constructor. Initializes creation and update timestamps to current time, and sets the candidate as available by default.
  • Method Details

    • getId

      public String getId()
      Gets the candidate profile's unique identifier.
      Returns:
      the candidate profile ID
    • setId

      public void setId(String id)
      Sets the candidate profile's unique identifier.
      Parameters:
      id - the candidate profile ID to set
    • getUserId

      public String getUserId()
      Gets the ID of the user associated with this candidate profile.
      Returns:
      the user ID
    • setUserId

      public void setUserId(String userId)
      Sets the ID of the user associated with this candidate profile.
      Parameters:
      userId - the user ID to set
    • getFirstName

      public String getFirstName()
      Gets the candidate's first name.
      Returns:
      the first name
    • setFirstName

      public void setFirstName(String firstName)
      Sets the candidate's first name.
      Parameters:
      firstName - the first name to set
    • getLastName

      public String getLastName()
      Gets the candidate's last name.
      Returns:
      the last name
    • setLastName

      public void setLastName(String lastName)
      Sets the candidate's last name.
      Parameters:
      lastName - the last name to set
    • getPhoneNumber

      public String getPhoneNumber()
      Gets the candidate's phone number.
      Returns:
      the phone number
    • setPhoneNumber

      public void setPhoneNumber(String phoneNumber)
      Sets the candidate's phone number.
      Parameters:
      phoneNumber - the phone number to set
    • getLocation

      public String getLocation()
      Gets the candidate's location.
      Returns:
      the location
    • setLocation

      public void setLocation(String location)
      Sets the candidate's location.
      Parameters:
      location - the location to set
    • getCurrentTitle

      public String getCurrentTitle()
      Gets the candidate's current job title.
      Returns:
      the current title
    • setCurrentTitle

      public void setCurrentTitle(String currentTitle)
      Sets the candidate's current job title.
      Parameters:
      currentTitle - the current title to set
    • getExperienceLevel

      public String getExperienceLevel()
      Gets the candidate's experience level.
      Returns:
      the experience level
    • setExperienceLevel

      public void setExperienceLevel(String experienceLevel)
      Sets the candidate's experience level.
      Parameters:
      experienceLevel - the experience level to set
    • getYearsOfExperience

      public Integer getYearsOfExperience()
      Gets the candidate's total years of professional experience.
      Returns:
      the years of experience
    • setYearsOfExperience

      public void setYearsOfExperience(Integer yearsOfExperience)
      Sets the candidate's total years of professional experience.
      Parameters:
      yearsOfExperience - the years of experience to set
    • getSkills

      public List<String> getSkills()
      Gets the list of candidate's skills.
      Returns:
      the list of skills
    • setSkills

      public void setSkills(List<String> skills)
      Sets the list of candidate's skills.
      Parameters:
      skills - the list of skills to set
    • getExperience

      public List<Experience> getExperience()
      Gets the candidate's work experience history.
      Returns:
      the list of work experiences
    • setExperience

      public void setExperience(List<Experience> experience)
      Sets the candidate's work experience history.
      Parameters:
      experience - the list of work experiences to set
    • getEducation

      public List<Education> getEducation()
      Gets the candidate's educational background.
      Returns:
      the list of education records
    • setEducation

      public void setEducation(List<Education> education)
      Sets the candidate's educational background.
      Parameters:
      education - the list of education records to set
    • getResumeUrl

      public String getResumeUrl()
      Gets the URL to the candidate's resume or CV.
      Returns:
      the resume URL
    • setResumeUrl

      public void setResumeUrl(String resumeUrl)
      Sets the URL to the candidate's resume or CV.
      Parameters:
      resumeUrl - the resume URL to set
    • getProfileSummary

      public String getProfileSummary()
      Gets the candidate's profile summary or bio.
      Returns:
      the profile summary
    • setProfileSummary

      public void setProfileSummary(String profileSummary)
      Sets the candidate's profile summary or bio.
      Parameters:
      profileSummary - the profile summary to set
    • getLinkedInUrl

      public String getLinkedInUrl()
      Gets the URL to the candidate's LinkedIn profile.
      Returns:
      the LinkedIn URL
    • setLinkedInUrl

      public void setLinkedInUrl(String linkedInUrl)
      Sets the URL to the candidate's LinkedIn profile.
      Parameters:
      linkedInUrl - the LinkedIn URL to set
    • getPortfolioUrl

      public String getPortfolioUrl()
      Gets the URL to the candidate's portfolio or personal website.
      Returns:
      the portfolio URL
    • setPortfolioUrl

      public void setPortfolioUrl(String portfolioUrl)
      Sets the URL to the candidate's portfolio or personal website.
      Parameters:
      portfolioUrl - the portfolio URL to set
    • getExpectedSalary

      public Double getExpectedSalary()
      Gets the candidate's expected or desired salary.
      Returns:
      the expected salary
    • setExpectedSalary

      public void setExpectedSalary(Double expectedSalary)
      Sets the candidate's expected or desired salary.
      Parameters:
      expectedSalary - the expected salary to set
    • getIsAvailable

      public Boolean getIsAvailable()
      Gets whether the candidate is currently available for work.
      Returns:
      true if the candidate is available, false otherwise
    • setIsAvailable

      public void setIsAvailable(Boolean isAvailable)
      Sets whether the candidate is currently available for work.
      Parameters:
      isAvailable - true if the candidate is available, false otherwise
    • getCreatedAt

      public LocalDateTime getCreatedAt()
      Gets the timestamp when the candidate profile was created.
      Returns:
      the creation timestamp
    • setCreatedAt

      public void setCreatedAt(LocalDateTime createdAt)
      Sets the creation timestamp for the candidate profile.
      Parameters:
      createdAt - the creation timestamp to set
    • getUpdatedAt

      public LocalDateTime getUpdatedAt()
      Gets the timestamp when the candidate profile was last updated.
      Returns:
      the last update timestamp
    • setUpdatedAt

      public void setUpdatedAt(LocalDateTime updatedAt)
      Sets the last update timestamp for the candidate profile.
      Parameters:
      updatedAt - the update timestamp to set