"use strict";
export class QueryBase {
/** @param {{skip?:number,take?:number,orderBy?:string,orderByDesc?:string,include?:string,fields?:string,meta?:{ [index:string]: string; }}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {?number} */
skip;
/** @type {?number} */
take;
/** @type {string} */
orderBy;
/** @type {string} */
orderByDesc;
/** @type {string} */
include;
/** @type {string} */
fields;
/** @type {{ [index:string]: string; }} */
meta;
}
/** @typedef T {any} */
export class QueryDb extends QueryBase {
/** @param {{skip?:number,take?:number,orderBy?:string,orderByDesc?:string,include?:string,fields?:string,meta?:{ [index:string]: string; }}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
}
export class AuditBase {
/** @param {{createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
createdDate;
/** @type {string} */
createdBy;
/** @type {string} */
modifiedDate;
/** @type {string} */
modifiedBy;
/** @type {?string} */
deletedDate;
/** @type {string} */
deletedBy;
}
/** @typedef {'FullTime'|'PartTime'|'Casual'|'Contract'} */
export var EmploymentType;
(function (EmploymentType) {
EmploymentType["FullTime"] = "FullTime"
EmploymentType["PartTime"] = "PartTime"
EmploymentType["Casual"] = "Casual"
EmploymentType["Contract"] = "Contract"
})(EmploymentType || (EmploymentType = {}));
export class Contact {
/** @param {{id?:number,displayName?:string,profileUrl?:string,firstName?:string,lastName?:string,salaryExpectation?:number,jobType?:string,availabilityWeeks?:number,preferredWorkType?:EmploymentType,preferredLocation?:string,email?:string,phone?:string,skills?:string[],about?:string,applications?:JobApplication[]}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
id;
/** @type {string} */
displayName;
/** @type {string} */
profileUrl;
/** @type {string} */
firstName;
/** @type {string} */
lastName;
/** @type {?number} */
salaryExpectation;
/** @type {string} */
jobType;
/** @type {number} */
availabilityWeeks;
/** @type {EmploymentType} */
preferredWorkType;
/** @type {string} */
preferredLocation;
/** @type {string} */
email;
/** @type {string} */
phone;
/** @type {?string[]} */
skills;
/** @type {string} */
about;
/** @type {JobApplication[]} */
applications = [];
}
export class AppUser {
/** @param {{id?:string,firstName?:string,lastName?:string,displayName?:string,profileUrl?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
id;
/** @type {?string} */
firstName;
/** @type {?string} */
lastName;
/** @type {?string} */
displayName;
/** @type {?string} */
profileUrl;
}
export class JobApplicationComment extends AuditBase {
/** @param {{id?:number,appUserId?:string,appUser?:AppUser,jobApplicationId?:number,comment?:string,createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {number} */
id;
/** @type {string} */
appUserId;
/** @type {AppUser} */
appUser;
/** @type {number} */
jobApplicationId;
/** @type {string} */
comment;
}
/** @typedef {'Applied'|'PhoneScreening'|'PhoneScreeningCompleted'|'Interview'|'InterviewCompleted'|'Offer'|'Disqualified'} */
export var JobApplicationStatus;
(function (JobApplicationStatus) {
JobApplicationStatus["Applied"] = "Applied"
JobApplicationStatus["PhoneScreening"] = "PhoneScreening"
JobApplicationStatus["PhoneScreeningCompleted"] = "PhoneScreeningCompleted"
JobApplicationStatus["Interview"] = "Interview"
JobApplicationStatus["InterviewCompleted"] = "InterviewCompleted"
JobApplicationStatus["Offer"] = "Offer"
JobApplicationStatus["Disqualified"] = "Disqualified"
})(JobApplicationStatus || (JobApplicationStatus = {}));
export class JobApplicationAttachment {
/** @param {{id?:number,jobApplicationId?:number,fileName?:string,filePath?:string,contentType?:string,contentLength?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
id;
/** @type {number} */
jobApplicationId;
/** @type {string} */
fileName;
/** @type {string} */
filePath;
/** @type {string} */
contentType;
/** @type {number} */
contentLength;
}
export class JobApplicationEvent extends AuditBase {
/** @param {{id?:number,jobApplicationId?:number,appUserId?:string,appUser?:AppUser,description?:string,status?:JobApplicationStatus,eventDate?:string,createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {number} */
id;
/** @type {number} */
jobApplicationId;
/** @type {string} */
appUserId;
/** @type {AppUser} */
appUser;
/** @type {string} */
description;
/** @type {?JobApplicationStatus} */
status;
/** @type {string} */
eventDate;
}
export class PhoneScreen extends AuditBase {
/** @param {{id?:number,appUserId?:string,appUser?:AppUser,jobApplicationId?:number,applicationStatus?:JobApplicationStatus,notes?:string,createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {number} */
id;
/** @type {string} */
appUserId;
/** @type {AppUser} */
appUser;
/** @type {number} */
jobApplicationId;
/** @type {?JobApplicationStatus} */
applicationStatus;
/** @type {string} */
notes;
}
export class Interview extends AuditBase {
/** @param {{id?:number,bookingTime?:string,jobApplicationId?:number,appUserId?:string,appUser?:AppUser,applicationStatus?:JobApplicationStatus,notes?:string,createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {number} */
id;
/** @type {string} */
bookingTime;
/** @type {number} */
jobApplicationId;
/** @type {string} */
appUserId;
/** @type {AppUser} */
appUser;
/** @type {?JobApplicationStatus} */
applicationStatus;
/** @type {string} */
notes;
}
export class JobOffer extends AuditBase {
/** @param {{id?:number,salaryOffer?:number,currency?:string,jobApplicationId?:number,appUserId?:string,appUser?:AppUser,notes?:string,createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {number} */
id;
/** @type {number} */
salaryOffer;
/** @type {string} */
currency;
/** @type {number} */
jobApplicationId;
/** @type {string} */
appUserId;
/** @type {AppUser} */
appUser;
/** @type {string} */
notes;
}
export class JobApplication {
/** @param {{id?:number,jobId?:number,contactId?:number,position?:Job,applicant?:Contact,comments?:JobApplicationComment[],appliedDate?:string,applicationStatus?:JobApplicationStatus,attachments?:JobApplicationAttachment[],events?:JobApplicationEvent[],phoneScreen?:PhoneScreen,interview?:Interview,jobOffer?:JobOffer}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
id;
/** @type {number} */
jobId;
/** @type {number} */
contactId;
/** @type {Job} */
position;
/** @type {Contact} */
applicant;
/** @type {JobApplicationComment[]} */
comments = [];
/** @type {string} */
appliedDate;
/** @type {JobApplicationStatus} */
applicationStatus;
/** @type {JobApplicationAttachment[]} */
attachments = [];
/** @type {JobApplicationEvent[]} */
events = [];
/** @type {PhoneScreen} */
phoneScreen;
/** @type {Interview} */
interview;
/** @type {JobOffer} */
jobOffer;
}
export class Job extends AuditBase {
/** @param {{id?:number,title?:string,employmentType?:EmploymentType,company?:string,location?:string,salaryRangeLower?:number,salaryRangeUpper?:number,description?:string,applications?:JobApplication[],closing?:string,createdDate?:string,createdBy?:string,modifiedDate?:string,modifiedBy?:string,deletedDate?:string,deletedBy?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {number} */
id;
/** @type {string} */
title;
/** @type {EmploymentType} */
employmentType;
/** @type {string} */
company;
/** @type {string} */
location;
/** @type {number} */
salaryRangeLower;
/** @type {number} */
salaryRangeUpper;
/** @type {string} */
description;
/** @type {JobApplication[]} */
applications = [];
/** @type {string} */
closing;
}
export class QueryJobs extends QueryDb {
/** @param {{id?:number,ids?:number[],skip?:number,take?:number,orderBy?:string,orderByDesc?:string,include?:string,fields?:string,meta?:{ [index:string]: string; }}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {?number} */
id;
/** @type {?number[]} */
ids;
}
export class Todo {
/** @param {{id?:number,text?:string,isFinished?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
id;
/** @type {string} */
text;
/** @type {boolean} */
isFinished;
}
/** @typedef T {any} */
export class QueryResponse {
/** @param {{offset?:number,total?:number,results?:T[],meta?:{ [index:string]: string; },responseStatus?:ResponseStatus}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
offset;
/** @type {number} */
total;
/** @type {T[]} */
results;
/** @type {{ [index:string]: string; }} */
meta;
/** @type {ResponseStatus} */
responseStatus;
}
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 } } }