/* Options: Date: 2024-12-22 21:29:50 Version: 8.51 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://blazor-gallery.servicestack.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: UpdateJob.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface IPatchDb { } export class JobApplicationAttachment { public id: number; // @References("typeof(MyApp.ServiceModel.JobApplication)") public jobApplicationId: number; public fileName: string; public filePath: string; public contentType: string; public contentLength: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AppUser { public id: string; public firstName?: string; public lastName?: string; public displayName?: string; public profileUrl?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum EmploymentType { FullTime = 'FullTime', PartTime = 'PartTime', Casual = 'Casual', Contract = 'Contract', } // @DataContract export class AuditBase { // @DataMember(Order=1) public createdDate: string; // @DataMember(Order=2) // @Required() public createdBy: string; // @DataMember(Order=3) public modifiedDate: string; // @DataMember(Order=4) // @Required() public modifiedBy: string; // @DataMember(Order=5) public deletedDate?: string; // @DataMember(Order=6) public deletedBy: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Job extends AuditBase { public id: number; public title: string; public employmentType: EmploymentType; public company: string; public location: string; public salaryRangeLower: number; public salaryRangeUpper: number; public description: string; public applications: JobApplication[] = []; public closing: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Contact { public id: number; // @Computed() public displayName: string; public profileUrl: string; public firstName: string; public lastName: string; public salaryExpectation?: number; public jobType: string; public availabilityWeeks: number; public preferredWorkType: EmploymentType; public preferredLocation: string; public email: string; public phone: string; public skills?: string[]; public about: string; public applications: JobApplication[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class JobApplicationComment extends AuditBase { public id: number; // @References("typeof(MyApp.ServiceModel.AppUser)") public appUserId: string; public appUser: AppUser; // @References("typeof(MyApp.ServiceModel.JobApplication)") public jobApplicationId: number; public comment: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export enum JobApplicationStatus { Applied = 'Applied', PhoneScreening = 'PhoneScreening', PhoneScreeningCompleted = 'PhoneScreeningCompleted', Interview = 'Interview', InterviewCompleted = 'InterviewCompleted', Offer = 'Offer', Disqualified = 'Disqualified', } export class JobApplicationEvent extends AuditBase { public id: number; // @References("typeof(MyApp.ServiceModel.JobApplication)") public jobApplicationId: number; // @References("typeof(MyApp.ServiceModel.AppUser)") public appUserId: string; public appUser: AppUser; public description: string; public status?: JobApplicationStatus; public eventDate: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class PhoneScreen extends AuditBase { public id: number; // @References("typeof(MyApp.ServiceModel.AppUser)") public appUserId: string; public appUser: AppUser; // @References("typeof(MyApp.ServiceModel.JobApplication)") public jobApplicationId: number; public applicationStatus?: JobApplicationStatus; public notes: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Interview extends AuditBase { public id: number; public bookingTime: string; // @References("typeof(MyApp.ServiceModel.JobApplication)") public jobApplicationId: number; // @References("typeof(MyApp.ServiceModel.AppUser)") public appUserId: string; public appUser: AppUser; public applicationStatus?: JobApplicationStatus; public notes: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class JobOffer extends AuditBase { public id: number; public salaryOffer: number; public currency: string; // @References("typeof(MyApp.ServiceModel.JobApplication)") public jobApplicationId: number; // @References("typeof(MyApp.ServiceModel.AppUser)") public appUserId: string; public appUser: AppUser; public notes: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class JobApplication { public id: number; // @References("typeof(MyApp.ServiceModel.Job)") public jobId: number; // @References("typeof(MyApp.ServiceModel.Contact)") public contactId: number; public position: Job; public applicant: Contact; public comments: JobApplicationComment[] = []; public appliedDate: string; public applicationStatus: JobApplicationStatus; public attachments: JobApplicationAttachment[] = []; public events: JobApplicationEvent[] = []; public phoneScreen: PhoneScreen; public interview: Interview; public jobOffer: JobOffer; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @ValidateRequest(Validator="IsAuthenticated") export class UpdateJob implements IReturn, IPatchDb { public id: number; public title?: string; public salaryRangeLower?: number; public salaryRangeUpper?: number; public description?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'UpdateJob'; } public getMethod() { return 'PATCH'; } public createResponse() { return new Job(); } }