/* Options: Date: 2026-04-04 10:24:09 Version: 8.52 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://pfapi.pstpf.com.au/api //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetPagedContactsInRole.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; enum SortOrder { Ascending, Descending, } class PagedModel implements IConvertible { /** * Page Number to retrieve */ // @ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber") int? PageNumber; /** * Number of records to retrieve */ // @ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize") int? PageSize; /** * Index of field to sort results by */ // @ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex") int? SortIndex; /** * Sort Order - Ascending or Descending */ // @ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder") SortOrder? SortOrder; PagedModel({this.PageNumber,this.PageSize,this.SortIndex,this.SortOrder}); PagedModel.fromJson(Map json) { fromMap(json); } fromMap(Map json) { PageNumber = json['PageNumber']; PageSize = json['PageSize']; SortIndex = json['SortIndex']; SortOrder = JsonConverters.fromJson(json['SortOrder'],'SortOrder',context!); return this; } Map toJson() => { 'PageNumber': PageNumber, 'PageSize': PageSize, 'SortIndex': SortIndex, 'SortOrder': JsonConverters.toJson(SortOrder,'SortOrder',context!) }; getTypeName() => "PagedModel"; TypeContext? context = _ctx; } class ContactSummaryModel implements IConvertible { /** * Contact linked to the profile */ // @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId") String? ContactId; /** * Full name of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Full name of the contact linked to the profile", Name="ContactFullName") String? ContactFullName; /** * Email Address of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Email Address of the contact linked to the profile", Name="EmailAddress") String? EmailAddress; /** * Mobile Number of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Mobile Number of the contact linked to the profile", Name="MobileNumber") String? MobileNumber; /** * Primary Phone Number of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Primary Phone Number of the contact linked to the profile", Name="PhoneNumber") String? PhoneNumber; /** * Type of contact (person, organisation etc.) linked to the profile */ // @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeId") String? ContactTypeId; /** * Profile photo of contact linked to the profile */ // @ApiMember(DataType="string", Description="Profile photo of contact linked to the profile", Name="ProfilePhotoUrl") String? ProfilePhotoUrl; /** * Thumbnail photo of contact linked to the profile */ // @ApiMember(DataType="string", Description="Thumbnail photo of contact linked to the profile", Name="ProfilePhotoThumbnailUrl") String? ProfilePhotoThumbnailUrl; /** * Profile description */ // @ApiMember(DataType="string", Description="Profile description", Name="Description") String? Description; /** * Employment Industry */ // @ApiMember(DataType="string", Description="Employment Industry", Name="EmploymentIndustry") String? EmploymentIndustry; /** * Employment Role */ // @ApiMember(DataType="string", Description="Employment Role", Name="EmploymentRole") String? EmploymentRole; /** * Areas of Work */ // @ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea") String? EmploymentGeographicArea; /** * Timezone Name */ // @ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query") String? TimezoneName; /** * The primary address of the contact */ // @ApiMember(DataType="string", Description="The primary address of the contact", Name="PrimaryAddress", ParameterType="query") String? PrimaryAddress; /** * Have all connections to the contact been removed? */ // @ApiMember(DataType="bool", Description="Have all connections to the contact been removed?", Name="IsRemovedContact") bool? IsRemovedContact; ContactSummaryModel({this.ContactId,this.ContactFullName,this.EmailAddress,this.MobileNumber,this.PhoneNumber,this.ContactTypeId,this.ProfilePhotoUrl,this.ProfilePhotoThumbnailUrl,this.Description,this.EmploymentIndustry,this.EmploymentRole,this.EmploymentGeographicArea,this.TimezoneName,this.PrimaryAddress,this.IsRemovedContact}); ContactSummaryModel.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ContactId = json['ContactId']; ContactFullName = json['ContactFullName']; EmailAddress = json['EmailAddress']; MobileNumber = json['MobileNumber']; PhoneNumber = json['PhoneNumber']; ContactTypeId = json['ContactTypeId']; ProfilePhotoUrl = json['ProfilePhotoUrl']; ProfilePhotoThumbnailUrl = json['ProfilePhotoThumbnailUrl']; Description = json['Description']; EmploymentIndustry = json['EmploymentIndustry']; EmploymentRole = json['EmploymentRole']; EmploymentGeographicArea = json['EmploymentGeographicArea']; TimezoneName = json['TimezoneName']; PrimaryAddress = json['PrimaryAddress']; IsRemovedContact = json['IsRemovedContact']; return this; } Map toJson() => { 'ContactId': ContactId, 'ContactFullName': ContactFullName, 'EmailAddress': EmailAddress, 'MobileNumber': MobileNumber, 'PhoneNumber': PhoneNumber, 'ContactTypeId': ContactTypeId, 'ProfilePhotoUrl': ProfilePhotoUrl, 'ProfilePhotoThumbnailUrl': ProfilePhotoThumbnailUrl, 'Description': Description, 'EmploymentIndustry': EmploymentIndustry, 'EmploymentRole': EmploymentRole, 'EmploymentGeographicArea': EmploymentGeographicArea, 'TimezoneName': TimezoneName, 'PrimaryAddress': PrimaryAddress, 'IsRemovedContact': IsRemovedContact }; getTypeName() => "ContactSummaryModel"; TypeContext? context = _ctx; } // @ApiResponse(Description="Contacts connected to contact by criteria, returning minimal number of columns, and response status") class GetSlimContactsResponse implements IConvertible { List? Contacts; int? TotalContacts; ResponseStatus? ResponseStatus; GetSlimContactsResponse({this.Contacts,this.TotalContacts,this.ResponseStatus}); GetSlimContactsResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Contacts = JsonConverters.fromJson(json['Contacts'],'List',context!); TotalContacts = json['TotalContacts']; ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'Contacts': JsonConverters.toJson(Contacts,'List',context!), 'TotalContacts': TotalContacts, 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "GetSlimContactsResponse"; TypeContext? context = _ctx; } // @Route("/contacts/paged/{RoleId}") class GetPagedContactsInRole extends PagedModel implements IReturn, IConvertible, IGet { /** * Get contacts connected to the current licensee in the specified role */ // @ApiMember(Description="Get contacts connected to the current licensee in the specified role", Name="RoleId") String? RoleId; /** * Get contacts of the specified type */ // @ApiMember(Description="Get contacts of the specified type", Name="ContactTypes") List? ContactTypes; /** * Contact statuses to search for, i.e. Real and/or Virtual */ // @ApiMember(DataType="List", Description="Contact statuses to search for, i.e. Real and/or Virtual", IsRequired=true, Name="Statuses") List? Statuses = []; /** * Text to filter contacts on. searches for a contact with matches to the string. */ // @ApiMember(DataType="string", Description="Text to filter contacts on. searches for a contact with matches to the string.", Name="SearchText") String? SearchText; /** * If you want just bare-bones contact info set this to false, if not specified it defaults to true. */ // @ApiMember(DataType="bool?", Description="If you want just bare-bones contact info set this to false, if not specified it defaults to true.", Name="IncludeDetails") bool? IncludeDetails; GetPagedContactsInRole({this.RoleId,this.ContactTypes,this.Statuses,this.SearchText,this.IncludeDetails}); GetPagedContactsInRole.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); RoleId = json['RoleId']; ContactTypes = JsonConverters.fromJson(json['ContactTypes'],'List',context!); Statuses = JsonConverters.fromJson(json['Statuses'],'List',context!); SearchText = json['SearchText']; IncludeDetails = json['IncludeDetails']; return this; } Map toJson() => super.toJson()..addAll({ 'RoleId': RoleId, 'ContactTypes': JsonConverters.toJson(ContactTypes,'List',context!), 'Statuses': JsonConverters.toJson(Statuses,'List',context!), 'SearchText': SearchText, 'IncludeDetails': IncludeDetails }); createResponse() => GetSlimContactsResponse(); getResponseTypeName() => "GetSlimContactsResponse"; getTypeName() => "GetPagedContactsInRole"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'pfapi.pstpf.com.au', types: { 'SortOrder': TypeInfo(TypeOf.Enum, enumValues:SortOrder.values), 'PagedModel': TypeInfo(TypeOf.Class, create:() => PagedModel()), 'ContactSummaryModel': TypeInfo(TypeOf.Class, create:() => ContactSummaryModel()), 'GetSlimContactsResponse': TypeInfo(TypeOf.Class, create:() => GetSlimContactsResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetPagedContactsInRole': TypeInfo(TypeOf.Class, create:() => GetPagedContactsInRole()), });