""" Options: Date: 2026-04-03 23:27: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: GetUserProfiles.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserRoleModel: # @ApiMember(DataType="Guid", Description="The Contact Role Id, that links the Contact to their role.", Name="ContactRoleId", ParameterType="query") contact_role_id: Optional[str] = None """ The Contact Role Id, that links the Contact to their role. """ # @ApiMember(DataType="Guid", Description="The Role Id.", Name="RoleId", ParameterType="query") role_id: Optional[str] = None """ The Role Id. """ # @ApiMember(DataType="string", Description="The role name.", Name="RoleName", ParameterType="query") role_name: Optional[str] = None """ The role name. """ # @ApiMember(DataType="string", Description="The URL of the role's image icon.", Name="RolePrimaryImageURL", ParameterType="query") role_primary_image_u_r_l: Optional[str] = None """ The URL of the role's image icon. """ # @ApiMember(DataType="string", Description="The URL of the role's thumbnail image icon.", Name="RolePrimaryImageThumbnailURL", ParameterType="query") role_primary_image_thumbnail_u_r_l: Optional[str] = None """ The URL of the role's thumbnail image icon. """ # @ApiMember(DataType="string", Description="The Guid of the role's media file containing the image icon details.", Name="RolePrimaryImageId", ParameterType="query") role_primary_image_id: Optional[str] = None """ The Guid of the role's media file containing the image icon details. """ # @ApiMember(DataType="DateTime", Description="The date the contact started having this role.", Name="StartDate", ParameterType="query") start_date: datetime.datetime = datetime.datetime(1, 1, 1) """ The date the contact started having this role. """ # @ApiMember(DataType="DateTime?", Description="The date the contact will end having this role.", Name="EndDate", ParameterType="query") end_date: Optional[datetime.datetime] = None """ The date the contact will end having this role. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserContactConnectionModel: # @ApiMember(DataType="Guid", Description="The Contact Role Id, that links the Contact to their role.", Name="ContactRoleId", ParameterType="query") contact_role_id: Optional[str] = None """ The Contact Role Id, that links the Contact to their role. """ # @ApiMember(DataType="string", Description="The role name.", Name="ContactRoleName", ParameterType="query") contact_role_name: Optional[str] = None """ The role name. """ # @ApiMember(DataType="Guid", Description="The list item role Id.", Name="ContactListItemRoleId", ParameterType="query") contact_list_item_role_id: Optional[str] = None """ The list item role Id. """ # @ApiMember(DataType="string", Description="The URL of the contact role's image icon.", Name="ContactRolePrimaryImageURL", ParameterType="query") contact_role_primary_image_u_r_l: Optional[str] = None """ The URL of the contact role's image icon. """ # @ApiMember(DataType="string", Description="The URL of the contact role's thumbnail image icon.", Name="ContactRolePrimaryImageThumbnailURL", ParameterType="query") contact_role_primary_image_thumbnail_u_r_l: Optional[str] = None """ The URL of the contact role's thumbnail image icon. """ # @ApiMember(DataType="string", Description="The Guid of the contact role's media file containing the image icon details.", Name="ContactRolePrimaryImageId", ParameterType="query") contact_role_primary_image_id: Optional[str] = None """ The Guid of the contact role's media file containing the image icon details. """ # @ApiMember(DataType="string", Description="The connected contacts Id. (licensee)", Name="ConnectionContactId", ParameterType="query") connection_contact_id: Optional[str] = None """ The connected contacts Id. (licensee) """ # @ApiMember(DataType="string", Description="The connected contacts Full Name.", Name="ConnectionContactName", ParameterType="query") connection_contact_name: Optional[str] = None """ The connected contacts Full Name. """ # @ApiMember(DataType="string", Description="The connected contacts role.", Name="ConnectionContactRoleName", ParameterType="query") connection_contact_role_name: Optional[str] = None """ The connected contacts role. """ # @ApiMember(DataType="Guid", Description="The connected contacts role Id.", Name="ConnectionContactRoleId", ParameterType="query") connection_contact_role_id: Optional[str] = None """ The connected contacts role Id. """ # @ApiMember(DataType="Guid", Description="The connected contacts list item role Id.", Name="ConnectionContactListItemRoleId", ParameterType="query") connection_contact_list_item_role_id: Optional[str] = None """ The connected contacts list item role Id. """ # @ApiMember(DataType="string", Description="The Contacts Type.", Name="ContactTypeName", ParameterType="query") contact_type_name: Optional[str] = None """ The Contacts Type. """ # @ApiMember(DataType="string", Description="The URL to the Connected Contacts Photo.", Name="ConnectionContactPhotoURL", ParameterType="query") connection_contact_photo_u_r_l: Optional[str] = None """ The URL to the Connected Contacts Photo. """ # @ApiMember(DataType="bool", Description=".", Name="IsContactLicenseeRole", ParameterType="query") is_contact_licensee_role: bool = False """ . """ # @ApiMember(DataType="bool", Description="If the connection is as a licensee this is true.", Name="IsConnectionLicenseeRole", ParameterType="query") is_connection_licensee_role: bool = False """ If the connection is as a licensee this is true. """ # @ApiMember(DataType="string", Description="The status of the connection with the contact.", Name="ConnectionStatusName", ParameterType="query") connection_status_name: Optional[str] = None """ The status of the connection with the contact. """ # @ApiMember(DataType="Guid", Description="The status Id of the connection with the contact.", Name="ConnectionStatusId", ParameterType="query") connection_status_id: Optional[str] = None """ The status Id of the connection with the contact. """ # @ApiMember(DataType="Guid", Description="The ContactRoleConnectionId of an active connection with the contact.", Name="ConnectionId", ParameterType="query") connection_id: Optional[str] = None """ The ContactRoleConnectionId of an active connection with the contact. """ # @ApiMember(DataType="Guid", Description="The ContactRoleConnectionRequest of a pending connection with the contact.", Name="ConnectionRequestId", ParameterType="query") connection_request_id: Optional[str] = None """ The ContactRoleConnectionRequest of a pending connection with the contact. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContactEmailAddress: # @ApiMember(DataType="Guid", Description="The Contact Id of the contact.", Name="ContactId", ParameterType="query") contact_id: Optional[str] = None """ The Contact Id of the contact. """ # @ApiMember(DataType="string", Description="The Contact Full Name", Name="ContactName", ParameterType="query") contact_name: Optional[str] = None """ The Contact Full Name """ # @ApiMember(DataType="string", Description="The Contact Email Address.", Name="EmailAddress", ParameterType="query") email_address: Optional[str] = None """ The Contact Email Address. """ # @ApiMember(DataType="string", Description="The Contact Photo URL", Name="ContactPhotoURL", ParameterType="query") contact_photo_u_r_l: Optional[str] = None """ The Contact Photo URL """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserProfileModel(UserProfileSummaryModel): # @ApiMember(DataType="DateTime?", Description="Contact Date of Birth (when person type)", Name="BirthDate", ParameterType="query") birth_date: Optional[datetime.datetime] = None """ Contact Date of Birth (when person type) """ # @ApiMember(DataType="string", Description="Contact marital status (when person type)", Name="MaritalStatusName", ParameterType="query") marital_status_name: Optional[str] = None """ Contact marital status (when person type) """ # @ApiMember(DataType="string", Description="Contact gender (when person type)", Name="GenderName", ParameterType="query") gender_name: Optional[str] = None """ Contact gender (when person type) """ # @ApiMember(DataType="Guid", Description="The Gender Guid of the contact.", Name="GenderId", ParameterType="query") gender_id: Optional[str] = None """ The Gender Guid of the contact. """ # @ApiMember(DataType="List", Description="All contact details of the contact", Name="ContactDetails", ParameterType="query") contact_details: Optional[List[ContactDetailModel]] = None """ All contact details of the contact """ # @ApiMember(DataType="ContactDetail", Description="Primary Street Address", Name="PrimaryStreetAddress ") primary_street_address: Optional[ContactDetailModel] = None """ Primary Street Address """ # @ApiMember(DataType="ContactDetail", Description="Primary Postal Address", Name="PrimaryPostalAddress ") primary_postal_address: Optional[ContactDetailModel] = None """ Primary Postal Address """ # @ApiMember(DataType="ContactDetail", Description="Primary Registered Address", Name="PrimaryRegisteredAddress ") primary_registered_address: Optional[ContactDetailModel] = None """ Primary Registered Address """ # @ApiMember(DataType="ContactDetail", Description="Primary Email Address", Name="PrimaryEmail ") primary_email: Optional[ContactDetailModel] = None """ Primary Email Address """ # @ApiMember(DataType="ContactDetail", Description="Primary Mobile Number", Name="PrimaryMobile") primary_mobile: Optional[ContactDetailModel] = None """ Primary Mobile Number """ # @ApiMember(DataType="ContactDetail", Description="Primary Non-Mobile Number", Name="PrimaryPhone") primary_phone: Optional[ContactDetailModel] = None """ Primary Non-Mobile Number """ # @ApiMember(DataType="ContactDetail", Description="Primary Fax Number", Name="PrimaryFax") primary_fax: Optional[ContactDetailModel] = None """ Primary Fax Number """ # @ApiMember(DataType="ContactDetail", Description="Primary Web Address", Name="PrimaryWeb") primary_web: Optional[ContactDetailModel] = None """ Primary Web Address """ # @ApiMember(DataType="ContactDetail", Description="Social Media Twitter", Name="SocialMediaTwitter") social_media_twitter: Optional[ContactDetailModel] = None """ Social Media Twitter """ # @ApiMember(DataType="ContactDetail", Description="Social Media Facebook", Name="SocialMediaFacebook") social_media_facebook: Optional[ContactDetailModel] = None """ Social Media Facebook """ # @ApiMember(DataType="ContactDetail", Description="Social Media Instagram", Name="SocialMediaInstagram") social_media_instagram: Optional[ContactDetailModel] = None """ Social Media Instagram """ # @ApiMember(DataType="bool", Description="Have all connections to the contact been removed?", Name="IsRemovedContact") is_removed_contact: bool = False """ Have all connections to the contact been removed? """ # @ApiMember(DataType="bool", Description="True if this is the users default profile.", Name="IsDefault", ParameterType="query") is_default: bool = False """ True if this is the users default profile. """ # @ApiMember(DataType="bool", Description="True if the users email on this profile can be edited.", Name="IsEmailEditable", ParameterType="query") is_email_editable: bool = False """ True if the users email on this profile can be edited. """ # @ApiMember(DataType="string", Description="Primary image Content sent as a file stream contents (if not attached to the request)", Name="PrimaryImageContent") primary_image_content: Optional[str] = None """ Primary image Content 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") primary_image_content_type: Optional[str] = None """ Primary image Content type sent as a file stream contents (if not attached to the request) """ # @ApiMember(DataType="string", Description="Primary image file name", Name="PrimaryImageFileName") primary_image_file_name: Optional[str] = None """ Primary image file name """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserProfileWithRolesModel(UserProfileModel): # @ApiMember(DataType="List", Description="A list of roles assigned to the user.", Name="Roles", ParameterType="query") roles: Optional[List[UserRoleModel]] = None """ A list of roles assigned to the user. """ # @ApiMember(DataType="List", Description="A list of contact connections assigned to the user.", Name="ContactConnections", ParameterType="query") contact_connections: Optional[List[UserContactConnectionModel]] = None """ A list of contact connections assigned to the user. """ # @ApiMember(DataType="List", Description="A list of connected contacts and their email addresses.", Name="EmailAddressBook", ParameterType="query") email_address_book: Optional[List[ContactEmailAddress]] = None """ A list of connected contacts and their email addresses. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserProfilesWithRolesModel: # @ApiMember(DataType="List", Description="A list of profiles for the user.", Name="Profiles") profiles: Optional[List[UserProfileWithRolesModel]] = None """ A list of profiles for the user. """ # @Route("/profiles") # @Api(Description="Returns a Users profile information.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetUserProfiles(IReturn[UserProfilesWithRolesModel]): """ Returns a Users profile information. """ # @ApiMember(DataType="Guid?", Description="The user's Guid. If the value passed is empty, UserName must be entered.", Name="UserId", ParameterType="query") user_id: Optional[str] = None """ The user's Guid. If the value passed is empty, UserName must be entered. """ # @ApiMember(DataType="string", Description="Unique Email address of the user. If the value passed is empty, UserId must be entered.", Name="UserName", ParameterType="query") user_name: Optional[str] = None """ Unique Email address of the user. If the value passed is empty, UserId must be entered. """ # @ApiMember(DataType="bool", Description="Flag to exclude contact details from organisation profiles.", Name="ExcludeContactDetails", ParameterType="query") exclude_contact_details: bool = False """ Flag to exclude contact details from organisation profiles. """