/* Options: Date: 2026-04-04 06:47:57 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: SearchContactsForRole.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; 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; } class SearchContactsForRoleResponse implements IConvertible { List? Contacts; ResponseStatus? ResponseStatus; SearchContactsForRoleResponse({this.Contacts,this.ResponseStatus}); SearchContactsForRoleResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Contacts = JsonConverters.fromJson(json['Contacts'],'List',context!); ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'Contacts': JsonConverters.toJson(Contacts,'List',context!), 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "SearchContactsForRoleResponse"; TypeContext? context = _ctx; } /** * Search contacts by Name or Email Address, by Role Groups, or by Roles */ // @Route("/searchcontactsforroles") // @Api(Description="Search contacts by Name or Email Address, by Role Groups, or by Roles") class SearchContactsForRole implements IReturn, IConvertible, IGet { /** * Search type: by Name or Email Address, by Role Groups, or by Roles */ // @ApiMember(DataType="Guid", Description="Search type: by Name or Email Address, by Role Groups, or by Roles", IsRequired=true, Name="SearchBy") String? SearchBy; /** * Roles that contacts are connected to. */ // @ApiMember(DataType="List", Description="Roles that contacts are connected to.", Name="Roles") List? Roles; /** * Role Groups that contacts are connected to. */ // @ApiMember(DataType="List", Description="Role Groups that contacts are connected to.", Name="RoleGroups") List? RoleGroups; /** * For Search by Name or Email Address, filters contact results by this text value. */ // @ApiMember(DataType="string", Description="For Search by Name or Email Address, filters contact results by this text value.", Name="SearchText") String? SearchText; /** * Excludes contacts already connected to this role. */ // @ApiMember(DataType="Guid", Description="Excludes contacts already connected to this role.", Name="ExcludeRole") String? ExcludeRole; /** * Filters contact results by contact type(s) provided, e.g. Real Persons, Organisations etc. Defaults to real person. */ // @ApiMember(DataType="List", Description="Filters contact results by contact type(s) provided, e.g. Real Persons, Organisations etc. Defaults to real person.", Name="ContactTypes") List? ContactTypes; /** * Determines whether the contact details (Email, mobile number etc.) to be returned. */ // @ApiMember(DataType="Bool", Description="Determines whether the contact details (Email, mobile number etc.) to be returned.", Name="IncludeDetails") bool? IncludeDetails; SearchContactsForRole({this.SearchBy,this.Roles,this.RoleGroups,this.SearchText,this.ExcludeRole,this.ContactTypes,this.IncludeDetails}); SearchContactsForRole.fromJson(Map json) { fromMap(json); } fromMap(Map json) { SearchBy = json['SearchBy']; Roles = JsonConverters.fromJson(json['Roles'],'List',context!); RoleGroups = JsonConverters.fromJson(json['RoleGroups'],'List',context!); SearchText = json['SearchText']; ExcludeRole = json['ExcludeRole']; ContactTypes = JsonConverters.fromJson(json['ContactTypes'],'List',context!); IncludeDetails = json['IncludeDetails']; return this; } Map toJson() => { 'SearchBy': SearchBy, 'Roles': JsonConverters.toJson(Roles,'List',context!), 'RoleGroups': JsonConverters.toJson(RoleGroups,'List',context!), 'SearchText': SearchText, 'ExcludeRole': ExcludeRole, 'ContactTypes': JsonConverters.toJson(ContactTypes,'List',context!), 'IncludeDetails': IncludeDetails }; createResponse() => SearchContactsForRoleResponse(); getResponseTypeName() => "SearchContactsForRoleResponse"; getTypeName() => "SearchContactsForRole"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'pfapi.pstpf.com.au', types: { 'ContactSummaryModel': TypeInfo(TypeOf.Class, create:() => ContactSummaryModel()), 'SearchContactsForRoleResponse': TypeInfo(TypeOf.Class, create:() => SearchContactsForRoleResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SearchContactsForRole': TypeInfo(TypeOf.Class, create:() => SearchContactsForRole()), });