/* Options: Date: 2026-07-08 20:18:10 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: StaffMatchRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class StaffPosition implements IConvertible { int? PlaceholderContactID; int? JobID; int? ProjectID; String? JobName; String? PositionTag; List? Skills = []; double? BudgetedHours; double? TargetRate; String? StartDate; String? EndDate; String? WindowText; int? ResponsesActionable; String? PostingStatus; int? ApplicantTotal; int? ApplicantStrong; bool? Filled; StaffPosition({this.PlaceholderContactID,this.JobID,this.ProjectID,this.JobName,this.PositionTag,this.Skills,this.BudgetedHours,this.TargetRate,this.StartDate,this.EndDate,this.WindowText,this.ResponsesActionable,this.PostingStatus,this.ApplicantTotal,this.ApplicantStrong,this.Filled}); StaffPosition.fromJson(Map json) { fromMap(json); } fromMap(Map json) { PlaceholderContactID = json['PlaceholderContactID']; JobID = json['JobID']; ProjectID = json['ProjectID']; JobName = json['JobName']; PositionTag = json['PositionTag']; Skills = JsonConverters.fromJson(json['Skills'],'List',context!); BudgetedHours = JsonConverters.toDouble(json['BudgetedHours']); TargetRate = JsonConverters.toDouble(json['TargetRate']); StartDate = json['StartDate']; EndDate = json['EndDate']; WindowText = json['WindowText']; ResponsesActionable = json['ResponsesActionable']; PostingStatus = json['PostingStatus']; ApplicantTotal = json['ApplicantTotal']; ApplicantStrong = json['ApplicantStrong']; Filled = json['Filled']; return this; } Map toJson() => { 'PlaceholderContactID': PlaceholderContactID, 'JobID': JobID, 'ProjectID': ProjectID, 'JobName': JobName, 'PositionTag': PositionTag, 'Skills': JsonConverters.toJson(Skills,'List',context!), 'BudgetedHours': BudgetedHours, 'TargetRate': TargetRate, 'StartDate': StartDate, 'EndDate': EndDate, 'WindowText': WindowText, 'ResponsesActionable': ResponsesActionable, 'PostingStatus': PostingStatus, 'ApplicantTotal': ApplicantTotal, 'ApplicantStrong': ApplicantStrong, 'Filled': Filled }; getTypeName() => "StaffPosition"; TypeContext? context = _ctx; } class StaffSkillChip implements IConvertible { String? Name; bool? Matched; StaffSkillChip({this.Name,this.Matched}); StaffSkillChip.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Name = json['Name']; Matched = json['Matched']; return this; } Map toJson() => { 'Name': Name, 'Matched': Matched }; getTypeName() => "StaffSkillChip"; TypeContext? context = _ctx; } class StaffCandidate implements IConvertible { int? ContactID; String? Name; String? Kind; double? Rate; double? Rating; int? RatingCount; String? Base; int? DistanceMi; int? MatchCount; int? TotalRequired; List? Skills = []; bool? Conflict; String? BusyUntil; String? BusyJob; String? Phone; String? Email; bool? Sms; StaffCandidate({this.ContactID,this.Name,this.Kind,this.Rate,this.Rating,this.RatingCount,this.Base,this.DistanceMi,this.MatchCount,this.TotalRequired,this.Skills,this.Conflict,this.BusyUntil,this.BusyJob,this.Phone,this.Email,this.Sms}); StaffCandidate.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ContactID = json['ContactID']; Name = json['Name']; Kind = json['Kind']; Rate = JsonConverters.toDouble(json['Rate']); Rating = JsonConverters.toDouble(json['Rating']); RatingCount = json['RatingCount']; Base = json['Base']; DistanceMi = json['DistanceMi']; MatchCount = json['MatchCount']; TotalRequired = json['TotalRequired']; Skills = JsonConverters.fromJson(json['Skills'],'List',context!); Conflict = json['Conflict']; BusyUntil = json['BusyUntil']; BusyJob = json['BusyJob']; Phone = json['Phone']; Email = json['Email']; Sms = json['Sms']; return this; } Map toJson() => { 'ContactID': ContactID, 'Name': Name, 'Kind': Kind, 'Rate': Rate, 'Rating': Rating, 'RatingCount': RatingCount, 'Base': Base, 'DistanceMi': DistanceMi, 'MatchCount': MatchCount, 'TotalRequired': TotalRequired, 'Skills': JsonConverters.toJson(Skills,'List',context!), 'Conflict': Conflict, 'BusyUntil': BusyUntil, 'BusyJob': BusyJob, 'Phone': Phone, 'Email': Email, 'Sms': Sms }; getTypeName() => "StaffCandidate"; TypeContext? context = _ctx; } class StaffMatchResponse implements IConvertible { ResponseStatus? ResponseStatus; List? Candidates = []; StaffPosition? Position; StaffMatchResponse({this.ResponseStatus,this.Candidates,this.Position}); StaffMatchResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Candidates = JsonConverters.fromJson(json['Candidates'],'List',context!); Position = JsonConverters.fromJson(json['Position'],'StaffPosition',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Candidates': JsonConverters.toJson(Candidates,'List',context!), 'Position': JsonConverters.toJson(Position,'StaffPosition',context!) }; getTypeName() => "StaffMatchResponse"; TypeContext? context = _ctx; } // @Route("/v1/staff/match", "GET,OPTIONS") class StaffMatchRequest implements IReturn, IConvertible, IGet { int? PlaceholderContactID; int? JobID; StaffMatchRequest({this.PlaceholderContactID,this.JobID}); StaffMatchRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { PlaceholderContactID = json['PlaceholderContactID']; JobID = json['JobID']; return this; } Map toJson() => { 'PlaceholderContactID': PlaceholderContactID, 'JobID': JobID }; createResponse() => StaffMatchResponse(); getResponseTypeName() => "StaffMatchResponse"; getTypeName() => "StaffMatchRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'StaffPosition': TypeInfo(TypeOf.Class, create:() => StaffPosition()), 'StaffSkillChip': TypeInfo(TypeOf.Class, create:() => StaffSkillChip()), 'StaffCandidate': TypeInfo(TypeOf.Class, create:() => StaffCandidate()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'StaffMatchResponse': TypeInfo(TypeOf.Class, create:() => StaffMatchResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'StaffMatchRequest': TypeInfo(TypeOf.Class, create:() => StaffMatchRequest()), });