/* Options: Date: 2026-04-04 08:40:56 SwiftVersion: 6.0 Version: 8.52 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://pfapi.pstpf.com.au/api //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: GetContactRoleDetails.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Get details of the specified contact role, including details of the contacts and organisations sharing it */ // @Route("/contactrole/{ContactRoleId}") // @Api(Description="Get details of the specified contact role, including details of the contacts and organisations sharing it") public class GetContactRoleDetails : PagedModel, IReturn { public typealias Return = GetContactRoleDetailsResponse /** * The Contact Role Guid. Records retrieved will belong to this contact. */ // @ApiMember(DataType="Guid", Description="The Contact Role Guid. Records retrieved will belong to this contact.", IsRequired=true, Name="ContactRoleId", ParameterType="query") public var contactRoleId:String? /** * Text filter */ // @ApiMember(DataType="string", Description="Text filter", Name="SearchText", ParameterType="query") public var searchText:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case contactRoleId case searchText } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) contactRoleId = try container.decodeIfPresent(String.self, forKey: .contactRoleId) searchText = try container.decodeIfPresent(String.self, forKey: .searchText) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if contactRoleId != nil { try container.encode(contactRoleId, forKey: .contactRoleId) } if searchText != nil { try container.encode(searchText, forKey: .searchText) } } } // @ApiResponse(Description="Details of the specified contact role, including details of the contacts and organisations sharing it") public class GetContactRoleDetailsResponse : Codable { public var contactRole:ViewRoleModel? public var responseStatus:ResponseStatus? required public init(){} } public class UserProfileSummaryModel : Codable { /** * User Profile Id */ // @ApiMember(DataType="Guid", Description="User Profile Id", Name="UserProfileId") public var userProfileId:String? /** * User linked to the profile */ // @ApiMember(DataType="Guid", Description="User linked to the profile", Name="UserId") public var userId:String? /** * Contact linked to the profile */ // @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId") public var contactId:String? /** * User linked to the profile */ // @ApiMember(DataType="string", Description="User linked to the profile", Name="UserName") public var userName:String? /** * User Profile Name */ // @ApiMember(DataType="string", Description="User Profile Name", Name="ProfileName") public var profileName:String? /** * Full name of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Full name of the contact linked to the profile", Name="ContactFullName") public var contactFullName:String? /** * Email Address of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Email Address of the contact linked to the profile", Name="EmailAddress") public var emailAddress:String? /** * Email signature of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Email signature of the contact linked to the profile", Name="EmailSignature") public var emailSignature:String? /** * Mobile number of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Mobile number of the contact linked to the profile", Name="MobileNumber") public var mobileNumber:String? /** * Phone number of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Phone number of the contact linked to the profile", Name="PhoneNumber") public var phoneNumber:String? /** * Type of contact (person, organisation etc.) linked to the profile */ // @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeId") public var contactTypeId:String? /** * Type of contact (person, organisation etc.) linked to the profile */ // @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeName") public var contactTypeName:String? /** * First name of the contact linked to the profile */ // @ApiMember(DataType="string", Description="First name of the contact linked to the profile", Name="FirstName") public var firstName:String? /** * Surname of the contact linked to the profile */ // @ApiMember(DataType="string", Description="Surname of the contact linked to the profile", Name="Surname") public var surname:String? /** * Title of contact linked to the profile */ // @ApiMember(DataType="string", Description="Title of contact linked to the profile", Name="Title") public var title:String? /** * Legal name of contact linked to the profile */ // @ApiMember(DataType="string", Description="Legal name of contact linked to the profile", Name="LegalName") public var legalName:String? /** * Trading name of contact linked to the profile */ // @ApiMember(DataType="string", Description="Trading name of contact linked to the profile", Name="TradingName") public var tradingName:String? /** * Australian Business Number */ // @ApiMember(DataType="string", Description="Australian Business Number", Name="Abn", ParameterType="query") public var abn:String? /** * Australian Company Number */ // @ApiMember(DataType="string", Description="Australian Company Number", Name="Acn", ParameterType="query") public var acn:String? /** * Australian Registered Body Number */ // @ApiMember(DataType="string", Description="Australian Registered Body Number", Name="Arbn", ParameterType="query") public var arbn:String? /** * Indicates if the Contact is registered for GST. */ // @ApiMember(DataType="bool", Description="Indicates if the Contact is registered for GST.", Name="GstRegistered", ParameterType="query") public var gstRegistered:Bool? /** * True if english is a secondary language for the contact. */ // @ApiMember(DataType="bool", Description="True if english is a secondary language for the contact.", Name="ESL", ParameterType="query") public var esl:Bool? /** * Language that is the primary language for the contact. */ // @ApiMember(DataType="string", Description="Language that is the primary language for the contact.", Name="Language", ParameterType="query") public var language:String? /** * True if an interpreter is required. */ // @ApiMember(DataType="bool", Description="True if an interpreter is required.", Name="InterpreterRequired", ParameterType="query") public var interpreterRequired:Bool? /** * Licensee specific notes about the contact. */ // @ApiMember(DataType="string", Description="Licensee specific notes about the contact.", Name="LicenseeNotes", ParameterType="query") public var licenseeNotes:String? /** * Profile photo of contact linked to the profile */ // @ApiMember(DataType="string", Description="Profile photo of contact linked to the profile", Name="ProfilePhotoUrl") public var profilePhotoUrl:String? /** * Thumbnail photo of contact linked to the profile */ // @ApiMember(DataType="string", Description="Thumbnail photo of contact linked to the profile", Name="ProfilePhotoThumbnailUrl") public var profilePhotoThumbnailUrl:String? /** * Profile photo id of contact linked to the profile */ // @ApiMember(DataType="Guid", Description="Profile photo id of contact linked to the profile", Name="ProfileImageId") public var profileImageId:String? /** * Profile description */ // @ApiMember(DataType="string", Description="Profile description", Name="Description") public var Description:String? /** * Employment Industry */ // @ApiMember(DataType="string", Description="Employment Industry", Name="EmploymentIndustry") public var employmentIndustry:String? /** * Employment Role */ // @ApiMember(DataType="string", Description="Employment Role", Name="EmploymentRole") public var employmentRole:String? /** * Areas of Work */ // @ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea") public var employmentGeographicArea:String? /** * The contacts timezone. */ // @ApiMember(DataType="Guid", Description="The contacts timezone.", Name="Timezone", ParameterType="query") public var timezone:String? /** * Timezone Name */ // @ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query") public var timezoneName:String? /** * The primary address of the contact */ // @ApiMember(DataType="string", Description="The primary address of the contact", Name="PrimaryAddress", ParameterType="query") public var primaryAddress:String? /** * Is this an active contact? Or an inactive contact (deleted account)? */ // @ApiMember(DataType="bool", Description="Is this an active contact? Or an inactive contact (deleted account)?", Name="IsActiveContact") public var isActiveContact:Bool? required public init(){} } public enum SortOrder : String, Codable { case Ascending case Descending } public class PagedModel : Codable { /** * Page Number to retrieve */ // @ApiMember(DataType="int", Description="Page Number to retrieve", Name="PageNumber") public var pageNumber:Int? /** * Number of records to retrieve */ // @ApiMember(DataType="int", Description="Number of records to retrieve", Name="PageSize") public var pageSize:Int? /** * Index of field to sort results by */ // @ApiMember(DataType="int", Description="Index of field to sort results by", Name="SortIndex") public var sortIndex:Int? /** * Sort Order - Ascending or Descending */ // @ApiMember(DataType="int", Description="Sort Order - Ascending or Descending", Name="SortOrder") public var sortOrder:SortOrder? required public init(){} } public class ObjectShareModel : Codable { public var objectShareId:String? public var objectId:String? public var objectName:String? public var name:String? public var Description:String? public var reference:String? public var contactId:String? public var contactName:String? public var contactType:String? public var contactImageUrlPrimary:String? public var contactImageUrlPrimaryThmbnail:String? public var shareStatusId:String? public var shareStatusName:String? required public init(){} } public class ListItemFilterModel : Codable { public var listItemFilterId:String? public var filterName:String? public var listId:String? public var listItemId:String? public var listItemIsInFilter:Bool? required public init(){} } public class ViewRoleModel : PagedModel { /** * Role Id */ // @ApiMember(DataType="Guid", Description="Role Id", IsRequired=true, Name="RoleId") public var roleId:String? /** * Role Name */ // @ApiMember(DataType="string", Description="Role Name", Name="RoleName") public var roleName:String? /** * Role Connection Definition Id */ // @ApiMember(DataType="Guid", Description="Role Connection Definition Id", Name="RoleConnectionDefinitionId") public var roleConnectionDefinitionId:String? /** * Contact Types the Role applies to */ // @ApiMember(DataType="List", Description="Contact Types the Role applies to", Name="ContactTypes") public var contactTypes:[String]? /** * Does the role require contacts to accept it? */ // @ApiMember(DataType="bool", Description="Does the role require contacts to accept it?", Name="RequireContactsToAccept") public var requireContactsToAccept:Bool? public var isPlatformRole:Bool? public var canAddContacts:Bool? public var canShareRole:Bool? public var canEditRole:Bool? public var canEditContactTypes:Bool? public var contacts:[UserProfileSummaryModel]? public var shareDetails:IList? public var listItemFilters:[ListItemFilterModel]? public var contactIdOwner:String? public var totalItemCount:Int? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case roleId case roleName case roleConnectionDefinitionId case contactTypes case requireContactsToAccept case isPlatformRole case canAddContacts case canShareRole case canEditRole case canEditContactTypes case contacts case shareDetails case listItemFilters case contactIdOwner case totalItemCount } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) roleId = try container.decodeIfPresent(String.self, forKey: .roleId) roleName = try container.decodeIfPresent(String.self, forKey: .roleName) roleConnectionDefinitionId = try container.decodeIfPresent(String.self, forKey: .roleConnectionDefinitionId) contactTypes = try container.decodeIfPresent([String].self, forKey: .contactTypes) ?? [] requireContactsToAccept = try container.decodeIfPresent(Bool.self, forKey: .requireContactsToAccept) isPlatformRole = try container.decodeIfPresent(Bool.self, forKey: .isPlatformRole) canAddContacts = try container.decodeIfPresent(Bool.self, forKey: .canAddContacts) canShareRole = try container.decodeIfPresent(Bool.self, forKey: .canShareRole) canEditRole = try container.decodeIfPresent(Bool.self, forKey: .canEditRole) canEditContactTypes = try container.decodeIfPresent(Bool.self, forKey: .canEditContactTypes) contacts = try container.decodeIfPresent([UserProfileSummaryModel].self, forKey: .contacts) ?? [] shareDetails = try container.decodeIfPresent(IList.self, forKey: .shareDetails) listItemFilters = try container.decodeIfPresent([ListItemFilterModel].self, forKey: .listItemFilters) ?? [] contactIdOwner = try container.decodeIfPresent(String.self, forKey: .contactIdOwner) totalItemCount = try container.decodeIfPresent(Int.self, forKey: .totalItemCount) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if roleId != nil { try container.encode(roleId, forKey: .roleId) } if roleName != nil { try container.encode(roleName, forKey: .roleName) } if roleConnectionDefinitionId != nil { try container.encode(roleConnectionDefinitionId, forKey: .roleConnectionDefinitionId) } if contactTypes != nil { try container.encode(contactTypes, forKey: .contactTypes) } if requireContactsToAccept != nil { try container.encode(requireContactsToAccept, forKey: .requireContactsToAccept) } if isPlatformRole != nil { try container.encode(isPlatformRole, forKey: .isPlatformRole) } if canAddContacts != nil { try container.encode(canAddContacts, forKey: .canAddContacts) } if canShareRole != nil { try container.encode(canShareRole, forKey: .canShareRole) } if canEditRole != nil { try container.encode(canEditRole, forKey: .canEditRole) } if canEditContactTypes != nil { try container.encode(canEditContactTypes, forKey: .canEditContactTypes) } if contacts != nil { try container.encode(contacts, forKey: .contacts) } if shareDetails != nil { try container.encode(shareDetails, forKey: .shareDetails) } if listItemFilters != nil { try container.encode(listItemFilters, forKey: .listItemFilters) } if contactIdOwner != nil { try container.encode(contactIdOwner, forKey: .contactIdOwner) } if totalItemCount != nil { try container.encode(totalItemCount, forKey: .totalItemCount) } } }