/* Options: Date: 2026-09-01 21:45:24 Version: 10.09 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://blazor-gallery.servicestack.net //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: QueryJobApplications.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class JobApplicationAttachment implements IConvertible { int id = 0; // @References(typeof(JobApplication)) int jobApplicationId = 0; String fileName = ""; String filePath = ""; String contentType = ""; int contentLength = 0; JobApplicationAttachment({this.id=0,this.jobApplicationId=0,this.fileName="",this.filePath="",this.contentType="",this.contentLength=0}); JobApplicationAttachment.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id'] ?? 0; jobApplicationId = json['jobApplicationId'] ?? 0; fileName = json['fileName'] ?? ""; filePath = json['filePath'] ?? ""; contentType = json['contentType'] ?? ""; contentLength = json['contentLength'] ?? 0; return this; } Map toJson() => { 'id': id, 'jobApplicationId': jobApplicationId, 'fileName': fileName, 'filePath': filePath, 'contentType': contentType, 'contentLength': contentLength }; getTypeName() => "JobApplicationAttachment"; TypeContext? context = _ctx; } class AppUser implements IConvertible { String id = ""; String? firstName; String? lastName; String? displayName; String? profileUrl; AppUser({this.id="",this.firstName,this.lastName,this.displayName,this.profileUrl}); AppUser.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id'] ?? ""; firstName = json['firstName']; lastName = json['lastName']; displayName = json['displayName']; profileUrl = json['profileUrl']; return this; } Map toJson() => { 'id': id, 'firstName': firstName, 'lastName': lastName, 'displayName': displayName, 'profileUrl': profileUrl }; getTypeName() => "AppUser"; TypeContext? context = _ctx; } enum EmploymentType { FullTime, PartTime, Casual, Contract, } class Job extends AuditBase implements IConvertible { int id = 0; String title = ""; EmploymentType? employmentType; String company = ""; String location = ""; int salaryRangeLower = 0; int salaryRangeUpper = 0; String description = ""; List applications = []; DateTime? closing; Job({this.id=0,this.title="",this.employmentType,this.company="",this.location="",this.salaryRangeLower=0,this.salaryRangeUpper=0,this.description="",this.applications=const [],this.closing}); Job.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id'] ?? 0; title = json['title'] ?? ""; employmentType = JsonConverters.fromJson(json['employmentType'],'EmploymentType',context!); company = json['company'] ?? ""; location = json['location'] ?? ""; salaryRangeLower = json['salaryRangeLower'] ?? 0; salaryRangeUpper = json['salaryRangeUpper'] ?? 0; description = json['description'] ?? ""; applications = JsonConverters.fromJson(json['applications'],'List',context!) ?? []; closing = JsonConverters.fromJson(json['closing'],'DateTime',context!) ?? DateTime(0); return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'title': title, 'employmentType': JsonConverters.toJson(employmentType,'EmploymentType',context!), 'company': company, 'location': location, 'salaryRangeLower': salaryRangeLower, 'salaryRangeUpper': salaryRangeUpper, 'description': description, 'applications': JsonConverters.toJson(applications,'List',context!), 'closing': JsonConverters.toJson(closing,'DateTime',context!) }); getTypeName() => "Job"; TypeContext? context = _ctx; } class Contact implements IConvertible { int id = 0; // @computed() String displayName = ""; String profileUrl = ""; String firstName = ""; String lastName = ""; int? salaryExpectation; String jobType = ""; int availabilityWeeks = 0; EmploymentType? preferredWorkType; String preferredLocation = ""; String email = ""; String phone = ""; List? skills; String about = ""; List applications = []; Contact({this.id=0,this.displayName="",this.profileUrl="",this.firstName="",this.lastName="",this.salaryExpectation,this.jobType="",this.availabilityWeeks=0,this.preferredWorkType,this.preferredLocation="",this.email="",this.phone="",this.skills,this.about="",this.applications=const []}); Contact.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id'] ?? 0; displayName = json['displayName'] ?? ""; profileUrl = json['profileUrl'] ?? ""; firstName = json['firstName'] ?? ""; lastName = json['lastName'] ?? ""; salaryExpectation = json['salaryExpectation']; jobType = json['jobType'] ?? ""; availabilityWeeks = json['availabilityWeeks'] ?? 0; preferredWorkType = JsonConverters.fromJson(json['preferredWorkType'],'EmploymentType',context!); preferredLocation = json['preferredLocation'] ?? ""; email = json['email'] ?? ""; phone = json['phone'] ?? ""; skills = JsonConverters.fromJson(json['skills'],'List',context!); about = json['about'] ?? ""; applications = JsonConverters.fromJson(json['applications'],'List',context!) ?? []; return this; } Map toJson() => { 'id': id, 'displayName': displayName, 'profileUrl': profileUrl, 'firstName': firstName, 'lastName': lastName, 'salaryExpectation': salaryExpectation, 'jobType': jobType, 'availabilityWeeks': availabilityWeeks, 'preferredWorkType': JsonConverters.toJson(preferredWorkType,'EmploymentType',context!), 'preferredLocation': preferredLocation, 'email': email, 'phone': phone, 'skills': JsonConverters.toJson(skills,'List',context!), 'about': about, 'applications': JsonConverters.toJson(applications,'List',context!) }; getTypeName() => "Contact"; TypeContext? context = _ctx; } class JobApplicationComment extends AuditBase implements IConvertible { int id = 0; // @References(typeof(AppUser)) String appUserId = ""; AppUser? appUser; // @References(typeof(JobApplication)) int jobApplicationId = 0; String comment = ""; JobApplicationComment({this.id=0,this.appUserId="",this.appUser,this.jobApplicationId=0,this.comment=""}); JobApplicationComment.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id'] ?? 0; appUserId = json['appUserId'] ?? ""; appUser = JsonConverters.fromJson(json['appUser'],'AppUser',context!); jobApplicationId = json['jobApplicationId'] ?? 0; comment = json['comment'] ?? ""; return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'appUserId': appUserId, 'appUser': JsonConverters.toJson(appUser,'AppUser',context!), 'jobApplicationId': jobApplicationId, 'comment': comment }); getTypeName() => "JobApplicationComment"; TypeContext? context = _ctx; } enum JobApplicationStatus { Applied, PhoneScreening, PhoneScreeningCompleted, Interview, InterviewCompleted, Offer, Disqualified, } class JobApplicationEvent extends AuditBase implements IConvertible { int id = 0; // @References(typeof(JobApplication)) int jobApplicationId = 0; // @References(typeof(AppUser)) String appUserId = ""; AppUser? appUser; String description = ""; JobApplicationStatus? status; DateTime? eventDate; JobApplicationEvent({this.id=0,this.jobApplicationId=0,this.appUserId="",this.appUser,this.description="",this.status,this.eventDate}); JobApplicationEvent.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id'] ?? 0; jobApplicationId = json['jobApplicationId'] ?? 0; appUserId = json['appUserId'] ?? ""; appUser = JsonConverters.fromJson(json['appUser'],'AppUser',context!); description = json['description'] ?? ""; status = JsonConverters.fromJson(json['status'],'JobApplicationStatus',context!); eventDate = JsonConverters.fromJson(json['eventDate'],'DateTime',context!) ?? DateTime(0); return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'jobApplicationId': jobApplicationId, 'appUserId': appUserId, 'appUser': JsonConverters.toJson(appUser,'AppUser',context!), 'description': description, 'status': JsonConverters.toJson(status,'JobApplicationStatus',context!), 'eventDate': JsonConverters.toJson(eventDate,'DateTime',context!) }); getTypeName() => "JobApplicationEvent"; TypeContext? context = _ctx; } class PhoneScreen extends AuditBase implements IConvertible { int id = 0; // @References(typeof(AppUser)) String appUserId = ""; AppUser? appUser; // @References(typeof(JobApplication)) int jobApplicationId = 0; JobApplicationStatus? applicationStatus; String notes = ""; PhoneScreen({this.id=0,this.appUserId="",this.appUser,this.jobApplicationId=0,this.applicationStatus,this.notes=""}); PhoneScreen.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id'] ?? 0; appUserId = json['appUserId'] ?? ""; appUser = JsonConverters.fromJson(json['appUser'],'AppUser',context!); jobApplicationId = json['jobApplicationId'] ?? 0; applicationStatus = JsonConverters.fromJson(json['applicationStatus'],'JobApplicationStatus',context!); notes = json['notes'] ?? ""; return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'appUserId': appUserId, 'appUser': JsonConverters.toJson(appUser,'AppUser',context!), 'jobApplicationId': jobApplicationId, 'applicationStatus': JsonConverters.toJson(applicationStatus,'JobApplicationStatus',context!), 'notes': notes }); getTypeName() => "PhoneScreen"; TypeContext? context = _ctx; } class Interview extends AuditBase implements IConvertible { int id = 0; DateTime? bookingTime; // @References(typeof(JobApplication)) int jobApplicationId = 0; // @References(typeof(AppUser)) String appUserId = ""; AppUser? appUser; JobApplicationStatus? applicationStatus; String notes = ""; Interview({this.id=0,this.bookingTime,this.jobApplicationId=0,this.appUserId="",this.appUser,this.applicationStatus,this.notes=""}); Interview.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id'] ?? 0; bookingTime = JsonConverters.fromJson(json['bookingTime'],'DateTime',context!) ?? DateTime(0); jobApplicationId = json['jobApplicationId'] ?? 0; appUserId = json['appUserId'] ?? ""; appUser = JsonConverters.fromJson(json['appUser'],'AppUser',context!); applicationStatus = JsonConverters.fromJson(json['applicationStatus'],'JobApplicationStatus',context!); notes = json['notes'] ?? ""; return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'bookingTime': JsonConverters.toJson(bookingTime,'DateTime',context!), 'jobApplicationId': jobApplicationId, 'appUserId': appUserId, 'appUser': JsonConverters.toJson(appUser,'AppUser',context!), 'applicationStatus': JsonConverters.toJson(applicationStatus,'JobApplicationStatus',context!), 'notes': notes }); getTypeName() => "Interview"; TypeContext? context = _ctx; } class JobOffer extends AuditBase implements IConvertible { int id = 0; int salaryOffer = 0; String currency = ""; // @References(typeof(JobApplication)) int jobApplicationId = 0; // @References(typeof(AppUser)) String appUserId = ""; AppUser? appUser; String notes = ""; JobOffer({this.id=0,this.salaryOffer=0,this.currency="",this.jobApplicationId=0,this.appUserId="",this.appUser,this.notes=""}); JobOffer.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id'] ?? 0; salaryOffer = json['salaryOffer'] ?? 0; currency = json['currency'] ?? ""; jobApplicationId = json['jobApplicationId'] ?? 0; appUserId = json['appUserId'] ?? ""; appUser = JsonConverters.fromJson(json['appUser'],'AppUser',context!); notes = json['notes'] ?? ""; return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'salaryOffer': salaryOffer, 'currency': currency, 'jobApplicationId': jobApplicationId, 'appUserId': appUserId, 'appUser': JsonConverters.toJson(appUser,'AppUser',context!), 'notes': notes }); getTypeName() => "JobOffer"; TypeContext? context = _ctx; } class JobApplication implements IConvertible { int id = 0; // @References(typeof(Job)) int jobId = 0; // @References(typeof(Contact)) int contactId = 0; Job? position; Contact? applicant; List comments = []; DateTime? appliedDate; JobApplicationStatus? applicationStatus; List attachments = []; List events = []; PhoneScreen? phoneScreen; Interview? interview; JobOffer? jobOffer; JobApplication({this.id=0,this.jobId=0,this.contactId=0,this.position,this.applicant,this.comments=const [],this.appliedDate,this.applicationStatus,this.attachments=const [],this.events=const [],this.phoneScreen,this.interview,this.jobOffer}); JobApplication.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id'] ?? 0; jobId = json['jobId'] ?? 0; contactId = json['contactId'] ?? 0; position = JsonConverters.fromJson(json['position'],'Job',context!); applicant = JsonConverters.fromJson(json['applicant'],'Contact',context!); comments = JsonConverters.fromJson(json['comments'],'List',context!) ?? []; appliedDate = JsonConverters.fromJson(json['appliedDate'],'DateTime',context!) ?? DateTime(0); applicationStatus = JsonConverters.fromJson(json['applicationStatus'],'JobApplicationStatus',context!); attachments = JsonConverters.fromJson(json['attachments'],'List',context!) ?? []; events = JsonConverters.fromJson(json['events'],'List',context!) ?? []; phoneScreen = JsonConverters.fromJson(json['phoneScreen'],'PhoneScreen',context!); interview = JsonConverters.fromJson(json['interview'],'Interview',context!); jobOffer = JsonConverters.fromJson(json['jobOffer'],'JobOffer',context!); return this; } Map toJson() => { 'id': id, 'jobId': jobId, 'contactId': contactId, 'position': JsonConverters.toJson(position,'Job',context!), 'applicant': JsonConverters.toJson(applicant,'Contact',context!), 'comments': JsonConverters.toJson(comments,'List',context!), 'appliedDate': JsonConverters.toJson(appliedDate,'DateTime',context!), 'applicationStatus': JsonConverters.toJson(applicationStatus,'JobApplicationStatus',context!), 'attachments': JsonConverters.toJson(attachments,'List',context!), 'events': JsonConverters.toJson(events,'List',context!), 'phoneScreen': JsonConverters.toJson(phoneScreen,'PhoneScreen',context!), 'interview': JsonConverters.toJson(interview,'Interview',context!), 'jobOffer': JsonConverters.toJson(jobOffer,'JobOffer',context!) }; getTypeName() => "JobApplication"; TypeContext? context = _ctx; } class QueryJobApplications extends QueryDb implements IReturn>, IConvertible, IGet { int? id; List? ids; int? jobId; QueryJobApplications({this.id,this.ids,this.jobId}); QueryJobApplications.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); id = json['id']; ids = JsonConverters.fromJson(json['ids'],'List',context!); jobId = json['jobId']; return this; } Map toJson() => super.toJson()..addAll({ 'id': id, 'ids': JsonConverters.toJson(ids,'List',context!), 'jobId': jobId }); createResponse() => QueryResponse(); getResponseTypeName() => "QueryResponse"; getTypeName() => "QueryJobApplications"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'blazor_gallery.servicestack.net', types: { 'JobApplicationAttachment': TypeInfo(TypeOf.Class, create:() => JobApplicationAttachment()), 'AppUser': TypeInfo(TypeOf.Class, create:() => AppUser()), 'EmploymentType': TypeInfo(TypeOf.Enum, enumValues:EmploymentType.values), 'Job': TypeInfo(TypeOf.Class, create:() => Job()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'JobApplication': TypeInfo(TypeOf.Class, create:() => JobApplication()), 'Contact': TypeInfo(TypeOf.Class, create:() => Contact()), 'JobApplicationComment': TypeInfo(TypeOf.Class, create:() => JobApplicationComment()), 'JobApplicationStatus': TypeInfo(TypeOf.Enum, enumValues:JobApplicationStatus.values), 'JobApplicationEvent': TypeInfo(TypeOf.Class, create:() => JobApplicationEvent()), 'PhoneScreen': TypeInfo(TypeOf.Class, create:() => PhoneScreen()), 'Interview': TypeInfo(TypeOf.Class, create:() => Interview()), 'JobOffer': TypeInfo(TypeOf.Class, create:() => JobOffer()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'QueryResponse': TypeInfo(TypeOf.Class, create:() => QueryResponse()), 'QueryJobApplications': TypeInfo(TypeOf.Class, create:() => QueryJobApplications()), });