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
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QueryBase:
skip: Optional[int] = None
take: Optional[int] = None
order_by: Optional[str] = None
order_by_desc: Optional[str] = None
include: Optional[str] = None
fields: Optional[str] = None
meta: Optional[Dict[str, str]] = None
T = TypeVar('T')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QueryDb(Generic[T], QueryBase, IReturn[QueryResponse[T]]):
@staticmethod
def response_type(): return QueryResponse[T]
@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
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 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 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 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 QueryJobs(QueryDb[Job]):
id: Optional[int] = None
ids: Optional[List[int]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Todo:
id: int = 0
text: Optional[str] = None
is_finished: bool = False
T = TypeVar('T')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class QueryResponse(Generic[T]):
offset: int = 0
total: int = 0
results: Optional[List[Todo]] = None
meta: Optional[Dict[str, str]] = None
response_status: Optional[ResponseStatus] = 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/QueryJobs HTTP/1.1
Host: blazor-gallery.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
id: 0,
ids:
[
0
],
skip: 0,
take: 0,
orderBy: String,
orderByDesc: String,
include: String,
fields: String,
meta:
{
String: String
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
offset: 0,
total: 0,
results:
[
{
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,
applications:
[
{
id: 0,
jobId: 0,
contactId: 0,
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
}
}
],
closing: 0001-01-01,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}
],
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
}