using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RecruitmentDAL.DTO.Candidate { public class CandidateDTO { #region PrivateMembers #region Candidate private int candidateid; //Id private string firstname; //FirstName private string lastname; //LastName private string email; //Email private string phone; //Phone private string resumeurl; //ResumeUrl private byte source = 6; //Source: 1=Website 2=JobPortal 3=Agency 4=Referral 5=Internal 6=Direct/Manual private string sourcedetail; //SourceDetail (agency name / job-portal name / referring employee) private string skilltags; //SkillTags private int employeeid = -1; //EmployeeId — placeholder for future Candidate->Employee conversion, NOT an FK. //Phase 6 (internal mobility) also reuses this same column for the reverse //direction: for CandidateType=2 (InternalEmployee) it is populated at //creation with the applying employee's real EmployeeId (the "source" //employee) — see EmployeeToInternalCandidateBLL and the Phase 6 migration's //header comment for why this is semantically consistent, not a collision. private int agencyid = -1; //AgencyId — FK-by-convention MRECRUITMENTAGENCY (not enforced, same cross-boundary pattern as EmployeeId above), set when Source=Agency(3); -1 = not agency-attributed. Phase 6 attribution hook — no GOP intake flow calls this yet, see AgencyDTO's doc comment. private bool consentgiven; //ConsentGiven private DateTime? consentdate; //ConsentDate private byte candidatetype = 1; //CandidateType: 1=External 2=InternalEmployee 3=ContingentGig private byte? engagementtype; //EngagementType (ContingentGig only): 1=Contract 2=Freelance 3=Temporary 4=Consultant private short? contractdurationmonths; //ContractDurationMonths (ContingentGig only) #endregion #region Base private int createdbyid; //CreatedById private DateTime createdon; //CreatedOn private string createdbyname; //CreatedByName private int modifiedbyid; //ModifiedById private DateTime modifiedon; //ModifiedOn private string modifiedbyname; //ModifiedByName #endregion #region Standard private short sortorder = 9999; //SortOrder private byte status = 1; //Status private short version; //Version private int tenantid; //TenantId #endregion #endregion #region PublicMembers #region Candidate public int CandidateId { get { return candidateid; } set { candidateid = value; } } public string FirstName { get { return firstname; } set { firstname = value; } } public string LastName { get { return lastname; } set { lastname = value; } } public string Email { get { return email; } set { email = value; } } public string Phone { get { return phone; } set { phone = value; } } public string ResumeUrl { get { return resumeurl; } set { resumeurl = value; } } public byte Source { get { return source; } set { source = value; } } public string SourceDetail { get { return sourcedetail; } set { sourcedetail = value; } } public string SkillTags { get { return skilltags; } set { skilltags = value; } } public int EmployeeId { get { return employeeid; } set { employeeid = value; } } public int AgencyId { get { return agencyid; } set { agencyid = value; } } public bool ConsentGiven { get { return consentgiven; } set { consentgiven = value; } } public DateTime? ConsentDate { get { return consentdate; } set { consentdate = value; } } public byte CandidateType { get { return candidatetype; } set { candidatetype = value; } } public byte? EngagementType { get { return engagementtype; } set { engagementtype = value; } } public short? ContractDurationMonths { get { return contractdurationmonths; } set { contractdurationmonths = value; } } #endregion #region Base public int CreatedById { get { return createdbyid; } set { createdbyid = value; } } public DateTime CreatedOn { get { return createdon; } set { createdon = value; } } public string CreatedByName { get { return createdbyname; } set { createdbyname = value; } } public int ModifiedById { get { return modifiedbyid; } set { modifiedbyid = value; } } public DateTime ModifiedOn { get { return modifiedon; } set { modifiedon = value; } } public string ModifiedByName { get { return modifiedbyname; } set { modifiedbyname = value; } } #endregion #region Standard public short SortOrder { get { return sortorder; } set { sortorder = value; } } public byte Status { get { return status; } set { status = value; } } public short Version { get { return version; } set { version = value; } } public int TenantId { get { return tenantid; } set { tenantid = value; } } #endregion #endregion } }