/* Options: Date: 2026-04-04 01:20:52 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: GetContactsForRoles.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class UserProfileModel extends UserProfileSummaryModel implements IConvertible { /** * Contact Date of Birth (when person type) */ // @ApiMember(DataType="DateTime?", Description="Contact Date of Birth (when person type)", Name="BirthDate", ParameterType="query") DateTime? BirthDate; /** * Contact marital status (when person type) */ // @ApiMember(DataType="string", Description="Contact marital status (when person type)", Name="MaritalStatusName", ParameterType="query") String? MaritalStatusName; /** * Contact gender (when person type) */ // @ApiMember(DataType="string", Description="Contact gender (when person type)", Name="GenderName", ParameterType="query") String? GenderName; /** * The Gender Guid of the contact. */ // @ApiMember(DataType="Guid", Description="The Gender Guid of the contact.", Name="GenderId", ParameterType="query") String? GenderId; /** * All contact details of the contact */ // @ApiMember(DataType="List", Description="All contact details of the contact", Name="ContactDetails", ParameterType="query") List? ContactDetails; /** * Primary Street Address */ // @ApiMember(DataType="ContactDetail", Description="Primary Street Address", Name="PrimaryStreetAddress ") ContactDetailModel? PrimaryStreetAddress; /** * Primary Postal Address */ // @ApiMember(DataType="ContactDetail", Description="Primary Postal Address", Name="PrimaryPostalAddress ") ContactDetailModel? PrimaryPostalAddress; /** * Primary Registered Address */ // @ApiMember(DataType="ContactDetail", Description="Primary Registered Address", Name="PrimaryRegisteredAddress ") ContactDetailModel? PrimaryRegisteredAddress; /** * Primary Email Address */ // @ApiMember(DataType="ContactDetail", Description="Primary Email Address", Name="PrimaryEmail ") ContactDetailModel? PrimaryEmail; /** * Primary Mobile Number */ // @ApiMember(DataType="ContactDetail", Description="Primary Mobile Number", Name="PrimaryMobile") ContactDetailModel? PrimaryMobile; /** * Primary Non-Mobile Number */ // @ApiMember(DataType="ContactDetail", Description="Primary Non-Mobile Number", Name="PrimaryPhone") ContactDetailModel? PrimaryPhone; /** * Primary Fax Number */ // @ApiMember(DataType="ContactDetail", Description="Primary Fax Number", Name="PrimaryFax") ContactDetailModel? PrimaryFax; /** * Primary Web Address */ // @ApiMember(DataType="ContactDetail", Description="Primary Web Address", Name="PrimaryWeb") ContactDetailModel? PrimaryWeb; /** * Social Media Twitter */ // @ApiMember(DataType="ContactDetail", Description="Social Media Twitter", Name="SocialMediaTwitter") ContactDetailModel? SocialMediaTwitter; /** * Social Media Facebook */ // @ApiMember(DataType="ContactDetail", Description="Social Media Facebook", Name="SocialMediaFacebook") ContactDetailModel? SocialMediaFacebook; /** * Social Media Instagram */ // @ApiMember(DataType="ContactDetail", Description="Social Media Instagram", Name="SocialMediaInstagram") ContactDetailModel? SocialMediaInstagram; /** * Have all connections to the contact been removed? */ // @ApiMember(DataType="bool", Description="Have all connections to the contact been removed?", Name="IsRemovedContact") bool? IsRemovedContact; /** * True if this is the users default profile. */ // @ApiMember(DataType="bool", Description="True if this is the users default profile.", Name="IsDefault", ParameterType="query") bool? IsDefault; /** * True if the users email on this profile can be edited. */ // @ApiMember(DataType="bool", Description="True if the users email on this profile can be edited.", Name="IsEmailEditable", ParameterType="query") bool? IsEmailEditable; /** * Primary image Content sent as a file stream contents (if not attached to the request) */ // @ApiMember(DataType="string", Description="Primary image Content sent as a file stream contents (if not attached to the request)", Name="PrimaryImageContent") String? PrimaryImageContent; /** * Primary image Content type sent as a file stream contents (if not attached to the request) */ // @ApiMember(DataType="string", Description="Primary image Content type sent as a file stream contents (if not attached to the request)", Name="PrimaryImageContentType") String? PrimaryImageContentType; /** * Primary image file name */ // @ApiMember(DataType="string", Description="Primary image file name", Name="PrimaryImageFileName") String? PrimaryImageFileName; UserProfileModel({this.BirthDate,this.MaritalStatusName,this.GenderName,this.GenderId,this.ContactDetails,this.PrimaryStreetAddress,this.PrimaryPostalAddress,this.PrimaryRegisteredAddress,this.PrimaryEmail,this.PrimaryMobile,this.PrimaryPhone,this.PrimaryFax,this.PrimaryWeb,this.SocialMediaTwitter,this.SocialMediaFacebook,this.SocialMediaInstagram,this.IsRemovedContact,this.IsDefault,this.IsEmailEditable,this.PrimaryImageContent,this.PrimaryImageContentType,this.PrimaryImageFileName}); UserProfileModel.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); BirthDate = JsonConverters.fromJson(json['BirthDate'],'DateTime',context!); MaritalStatusName = json['MaritalStatusName']; GenderName = json['GenderName']; GenderId = json['GenderId']; ContactDetails = JsonConverters.fromJson(json['ContactDetails'],'List',context!); PrimaryStreetAddress = JsonConverters.fromJson(json['PrimaryStreetAddress'],'ContactDetailModel',context!); PrimaryPostalAddress = JsonConverters.fromJson(json['PrimaryPostalAddress'],'ContactDetailModel',context!); PrimaryRegisteredAddress = JsonConverters.fromJson(json['PrimaryRegisteredAddress'],'ContactDetailModel',context!); PrimaryEmail = JsonConverters.fromJson(json['PrimaryEmail'],'ContactDetailModel',context!); PrimaryMobile = JsonConverters.fromJson(json['PrimaryMobile'],'ContactDetailModel',context!); PrimaryPhone = JsonConverters.fromJson(json['PrimaryPhone'],'ContactDetailModel',context!); PrimaryFax = JsonConverters.fromJson(json['PrimaryFax'],'ContactDetailModel',context!); PrimaryWeb = JsonConverters.fromJson(json['PrimaryWeb'],'ContactDetailModel',context!); SocialMediaTwitter = JsonConverters.fromJson(json['SocialMediaTwitter'],'ContactDetailModel',context!); SocialMediaFacebook = JsonConverters.fromJson(json['SocialMediaFacebook'],'ContactDetailModel',context!); SocialMediaInstagram = JsonConverters.fromJson(json['SocialMediaInstagram'],'ContactDetailModel',context!); IsRemovedContact = json['IsRemovedContact']; IsDefault = json['IsDefault']; IsEmailEditable = json['IsEmailEditable']; PrimaryImageContent = json['PrimaryImageContent']; PrimaryImageContentType = json['PrimaryImageContentType']; PrimaryImageFileName = json['PrimaryImageFileName']; return this; } Map toJson() => super.toJson()..addAll({ 'BirthDate': JsonConverters.toJson(BirthDate,'DateTime',context!), 'MaritalStatusName': MaritalStatusName, 'GenderName': GenderName, 'GenderId': GenderId, 'ContactDetails': JsonConverters.toJson(ContactDetails,'List',context!), 'PrimaryStreetAddress': JsonConverters.toJson(PrimaryStreetAddress,'ContactDetailModel',context!), 'PrimaryPostalAddress': JsonConverters.toJson(PrimaryPostalAddress,'ContactDetailModel',context!), 'PrimaryRegisteredAddress': JsonConverters.toJson(PrimaryRegisteredAddress,'ContactDetailModel',context!), 'PrimaryEmail': JsonConverters.toJson(PrimaryEmail,'ContactDetailModel',context!), 'PrimaryMobile': JsonConverters.toJson(PrimaryMobile,'ContactDetailModel',context!), 'PrimaryPhone': JsonConverters.toJson(PrimaryPhone,'ContactDetailModel',context!), 'PrimaryFax': JsonConverters.toJson(PrimaryFax,'ContactDetailModel',context!), 'PrimaryWeb': JsonConverters.toJson(PrimaryWeb,'ContactDetailModel',context!), 'SocialMediaTwitter': JsonConverters.toJson(SocialMediaTwitter,'ContactDetailModel',context!), 'SocialMediaFacebook': JsonConverters.toJson(SocialMediaFacebook,'ContactDetailModel',context!), 'SocialMediaInstagram': JsonConverters.toJson(SocialMediaInstagram,'ContactDetailModel',context!), 'IsRemovedContact': IsRemovedContact, 'IsDefault': IsDefault, 'IsEmailEditable': IsEmailEditable, 'PrimaryImageContent': PrimaryImageContent, 'PrimaryImageContentType': PrimaryImageContentType, 'PrimaryImageFileName': PrimaryImageFileName }); getTypeName() => "UserProfileModel"; TypeContext? context = _ctx; } // @ApiResponse(Description="Contacts connected to contact by criteria and response status") class GetContactsResponse implements IConvertible { List? Contacts; int? TotalContacts; ResponseStatus? ResponseStatus; GetContactsResponse({this.Contacts,this.TotalContacts,this.ResponseStatus}); GetContactsResponse.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() => "GetContactsResponse"; TypeContext? context = _ctx; } /** * Get contacts connected to the current contact or licensee (if managing licensee contacts) by role */ // @Route("/contactsforroles") // @Api(Description="Get contacts connected to the current contact or licensee (if managing licensee contacts) by role") class GetContactsForRoles implements IReturn, IConvertible, IGet { /** * Specific search text to search for i.e. Contact Name, Employment Details etc. */ // @ApiMember(DataType="string", Description="Specific search text to search for i.e. Contact Name, Employment Details etc.", Name="SearchText") String? SearchText; /** * Contact Types to search for i.e. People and/ or Organisations */ // @ApiMember(DataType="List", Description="Contact Types to search for i.e. People and/ or Organisations", IsRequired=true, Name="ContactTypes") List? ContactTypes = []; /** * Roles to search for i.e. People and/ or Organisations */ // @ApiMember(DataType="List", Description="Roles to search for i.e. People and/ or Organisations", IsRequired=true, Name="Roles") List? Roles = []; /** * Flag if detailed contact information is returned */ // @ApiMember(DataType="Boolean", Description="Flag if detailed contact information is returned", Name="IncludeDetails") bool? IncludeDetails; GetContactsForRoles({this.SearchText,this.ContactTypes,this.Roles,this.IncludeDetails}); GetContactsForRoles.fromJson(Map json) { fromMap(json); } fromMap(Map json) { SearchText = json['SearchText']; ContactTypes = JsonConverters.fromJson(json['ContactTypes'],'List',context!); Roles = JsonConverters.fromJson(json['Roles'],'List',context!); IncludeDetails = json['IncludeDetails']; return this; } Map toJson() => { 'SearchText': SearchText, 'ContactTypes': JsonConverters.toJson(ContactTypes,'List',context!), 'Roles': JsonConverters.toJson(Roles,'List',context!), 'IncludeDetails': IncludeDetails }; createResponse() => GetContactsResponse(); getResponseTypeName() => "GetContactsResponse"; getTypeName() => "GetContactsForRoles"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'pfapi.pstpf.com.au', types: { 'UserProfileModel': TypeInfo(TypeOf.Class, create:() => UserProfileModel()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ContactDetailModel': TypeInfo(TypeOf.Class, create:() => ContactDetailModel()), 'GetContactsResponse': TypeInfo(TypeOf.Class, create:() => GetContactsResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetContactsForRoles': TypeInfo(TypeOf.Class, create:() => GetContactsForRoles()), });