""" Options: Date: 2026-04-03 23:08:43 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: GetCommunication.* #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="Details of communication including sender and recipient details.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetCommunicationResponse: communication: Optional[CommunicationModel] = None response_status: Optional[ResponseStatus] = None # @Route("/communication/{CommunicationId}") # @Api(Description="Get specified communication.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetCommunication(IReturn[GetCommunicationResponse]): """ Get specified communication. """ # @ApiMember(Description="Communication Id to get details for", IsRequired=true, Name="CommunicationId") communication_id: Optional[str] = None """ Communication Id to get details for """