MyApp

<back to all web services

QueryJobs

Talent
import Foundation
import ServiceStack

public class QueryJobs : QueryDb<Job>
{
    public var id:Int?
    public var ids:[Int]

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case ids
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(Int.self, forKey: .id)
        ids = try container.decodeIfPresent([Int].self, forKey: .ids) ?? []
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if ids.count > 0 { try container.encode(ids, forKey: .ids) }
    }
}

public class Job : AuditBase
{
    public var id:Int
    public var title:String
    public var employmentType:EmploymentType
    public var company:String
    public var location:String
    public var salaryRangeLower:Int
    public var salaryRangeUpper:Int
    public var Description:String
    public var applications:[JobApplication] = []
    public var closing:Date

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case title
        case employmentType
        case company
        case location
        case salaryRangeLower
        case salaryRangeUpper
        case Description
        case applications
        case closing
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(Int.self, forKey: .id)
        title = try container.decodeIfPresent(String.self, forKey: .title)
        employmentType = try container.decodeIfPresent(EmploymentType.self, forKey: .employmentType)
        company = try container.decodeIfPresent(String.self, forKey: .company)
        location = try container.decodeIfPresent(String.self, forKey: .location)
        salaryRangeLower = try container.decodeIfPresent(Int.self, forKey: .salaryRangeLower)
        salaryRangeUpper = try container.decodeIfPresent(Int.self, forKey: .salaryRangeUpper)
        Description = try container.decodeIfPresent(String.self, forKey: .Description)
        applications = try container.decodeIfPresent([JobApplication].self, forKey: .applications) ?? []
        closing = try container.decodeIfPresent(Date.self, forKey: .closing)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if title != nil { try container.encode(title, forKey: .title) }
        if employmentType != nil { try container.encode(employmentType, forKey: .employmentType) }
        if company != nil { try container.encode(company, forKey: .company) }
        if location != nil { try container.encode(location, forKey: .location) }
        if salaryRangeLower != nil { try container.encode(salaryRangeLower, forKey: .salaryRangeLower) }
        if salaryRangeUpper != nil { try container.encode(salaryRangeUpper, forKey: .salaryRangeUpper) }
        if Description != nil { try container.encode(Description, forKey: .Description) }
        if applications.count > 0 { try container.encode(applications, forKey: .applications) }
        if closing != nil { try container.encode(closing, forKey: .closing) }
    }
}

public enum EmploymentType : String, Codable
{
    case FullTime
    case PartTime
    case Casual
    case Contract
}

public class JobApplication : Codable
{
    public var id:Int
    // @References(typeof(Job))
    public var jobId:Int

    // @References(typeof(Contact))
    public var contactId:Int

    public var position:Job
    public var applicant:Contact
    public var comments:[JobApplicationComment] = []
    public var appliedDate:Date
    public var applicationStatus:JobApplicationStatus
    public var attachments:[JobApplicationAttachment] = []
    public var events:[JobApplicationEvent] = []
    public var phoneScreen:PhoneScreen
    public var interview:Interview
    public var jobOffer:JobOffer

    required public init(){}
}

public class Contact : Codable
{
    public var id:Int
    // @Computed()
    public var displayName:String

    public var profileUrl:String
    public var firstName:String
    public var lastName:String
    public var salaryExpectation:Int?
    public var jobType:String
    public var availabilityWeeks:Int
    public var preferredWorkType:EmploymentType
    public var preferredLocation:String
    public var email:String
    public var phone:String
    public var skills:[String] = []
    public var about:String
    public var applications:[JobApplication] = []

    required public init(){}
}

public class JobApplicationComment : AuditBase
{
    public var id:Int
    // @References(typeof(AppUser))
    public var appUserId:String

    public var appUser:AppUser
    // @References(typeof(JobApplication))
    public var jobApplicationId:Int

    public var comment:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case appUserId
        case appUser
        case jobApplicationId
        case comment
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(Int.self, forKey: .id)
        appUserId = try container.decodeIfPresent(String.self, forKey: .appUserId)
        appUser = try container.decodeIfPresent(AppUser.self, forKey: .appUser)
        jobApplicationId = try container.decodeIfPresent(Int.self, forKey: .jobApplicationId)
        comment = try container.decodeIfPresent(String.self, forKey: .comment)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if appUserId != nil { try container.encode(appUserId, forKey: .appUserId) }
        if appUser != nil { try container.encode(appUser, forKey: .appUser) }
        if jobApplicationId != nil { try container.encode(jobApplicationId, forKey: .jobApplicationId) }
        if comment != nil { try container.encode(comment, forKey: .comment) }
    }
}

public class AppUser : Codable
{
    public var id:String
    public var firstName:String
    public var lastName:String
    public var displayName:String
    public var profileUrl:String

    required public init(){}
}

public enum JobApplicationStatus : String, Codable
{
    case Applied
    case PhoneScreening
    case PhoneScreeningCompleted
    case Interview
    case InterviewCompleted
    case Offer
    case Disqualified
}

public class JobApplicationAttachment : Codable
{
    public var id:Int
    // @References(typeof(JobApplication))
    public var jobApplicationId:Int

    public var fileName:String
    public var filePath:String
    public var contentType:String
    public var contentLength:Int

    required public init(){}
}

public class JobApplicationEvent : AuditBase
{
    public var id:Int
    // @References(typeof(JobApplication))
    public var jobApplicationId:Int

    // @References(typeof(AppUser))
    public var appUserId:String

    public var appUser:AppUser
    public var Description:String
    public var status:JobApplicationStatus?
    public var eventDate:Date

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case jobApplicationId
        case appUserId
        case appUser
        case Description
        case status
        case eventDate
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(Int.self, forKey: .id)
        jobApplicationId = try container.decodeIfPresent(Int.self, forKey: .jobApplicationId)
        appUserId = try container.decodeIfPresent(String.self, forKey: .appUserId)
        appUser = try container.decodeIfPresent(AppUser.self, forKey: .appUser)
        Description = try container.decodeIfPresent(String.self, forKey: .Description)
        status = try container.decodeIfPresent(JobApplicationStatus.self, forKey: .status)
        eventDate = try container.decodeIfPresent(Date.self, forKey: .eventDate)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if jobApplicationId != nil { try container.encode(jobApplicationId, forKey: .jobApplicationId) }
        if appUserId != nil { try container.encode(appUserId, forKey: .appUserId) }
        if appUser != nil { try container.encode(appUser, forKey: .appUser) }
        if Description != nil { try container.encode(Description, forKey: .Description) }
        if status != nil { try container.encode(status, forKey: .status) }
        if eventDate != nil { try container.encode(eventDate, forKey: .eventDate) }
    }
}

public class PhoneScreen : AuditBase
{
    public var id:Int
    // @References(typeof(AppUser))
    public var appUserId:String

    public var appUser:AppUser
    // @References(typeof(JobApplication))
    public var jobApplicationId:Int

    public var applicationStatus:JobApplicationStatus?
    public var notes:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case appUserId
        case appUser
        case jobApplicationId
        case applicationStatus
        case notes
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(Int.self, forKey: .id)
        appUserId = try container.decodeIfPresent(String.self, forKey: .appUserId)
        appUser = try container.decodeIfPresent(AppUser.self, forKey: .appUser)
        jobApplicationId = try container.decodeIfPresent(Int.self, forKey: .jobApplicationId)
        applicationStatus = try container.decodeIfPresent(JobApplicationStatus.self, forKey: .applicationStatus)
        notes = try container.decodeIfPresent(String.self, forKey: .notes)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if appUserId != nil { try container.encode(appUserId, forKey: .appUserId) }
        if appUser != nil { try container.encode(appUser, forKey: .appUser) }
        if jobApplicationId != nil { try container.encode(jobApplicationId, forKey: .jobApplicationId) }
        if applicationStatus != nil { try container.encode(applicationStatus, forKey: .applicationStatus) }
        if notes != nil { try container.encode(notes, forKey: .notes) }
    }
}

public class Interview : AuditBase
{
    public var id:Int
    public var bookingTime:Date
    // @References(typeof(JobApplication))
    public var jobApplicationId:Int

    // @References(typeof(AppUser))
    public var appUserId:String

    public var appUser:AppUser
    public var applicationStatus:JobApplicationStatus?
    public var notes:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case bookingTime
        case jobApplicationId
        case appUserId
        case appUser
        case applicationStatus
        case notes
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(Int.self, forKey: .id)
        bookingTime = try container.decodeIfPresent(Date.self, forKey: .bookingTime)
        jobApplicationId = try container.decodeIfPresent(Int.self, forKey: .jobApplicationId)
        appUserId = try container.decodeIfPresent(String.self, forKey: .appUserId)
        appUser = try container.decodeIfPresent(AppUser.self, forKey: .appUser)
        applicationStatus = try container.decodeIfPresent(JobApplicationStatus.self, forKey: .applicationStatus)
        notes = try container.decodeIfPresent(String.self, forKey: .notes)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if bookingTime != nil { try container.encode(bookingTime, forKey: .bookingTime) }
        if jobApplicationId != nil { try container.encode(jobApplicationId, forKey: .jobApplicationId) }
        if appUserId != nil { try container.encode(appUserId, forKey: .appUserId) }
        if appUser != nil { try container.encode(appUser, forKey: .appUser) }
        if applicationStatus != nil { try container.encode(applicationStatus, forKey: .applicationStatus) }
        if notes != nil { try container.encode(notes, forKey: .notes) }
    }
}

public class JobOffer : AuditBase
{
    public var id:Int
    public var salaryOffer:Int
    public var currency:String
    // @References(typeof(JobApplication))
    public var jobApplicationId:Int

    // @References(typeof(AppUser))
    public var appUserId:String

    public var appUser:AppUser
    public var notes:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case id
        case salaryOffer
        case currency
        case jobApplicationId
        case appUserId
        case appUser
        case notes
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        id = try container.decodeIfPresent(Int.self, forKey: .id)
        salaryOffer = try container.decodeIfPresent(Int.self, forKey: .salaryOffer)
        currency = try container.decodeIfPresent(String.self, forKey: .currency)
        jobApplicationId = try container.decodeIfPresent(Int.self, forKey: .jobApplicationId)
        appUserId = try container.decodeIfPresent(String.self, forKey: .appUserId)
        appUser = try container.decodeIfPresent(AppUser.self, forKey: .appUser)
        notes = try container.decodeIfPresent(String.self, forKey: .notes)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if id != nil { try container.encode(id, forKey: .id) }
        if salaryOffer != nil { try container.encode(salaryOffer, forKey: .salaryOffer) }
        if currency != nil { try container.encode(currency, forKey: .currency) }
        if jobApplicationId != nil { try container.encode(jobApplicationId, forKey: .jobApplicationId) }
        if appUserId != nil { try container.encode(appUserId, forKey: .appUserId) }
        if appUser != nil { try container.encode(appUser, forKey: .appUser) }
        if notes != nil { try container.encode(notes, forKey: .notes) }
    }
}

public class Todo : Codable
{
    public var id:Int
    public var text:String
    public var isFinished:Bool

    required public init(){}
}


Swift QueryJobs DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + 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
		}
	}
}