""" Options: Date: 2026-04-04 02:55:54 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: GetObjectCommunicationPaged.* #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 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 CommunicationModel: # @ApiMember(DataType="Guid", Description="Communication Id", IsRequired=true, Name="CommunicationId") communication_id: Optional[str] = None """ Communication Id """ # @ApiMember(DataType="Guid", Description="Communication Type Id e.g. SMS, Email, Comment.", IsRequired=true, Name="CommunicationTypeId") communication_type_id: Optional[str] = None """ Communication Type Id e.g. SMS, Email, Comment. """ # @ApiMember(DataType="string", Description="Communication Type Name e.g. SMS, Email, Comment.", Name="CommunicationTypeName") communication_type_name: Optional[str] = None """ Communication Type Name e.g. SMS, Email, Comment. """ # @ApiMember(DataType="string", Description="Communication Subject", Name="Subject") subject: Optional[str] = None """ Communication Subject """ # @ApiMember(DataType="string", Description="Communication Body", IsRequired=true, Name="Body") body: Optional[str] = None """ Communication Body """ # @ApiMember(DataType="DateTime", Description="Date and Time communication record created", IsRequired=true, Name="CreatedAt") created_at: datetime.datetime = datetime.datetime(1, 1, 1) """ Date and Time communication record created """ # @ApiMember(DataType="DateTime", Description="Date and Time communication record released (e.g. Email sent date time)", IsRequired=true, Name="ReleaseAt") release_at: datetime.datetime = datetime.datetime(1, 1, 1) """ Date and Time communication record released (e.g. Email sent date time) """ # @ApiMember(Description="Sender or the creater of the communication", IsRequired=true, Name="Sender") sender: Optional[UserProfileModel] = None """ Sender or the creater of the communication """ # @ApiMember(Description="Primary recipient(s) of the communication (e.g. 'To' contacts of an email).", IsRequired=true, Name="Recipients") recipients: List[UserProfileModel] = field(default_factory=list) """ Primary recipient(s) of the communication (e.g. 'To' contacts of an email). """ # @ApiMember(Description="Cc recipient(s) of the communication.", IsRequired=true, Name="CcRecipients") cc_recipients: List[UserProfileModel] = field(default_factory=list) """ Cc recipient(s) of the communication. """ # @ApiMember(Description="Bcc recipient(s) of the communication.", IsRequired=true, Name="BccRecipients") bcc_recipients: List[UserProfileModel] = field(default_factory=list) """ Bcc recipient(s) of the communication. """ # @ApiMember(DataType="Boolean", Description="Indicates whether the sender is a customer", IsRequired=true, Name="SentByCustomer") sent_by_customer: bool = False """ Indicates whether the sender is a customer """ # @ApiMember(DataType="Boolean", Description="Indicates whether the sender is a staff member (Internal contact)", IsRequired=true, Name="SentByStaff") sent_by_staff: bool = False """ Indicates whether the sender is a staff member (Internal contact) """ # @ApiResponse(Description="Communication related to the object.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetObjectCommunicationResponse: communication: Optional[List[CommunicationModel]] = None response_status: Optional[ResponseStatus] = None # @Route("/communications") # @Api(Description="Get communication related to the specified object. (paged)") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetObjectCommunicationPaged(IReturn[GetObjectCommunicationResponse]): """ Get communication related to the specified object. (paged) """ # @ApiMember(Description="Object to get communication for.", IsRequired=true, Name="ObjectId") object_id: Optional[str] = None """ Object to get communication for. """ # @ApiMember(DataType="DateTime", Description="Date/time from the communication records should be retrieved for.", Name="DateTimeFrom") date_time_from: datetime.datetime = datetime.datetime(1, 1, 1) """ Date/time from the communication records should be retrieved for. """ # @ApiMember(DataType="DateTime", Description="Date/time to the communication records should be retrieved for.", Name="DateTimeTo") date_time_to: datetime.datetime = datetime.datetime(1, 1, 1) """ Date/time to the communication records should be retrieved for. """ # @ApiMember(Description="types of communications (e.g. Email, SMS, Comment).", IsRequired=true, Name="Communication Types") communication_types: List[str] = field(default_factory=list) """ types of communications (e.g. Email, SMS, Comment). """ # @ApiMember(Description="Get communications matching the specified search text criteria.", Name="SearchText") search_text: Optional[str] = None """ Get communications matching the specified search text criteria. """ # @ApiMember(Description="Return all communications matching criteria or paged results?", Name="IsPagedMode") is_paged_mode: bool = False """ Return all communications matching criteria or paged results? """ # @ApiMember(Description="Return communications matching criteria on the specified page number if paged mode.", Name="PageNumber") page_number: int = 0 """ Return communications matching criteria on the specified page number if paged mode. """ # @ApiMember(Description="Number of communications on each page if paged mode", Name="PageSize") page_size: int = 0 """ Number of communications on each page if paged mode """ # @ApiMember(Description="Index of the column to be sorted the results with", Name="SortIndex") sort_index: int = 0 """ Index of the column to be sorted the results with """ # @ApiMember(Description="order of the sorting to be applied", Name="SortOrder") sort_order: int = 0 """ order of the sorting to be applied """