import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
class EmploymentType(str, Enum):
FULL_TIME = 'FullTime'
PART_TIME = 'PartTime'
CASUAL = 'Casual'
CONTRACT = 'Contract'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AuditBase:
created_date: datetime.datetime = datetime.datetime(1, 1, 1)
# @Required()
created_by: Optional[str] = None
modified_date: datetime.datetime = datetime.datetime(1, 1, 1)
# @Required()
modified_by: Optional[str] = None
deleted_date: Optional[datetime.datetime] = None
deleted_by: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Job(AuditBase):
id: int = 0
title: Optional[str] = None
employment_type: Optional[EmploymentType] = None
company: Optional[str] = None
location: Optional[str] = None
salary_range_lower: int = 0
salary_range_upper: int = 0
description: Optional[str] = None
applications: List[JobApplication] = field(default_factory=list)
closing: datetime.datetime = datetime.datetime(1, 1, 1)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AppUser:
id: Optional[str] = None
first_name: Optional[str] = None
last_name: Optional[str] = None
display_name: Optional[str] = None
profile_url: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class JobApplicationComment(AuditBase):
id: int = 0
# @References(typeof(AppUser))
app_user_id: Optional[str] = None
app_user: Optional[AppUser] = None
# @References(typeof(JobApplication))
job_application_id: int = 0
comment: Optional[str] = None
class JobApplicationStatus(str, Enum):
APPLIED = 'Applied'
PHONE_SCREENING = 'PhoneScreening'
PHONE_SCREENING_COMPLETED = 'PhoneScreeningCompleted'
INTERVIEW = 'Interview'
INTERVIEW_COMPLETED = 'InterviewCompleted'
OFFER = 'Offer'
DISQUALIFIED = 'Disqualified'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class JobApplicationAttachment:
id: int = 0
# @References(typeof(JobApplication))
job_application_id: int = 0
file_name: Optional[str] = None
file_path: Optional[str] = None
content_type: Optional[str] = None
content_length: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class JobApplicationEvent(AuditBase):
id: int = 0
# @References(typeof(JobApplication))
job_application_id: int = 0
# @References(typeof(AppUser))
app_user_id: Optional[str] = None
app_user: Optional[AppUser] = None
description: Optional[str] = None
status: Optional[JobApplicationStatus] = None
event_date: datetime.datetime = datetime.datetime(1, 1, 1)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PhoneScreen(AuditBase):
id: int = 0
# @References(typeof(AppUser))
app_user_id: Optional[str] = None
app_user: Optional[AppUser] = None
# @References(typeof(JobApplication))
job_application_id: int = 0
application_status: Optional[JobApplicationStatus] = None
notes: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Interview(AuditBase):
id: int = 0
booking_time: datetime.datetime = datetime.datetime(1, 1, 1)
# @References(typeof(JobApplication))
job_application_id: int = 0
# @References(typeof(AppUser))
app_user_id: Optional[str] = None
app_user: Optional[AppUser] = None
application_status: Optional[JobApplicationStatus] = None
notes: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class JobOffer(AuditBase):
id: int = 0
salary_offer: int = 0
currency: Optional[str] = None
# @References(typeof(JobApplication))
job_application_id: int = 0
# @References(typeof(AppUser))
app_user_id: Optional[str] = None
app_user: Optional[AppUser] = None
notes: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class JobApplication:
id: int = 0
# @References(typeof(Job))
job_id: int = 0
# @References(typeof(Contact))
contact_id: int = 0
position: Optional[Job] = None
applicant: Optional[Contact] = None
comments: List[JobApplicationComment] = field(default_factory=list)
applied_date: datetime.datetime = datetime.datetime(1, 1, 1)
application_status: Optional[JobApplicationStatus] = None
attachments: List[JobApplicationAttachment] = field(default_factory=list)
events: List[JobApplicationEvent] = field(default_factory=list)
phone_screen: Optional[PhoneScreen] = None
interview: Optional[Interview] = None
job_offer: Optional[JobOffer] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Contact:
id: int = 0
# @Computed()
display_name: Optional[str] = None
profile_url: Optional[str] = None
first_name: Optional[str] = None
last_name: Optional[str] = None
salary_expectation: Optional[int] = None
job_type: Optional[str] = None
availability_weeks: int = 0
preferred_work_type: Optional[EmploymentType] = None
preferred_location: Optional[str] = None
email: Optional[str] = None
phone: Optional[str] = None
skills: Optional[List[str]] = None
about: Optional[str] = None
applications: List[JobApplication] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CreateContact(ICreateDb[Contact]):
# @Validate(Validator="NotEmpty")
first_name: Optional[str] = None
# @Validate(Validator="NotEmpty")
last_name: Optional[str] = None
profile_url: Optional[str] = None
salary_expectation: Optional[int] = None
# @Validate(Validator="NotEmpty")
job_type: Optional[str] = None
availability_weeks: int = 0
preferred_work_type: Optional[EmploymentType] = None
# @Validate(Validator="NotEmpty")
preferred_location: Optional[str] = None
# @Validate(Validator="NotEmpty")
email: Optional[str] = None
phone: Optional[str] = None
skills: Optional[List[str]] = None
about: Optional[str] = None
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/CreateContact HTTP/1.1
Host: blazor-gallery.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
firstName: String,
lastName: String,
profileUrl: String,
salaryExpectation: 0,
jobType: String,
availabilityWeeks: 0,
preferredWorkType: FullTime,
preferredLocation: String,
email: String,
phone: String,
skills:
[
String
],
about: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
id: 0,
displayName: String String,
profileUrl: String,
firstName: String,
lastName: String,
salaryExpectation: 0,
jobType: String,
availabilityWeeks: 0,
preferredWorkType: FullTime,
preferredLocation: String,
email: String,
phone: String,
skills:
[
String
],
about: String,
applications:
[
{
id: 0,
jobId: 0,
contactId: 0,
position:
{
id: 0,
title: String,
employmentType: FullTime,
company: String,
location: String,
salaryRangeLower: 0,
salaryRangeUpper: 0,
description: String,
applications:
[
{
id: 0,
jobId: 0,
contactId: 0,
position:
{
id: 0,
title: String,
employmentType: FullTime,
company: String,
location: String,
salaryRangeLower: 0,
salaryRangeUpper: 0,
description: String,
applications:
[
{
id: 0,
jobId: 0,
contactId: 0,
position:
{
id: 0,
title: String,
employmentType: FullTime,
company: String,
location: String,
salaryRangeLower: 0,
salaryRangeUpper: 0,
description: String,
closing: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
applicant:
{
id: 0,
displayName: String String,
profileUrl: String,
firstName: String,
lastName: String,
salaryExpectation: 0,
jobType: String,
availabilityWeeks: 0,
preferredWorkType: FullTime,
preferredLocation: String,
email: String,
phone: String,
skills:
[
String
],
about: String
},
comments:
[
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
comment: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
appliedDate: 0001-01-01,
applicationStatus: Applied,
attachments:
[
{
id: 0,
jobApplicationId: 0,
fileName: String,
filePath: String,
contentType: String,
contentLength: 0
}
],
events:
[
{
id: 0,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
description: String,
status: Applied,
eventDate: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
phoneScreen:
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
interview:
{
id: 0,
bookingTime: 0001-01-01,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
jobOffer:
{
id: 0,
salaryOffer: 0,
currency: String,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
}
],
closing: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
applicant:
{
id: 0,
displayName: String String,
profileUrl: String,
firstName: String,
lastName: String,
salaryExpectation: 0,
jobType: String,
availabilityWeeks: 0,
preferredWorkType: FullTime,
preferredLocation: String,
email: String,
phone: String,
skills:
[
String
],
about: String,
applications:
[
{
id: 0,
jobId: 0,
contactId: 0,
position:
{
id: 0,
title: String,
employmentType: FullTime,
company: String,
location: String,
salaryRangeLower: 0,
salaryRangeUpper: 0,
description: String,
closing: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
applicant:
{
id: 0,
displayName: String String,
profileUrl: String,
firstName: String,
lastName: String,
salaryExpectation: 0,
jobType: String,
availabilityWeeks: 0,
preferredWorkType: FullTime,
preferredLocation: String,
email: String,
phone: String,
skills:
[
String
],
about: String
},
comments:
[
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
comment: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
appliedDate: 0001-01-01,
applicationStatus: Applied,
attachments:
[
{
id: 0,
jobApplicationId: 0,
fileName: String,
filePath: String,
contentType: String,
contentLength: 0
}
],
events:
[
{
id: 0,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
description: String,
status: Applied,
eventDate: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
phoneScreen:
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
interview:
{
id: 0,
bookingTime: 0001-01-01,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
jobOffer:
{
id: 0,
salaryOffer: 0,
currency: String,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
}
]
},
comments:
[
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
comment: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
appliedDate: 0001-01-01,
applicationStatus: Applied,
attachments:
[
{
id: 0,
jobApplicationId: 0,
fileName: String,
filePath: String,
contentType: String,
contentLength: 0
}
],
events:
[
{
id: 0,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
description: String,
status: Applied,
eventDate: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
phoneScreen:
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
interview:
{
id: 0,
bookingTime: 0001-01-01,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
jobOffer:
{
id: 0,
salaryOffer: 0,
currency: String,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
}
],
closing: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
applicant:
{
id: 0,
displayName: String String,
profileUrl: String,
firstName: String,
lastName: String,
salaryExpectation: 0,
jobType: String,
availabilityWeeks: 0,
preferredWorkType: FullTime,
preferredLocation: String,
email: String,
phone: String,
skills:
[
String
],
about: String,
applications:
[
{
id: 0,
jobId: 0,
contactId: 0,
position:
{
id: 0,
title: String,
employmentType: FullTime,
company: String,
location: String,
salaryRangeLower: 0,
salaryRangeUpper: 0,
description: String,
applications:
[
{
id: 0,
jobId: 0,
contactId: 0,
position:
{
id: 0,
title: String,
employmentType: FullTime,
company: String,
location: String,
salaryRangeLower: 0,
salaryRangeUpper: 0,
description: String,
closing: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
applicant:
{
id: 0,
displayName: String String,
profileUrl: String,
firstName: String,
lastName: String,
salaryExpectation: 0,
jobType: String,
availabilityWeeks: 0,
preferredWorkType: FullTime,
preferredLocation: String,
email: String,
phone: String,
skills:
[
String
],
about: String
},
comments:
[
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
comment: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
appliedDate: 0001-01-01,
applicationStatus: Applied,
attachments:
[
{
id: 0,
jobApplicationId: 0,
fileName: String,
filePath: String,
contentType: String,
contentLength: 0
}
],
events:
[
{
id: 0,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
description: String,
status: Applied,
eventDate: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
phoneScreen:
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
interview:
{
id: 0,
bookingTime: 0001-01-01,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
jobOffer:
{
id: 0,
salaryOffer: 0,
currency: String,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
}
],
closing: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
applicant:
{
id: 0,
displayName: String String,
profileUrl: String,
firstName: String,
lastName: String,
salaryExpectation: 0,
jobType: String,
availabilityWeeks: 0,
preferredWorkType: FullTime,
preferredLocation: String,
email: String,
phone: String,
skills:
[
String
],
about: String,
applications:
[
{
id: 0,
jobId: 0,
contactId: 0,
position:
{
id: 0,
title: String,
employmentType: FullTime,
company: String,
location: String,
salaryRangeLower: 0,
salaryRangeUpper: 0,
description: String,
closing: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
applicant:
{
id: 0,
displayName: String String,
profileUrl: String,
firstName: String,
lastName: String,
salaryExpectation: 0,
jobType: String,
availabilityWeeks: 0,
preferredWorkType: FullTime,
preferredLocation: String,
email: String,
phone: String,
skills:
[
String
],
about: String
},
comments:
[
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
comment: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
appliedDate: 0001-01-01,
applicationStatus: Applied,
attachments:
[
{
id: 0,
jobApplicationId: 0,
fileName: String,
filePath: String,
contentType: String,
contentLength: 0
}
],
events:
[
{
id: 0,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
description: String,
status: Applied,
eventDate: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
phoneScreen:
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
interview:
{
id: 0,
bookingTime: 0001-01-01,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
jobOffer:
{
id: 0,
salaryOffer: 0,
currency: String,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
}
]
},
comments:
[
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
comment: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
appliedDate: 0001-01-01,
applicationStatus: Applied,
attachments:
[
{
id: 0,
jobApplicationId: 0,
fileName: String,
filePath: String,
contentType: String,
contentLength: 0
}
],
events:
[
{
id: 0,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
description: String,
status: Applied,
eventDate: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
phoneScreen:
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
interview:
{
id: 0,
bookingTime: 0001-01-01,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
jobOffer:
{
id: 0,
salaryOffer: 0,
currency: String,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
}
]
},
comments:
[
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
comment: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
appliedDate: 0001-01-01,
applicationStatus: Applied,
attachments:
[
{
id: 0,
jobApplicationId: 0,
fileName: String,
filePath: String,
contentType: String,
contentLength: 0
}
],
events:
[
{
id: 0,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
description: String,
status: Applied,
eventDate: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
phoneScreen:
{
id: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
jobApplicationId: 0,
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
interview:
{
id: 0,
bookingTime: 0001-01-01,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
},
jobOffer:
{
id: 0,
salaryOffer: 0,
currency: String,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
}
]
}