""" Options: Date: 2026-04-04 02:55:40 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: RegisterNewUser.* #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 # @Api(Description="Updates a Users Profile information'") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SaveUserProfile(IReturn[ResponseStatus]): """ Updates a Users Profile information' """ # @ApiMember(DataType="Guid", Description="The users profile Guid.", IsRequired=true, Name="UserProfileId", ParameterType="query") user_profile_id: Optional[str] = None """ The users profile Guid. """ # @ApiMember(DataType="Guid", Description="The users Guid. This is used for validation to ensure the user in the session is only changing his own user information.", IsRequired=true, Name="UserId", ParameterType="query") user_id: Optional[str] = None """ The users Guid. This is used for validation to ensure the user in the session is only changing his own user information. """ # @ApiMember(DataType="Guid", Description="The users contact Guid.", IsRequired=true, Name="ContactId", ParameterType="query") contact_id: Optional[str] = None """ The users contact Guid. """ # @ApiMember(DataType="string", Description="The users profile name.", IsRequired=true, Name="ProfileName", ParameterType="query") profile_name: Optional[str] = None """ The users profile name. """ # @ApiMember(DataType="string", Description="The users (contact) title.", Name="Title", ParameterType="query") title: Optional[str] = None """ The users (contact) title. """ # @ApiMember(DataType="string", Description="The users (contact) first name(s).", IsRequired=true, Name="FirstName", ParameterType="query") first_name: Optional[str] = None """ The users (contact) first name(s). """ # @ApiMember(DataType="string", Description="The users (contact) surname.", IsRequired=true, Name="Surname", ParameterType="query") surname: Optional[str] = None """ The users (contact) surname. """ # @ApiMember(DataType="string", Description="The contact profile description.", Name="Description", ParameterType="query") description: Optional[str] = None """ The contact profile description. """ # @ApiMember(DataType="string", Description="The contacts profession/trade/industry details.", Name="EmploymentIndustry", ParameterType="query") employment_industry: Optional[str] = None """ The contacts profession/trade/industry details. """ # @ApiMember(DataType="string", Description="The contact details of who they work/subcontract for.", Name="EmploymentRole", ParameterType="query") employment_role: Optional[str] = None """ The contact details of who they work/subcontract for. """ # @ApiMember(DataType="string", Description="The contacts work area/suburbs.", Name="EmploymentGeographicArea", ParameterType="query") employment_geographic_area: Optional[str] = None """ The contacts work area/suburbs. """ # @ApiMember(DataType="Guid", Description="The contacts timezone.", Name="Timezone", ParameterType="query") timezone: Optional[str] = None """ The contacts timezone. """ # @ApiMember(DataType="List", Description="A list of the contact details for the contact. Note: an email must always be set for a business.", IsRequired=true, Name="ContactDetails", ParameterType="query") contact_details: List[ContactDetailModel] = field(default_factory=list) """ A list of the contact details for the contact. Note: an email must always be set for a business. """ # @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactType") contact_type: Optional[str] = None """ Type of contact (person, organisation etc.) linked to the profile """ # @ApiMember(DataType="string", Description="Legal name of contact linked to the profile", Name="LegalName") legal_name: Optional[str] = None """ Legal name of contact linked to the profile """ # @ApiMember(DataType="string", Description="Trading name of contact linked to the profile", Name="TradingName") trading_name: Optional[str] = None """ Trading name of contact linked to the profile """ # @ApiMember(DataType="string", Description="Abn of contact linked to the profile", Name="Abn") abn: Optional[str] = None """ Abn of contact linked to the profile """ # @ApiMember(DataType="string", Description="Acn of contact linked to the profile", Name="Acn") acn: Optional[str] = None """ Acn of contact linked to the profile """ # @ApiMember(DataType="string", Description="Arbn of contact linked to the profile", Name="Arbn") arbn: Optional[str] = None """ Arbn of contact linked to the profile """ # @ApiMember(DataType="bool", Description="Indicates if the Contact is registered for GST.", Name="GstRegistered", ParameterType="query") gst_registered: bool = False """ Indicates if the Contact is registered for GST. """ # @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. """ # @Route("/register") # @Api(Description="Registers a new user with the platform as a 'Perspective Platform - Platform Member'") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RegisterNewUser(IReturn[ResponseStatus]): """ Registers a new user with the platform as a 'Perspective Platform - Platform Member' """ # @ApiMember(DataType="string", Description="Details of the contacts primary/default user profile.", IsRequired=true, Name="EmailAddress", ParameterType="query") email_address: Optional[str] = None """ Details of the contacts primary/default user profile. """ # @ApiMember(DataType="string", Description="Details of the contacts primary/default user profile.", IsRequired=true, Name="Password", ParameterType="query") password: Optional[str] = None """ Details of the contacts primary/default user profile. """ # @ApiMember(DataType="string", Description="Details of the contacts primary/default user profile.", IsRequired=true, Name="FirstName", ParameterType="query") first_name: Optional[str] = None """ Details of the contacts primary/default user profile. """ # @ApiMember(DataType="string", Description="The users surname.", IsRequired=true, Name="Surname", ParameterType="query") surname: Optional[str] = None """ The users surname. """ # @ApiMember(DataType="string", Description="The users public profile description.", IsRequired=true, Name="Description", ParameterType="query") description: Optional[str] = None """ The users public profile description. """ # @ApiMember(DataType="string", Description="The users industry they work in and what they do (Profession/Trade/Industry).", IsRequired=true, Name="EmploymentIndustry", ParameterType="query") employment_industry: Optional[str] = None """ The users industry they work in and what they do (Profession/Trade/Industry). """ # @ApiMember(DataType="string", Description="The users company/trading name and any major businesses they contract to (Working/Subcontracting for).", IsRequired=true, Name="EmploymentRole", ParameterType="query") employment_role: Optional[str] = None """ The users company/trading name and any major businesses they contract to (Working/Subcontracting for). """ # @ApiMember(DataType="string", Description="The users areas or geographic regions they work in (Work Areas/Suburbs).", IsRequired=true, Name="EmploymentGeographicArea", ParameterType="query") employment_geographic_area: Optional[str] = None """ The users areas or geographic regions they work in (Work Areas/Suburbs). """ # @ApiMember(DataType="Guid", Description="The users timezone.", Name="Timezone", ParameterType="query") timezone: Optional[str] = None """ The users timezone. """ # @ApiMember(DataType="SaveUserProfile", Description="The users business profile information (if they have a business).", Name="BusinessProfile", ParameterType="query") business_profile: Optional[SaveUserProfile] = None """ The users business profile information (if they have a business). """