Platform API

<back to all web services

AddBusinessProfile

Updates a Users Profile information'

Requires Authentication
The following routes are available for this service:
All Verbs/api/profile/business
import 'package:servicestack/servicestack.dart';

class AddBusinessProfileResponse implements IConvertible
{
    /**
    * Short description of the overall status of the web service response.
    */
    // @ApiMember(DataType="string", Description="Short description of the overall status of the web service response.", Name="Message", ParameterType="query")
    String? Message;

    /**
    * Holds a code representing the exception type.
    */
    // @ApiMember(DataType="string", Description="Holds a code representing the exception type.", Name="ErrorCode", ParameterType="query")
    String? ErrorCode;

    /**
    * Details of 1 or more validation errors from the web service
    */
    // @ApiMember(DataType="List<ResponseError>", Description="Details of 1 or more validation errors from the web service", Name="Errors", ParameterType="query")
    List<ResponseError>? Errors;

    /**
    * Guid representing the object that is the Businesses User Profile Id in Eros.
    */
    // @ApiMember(DataType="Guid", Description="Guid representing the object that is the Businesses User Profile Id in Eros.", Name="UserProfileId", ParameterType="query")
    String? UserProfileId;

    /**
    * Service Stack Response Status.
    */
    // @ApiMember(DataType="ResponseStatus", Description="Service Stack Response Status.", Name="ResponseStatus", ParameterType="query")
    ResponseStatus? ResponseStatus;

    AddBusinessProfileResponse({this.Message,this.ErrorCode,this.Errors,this.UserProfileId,this.ResponseStatus});
    AddBusinessProfileResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Message = json['Message'];
        ErrorCode = json['ErrorCode'];
        Errors = JsonConverters.fromJson(json['Errors'],'List<ResponseError>',context!);
        UserProfileId = json['UserProfileId'];
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Message': Message,
        'ErrorCode': ErrorCode,
        'Errors': JsonConverters.toJson(Errors,'List<ResponseError>',context!),
        'UserProfileId': UserProfileId,
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "AddBusinessProfileResponse";
    TypeContext? context = _ctx;
}

class LocationCoordinatesModel implements IConvertible
{
    /**
    * The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.
    */
    // @ApiMember(Description="The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.", ParameterType="query")
    double? Latitude;

    /**
    * The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.
    */
    // @ApiMember(Description="The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.", ParameterType="query")
    double? Longitude;

    /**
    * The altitude of an address - the altitude above sea level."
    */
    // @ApiMember(Description="The altitude of an address - the altitude above sea level.\"", ParameterType="query")
    double? Altitude;

    /**
    * Accuracy of the latitude and longitude.
    */
    // @ApiMember(Description="Accuracy of the latitude and longitude.", ParameterType="query")
    double? Accuracy;

    /**
    * Accurancy of the Altitude.
    */
    // @ApiMember(Description="Accurancy of the Altitude.", ParameterType="query")
    double? AltitudeAccuracy;

    /**
    * Direction you are heading.
    */
    // @ApiMember(Description="Direction you are heading.", ParameterType="query")
    double? Heading;

    /**
    * Speed you are going.
    */
    // @ApiMember(Description="Speed you are going.", ParameterType="query")
    double? Speed;

    /**
    * Speed your altitude is ascending/descending at.
    */
    // @ApiMember(Description="Speed your altitude is ascending/descending at.", ParameterType="query")
    double? VerticalSpeed;

    LocationCoordinatesModel({this.Latitude,this.Longitude,this.Altitude,this.Accuracy,this.AltitudeAccuracy,this.Heading,this.Speed,this.VerticalSpeed});
    LocationCoordinatesModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Latitude = JsonConverters.toDouble(json['Latitude']);
        Longitude = JsonConverters.toDouble(json['Longitude']);
        Altitude = JsonConverters.toDouble(json['Altitude']);
        Accuracy = JsonConverters.toDouble(json['Accuracy']);
        AltitudeAccuracy = JsonConverters.toDouble(json['AltitudeAccuracy']);
        Heading = JsonConverters.toDouble(json['Heading']);
        Speed = JsonConverters.toDouble(json['Speed']);
        VerticalSpeed = JsonConverters.toDouble(json['VerticalSpeed']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Latitude': Latitude,
        'Longitude': Longitude,
        'Altitude': Altitude,
        'Accuracy': Accuracy,
        'AltitudeAccuracy': AltitudeAccuracy,
        'Heading': Heading,
        'Speed': Speed,
        'VerticalSpeed': VerticalSpeed
    };

    getTypeName() => "LocationCoordinatesModel";
    TypeContext? context = _ctx;
}

class AddressModel implements IConvertible
{
    /**
    * The distance between this project and another specified set of gps coordinates.
    */
    // @ApiMember(DataType="double", Description="The distance between this project and another specified set of gps coordinates.", Name="DistanceAway", ParameterType="body")
    double? DistanceAway;

    /**
    * The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.
    */
    // @ApiMember(DataType="Double?", Description="The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.", Name="Latitude", ParameterType="body")
    double? Latitude;

    /**
    * The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.
    */
    // @ApiMember(DataType="Double?", Description="The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.", Name="Longitude", ParameterType="body")
    double? Longitude;

    /**
    * Address Format Id Guid - this will be determined by the service.
    */
    // @ApiMember(DataType="Guid", Description="Address Format Id Guid - this will be determined by the service.", Name="AddressFormatId", ParameterType="body")
    String? AddressFormatId;

    /**
    * Suburb Id Guid - this will attempt to be determined by the SuburbName, StateShortName and Postcode entered.
    */
    // @ApiMember(DataType="Guid", Description="Suburb Id Guid - this will attempt to be determined by the SuburbName, StateShortName and Postcode entered.", Name="SuburbId", ParameterType="body")
    String? SuburbId;

    /**
    * The suburb name.
    */
    // @ApiMember(DataType="string", Description="The suburb name.", Name="SuburbName", ParameterType="body")
    String? SuburbName;

    /**
    * The shortened State Name e.g Vic for Victoria.
    */
    // @ApiMember(DataType="string", Description="The shortened State Name e.g Vic for Victoria.", Name="StateShortName", ParameterType="body")
    String? StateShortName;

    /**
    * The suburb postcode.
    */
    // @ApiMember(DataType="string", Description="The suburb postcode.", Name="PostCode", ParameterType="body")
    String? PostCode;

    /**
    * Country Id Guid - this will be determined by the CountrName or ISOCountryCode entered.
    */
    // @ApiMember(DataType="Guid", Description="Country Id Guid - this will be determined by the CountrName or ISOCountryCode entered.", Name="CountryId", ParameterType="body")
    String? CountryId;

    /**
    * the name of the country the address is within.
    */
    // @ApiMember(DataType="string", Description="the name of the country the address is within.", Name="CountryName", ParameterType="body")
    String? CountryName;

    /**
    * ISO Country Code.
    */
    // @ApiMember(Description="ISO Country Code.", ParameterType="query")
    String? ISOCountryCode;

    /**
    * The address Lot number.
    */
    // @ApiMember(DataType="string", Description="The address Lot number.", Name="LotNumber", ParameterType="body")
    String? LotNumber;

    /**
    * The address Sub Unit number.
    */
    // @ApiMember(DataType="string", Description="The address Sub Unit number.", Name="SubUnit", ParameterType="body")
    String? SubUnit;

    /**
    * The address building number.
    */
    // @ApiMember(DataType="string", Description="The address building number.", Name="BuildingNumber", ParameterType="body")
    String? BuildingNumber;

    /**
    * The address street number.
    */
    // @ApiMember(DataType="string", Description="The address street number.", Name="StreetNumber", ParameterType="body")
    String? StreetNumber;

    /**
    * The address street name including street type.
    */
    // @ApiMember(DataType="string", Description="The address street name including street type.", Name="StreetName", ParameterType="body")
    String? StreetName;

    /**
    * A formatted address Line 1.
    */
    // @ApiMember(DataType="string", Description="A formatted address Line 1.", Name="AddressLineOne", ParameterType="body")
    String? AddressLineOne;

    /**
    * A formatted address Line 2.
    */
    // @ApiMember(DataType="string", Description="A formatted address Line 2.", Name="AddressLineTwo", ParameterType="body")
    String? AddressLineTwo;

    /**
    * The full address string.
    */
    // @ApiMember(DataType="string", Description="The full address string.", Name="AddressFull", ParameterType="body")
    String? AddressFull;

    /**
    * True if the address is a physical location.
    */
    // @ApiMember(DataType="bool?", Description="True if the address is a physical location.", Name="IsPhysical", ParameterType="body")
    bool? IsPhysical;

    /**
    * Notes about the address.
    */
    // @ApiMember(DataType="string", Description="Notes about the address.", Name="Notes")
    String? Notes;

    /**
    * If true, the address is eligible for having its coordinates calculated/updated.
    */
    // @ApiMember(DataType="bool?", Description="If true, the address is eligible for having its coordinates calculated/updated.", Name="AutoMapCoordinates", ParameterType="body")
    bool? AutoMapCoordinates;

    /**
    * Location Coordinates for the address.
    */
    // @ApiMember(DataType="LocationCoordinates", Description="Location Coordinates for the address.", Name="LocationCoordinates", ParameterType="body")
    LocationCoordinatesModel? LocationCoordinates;

    AddressModel({this.DistanceAway,this.Latitude,this.Longitude,this.AddressFormatId,this.SuburbId,this.SuburbName,this.StateShortName,this.PostCode,this.CountryId,this.CountryName,this.ISOCountryCode,this.LotNumber,this.SubUnit,this.BuildingNumber,this.StreetNumber,this.StreetName,this.AddressLineOne,this.AddressLineTwo,this.AddressFull,this.IsPhysical,this.Notes,this.AutoMapCoordinates,this.LocationCoordinates});
    AddressModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        DistanceAway = JsonConverters.toDouble(json['DistanceAway']);
        Latitude = JsonConverters.toDouble(json['Latitude']);
        Longitude = JsonConverters.toDouble(json['Longitude']);
        AddressFormatId = json['AddressFormatId'];
        SuburbId = json['SuburbId'];
        SuburbName = json['SuburbName'];
        StateShortName = json['StateShortName'];
        PostCode = json['PostCode'];
        CountryId = json['CountryId'];
        CountryName = json['CountryName'];
        ISOCountryCode = json['ISOCountryCode'];
        LotNumber = json['LotNumber'];
        SubUnit = json['SubUnit'];
        BuildingNumber = json['BuildingNumber'];
        StreetNumber = json['StreetNumber'];
        StreetName = json['StreetName'];
        AddressLineOne = json['AddressLineOne'];
        AddressLineTwo = json['AddressLineTwo'];
        AddressFull = json['AddressFull'];
        IsPhysical = json['IsPhysical'];
        Notes = json['Notes'];
        AutoMapCoordinates = json['AutoMapCoordinates'];
        LocationCoordinates = JsonConverters.fromJson(json['LocationCoordinates'],'LocationCoordinatesModel',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'DistanceAway': DistanceAway,
        'Latitude': Latitude,
        'Longitude': Longitude,
        'AddressFormatId': AddressFormatId,
        'SuburbId': SuburbId,
        'SuburbName': SuburbName,
        'StateShortName': StateShortName,
        'PostCode': PostCode,
        'CountryId': CountryId,
        'CountryName': CountryName,
        'ISOCountryCode': ISOCountryCode,
        'LotNumber': LotNumber,
        'SubUnit': SubUnit,
        'BuildingNumber': BuildingNumber,
        'StreetNumber': StreetNumber,
        'StreetName': StreetName,
        'AddressLineOne': AddressLineOne,
        'AddressLineTwo': AddressLineTwo,
        'AddressFull': AddressFull,
        'IsPhysical': IsPhysical,
        'Notes': Notes,
        'AutoMapCoordinates': AutoMapCoordinates,
        'LocationCoordinates': JsonConverters.toJson(LocationCoordinates,'LocationCoordinatesModel',context!)
    };

    getTypeName() => "AddressModel";
    TypeContext? context = _ctx;
}

class ContactAddressModel implements IConvertible
{
    /**
    * Address Details
    */
    // @ApiMember(DataType="AddressModel", Description="Address Details", Name="Address", ParameterType="body")
    AddressModel? Address;

    /**
    * True if this is a postal address.
    */
    // @ApiMember(DataType="bool", Description="True if this is a postal address.", Name="IsPostal", ParameterType="body")
    bool? IsPostal;

    /**
    * True if this is the primary address.
    */
    // @ApiMember(DataType="bool", Description="True if this is the primary address.", Name="IsPrimaryLocation", ParameterType="body")
    bool? IsPrimaryLocation;

    /**
    * True if this address is the registered tax address.
    */
    // @ApiMember(DataType="bool", Description="True if this address is the registered tax address.", Name="IsRegisteredLocation", ParameterType="body")
    bool? IsRegisteredLocation;

    /**
    * Suburb Name
    */
    // @ApiMember(DataType="string", Description="Suburb Name", Name="SuburbName", ParameterType="body")
    String? SuburbName;

    /**
    * State Name
    */
    // @ApiMember(DataType="string", Description="State Name", Name="StateName", ParameterType="body")
    String? StateName;

    /**
    * Country Name
    */
    // @ApiMember(DataType="string", Description="Country Name", Name="CountryName", ParameterType="body")
    String? CountryName;

    ContactAddressModel({this.Address,this.IsPostal,this.IsPrimaryLocation,this.IsRegisteredLocation,this.SuburbName,this.StateName,this.CountryName});
    ContactAddressModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Address = JsonConverters.fromJson(json['Address'],'AddressModel',context!);
        IsPostal = json['IsPostal'];
        IsPrimaryLocation = json['IsPrimaryLocation'];
        IsRegisteredLocation = json['IsRegisteredLocation'];
        SuburbName = json['SuburbName'];
        StateName = json['StateName'];
        CountryName = json['CountryName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Address': JsonConverters.toJson(Address,'AddressModel',context!),
        'IsPostal': IsPostal,
        'IsPrimaryLocation': IsPrimaryLocation,
        'IsRegisteredLocation': IsRegisteredLocation,
        'SuburbName': SuburbName,
        'StateName': StateName,
        'CountryName': CountryName
    };

    getTypeName() => "ContactAddressModel";
    TypeContext? context = _ctx;
}

class PhoneModel implements IConvertible
{
    /**
    * Country Code
    */
    // @ApiMember(DataType="string", Description="Country Code", Name="CountryCode", ParameterType="body")
    String? CountryCode;

    /**
    * Area Code
    */
    // @ApiMember(DataType="string", Description="Area Code", Name="AreaCode", ParameterType="body")
    String? AreaCode;

    /**
    * Local Number
    */
    // @ApiMember(DataType="string", Description="Local Number", Name="LocalNumber", ParameterType="body")
    String? LocalNumber;

    PhoneModel({this.CountryCode,this.AreaCode,this.LocalNumber});
    PhoneModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CountryCode = json['CountryCode'];
        AreaCode = json['AreaCode'];
        LocalNumber = json['LocalNumber'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CountryCode': CountryCode,
        'AreaCode': AreaCode,
        'LocalNumber': LocalNumber
    };

    getTypeName() => "PhoneModel";
    TypeContext? context = _ctx;
}

class ContactDetailModel implements IConvertible
{
    /**
    * Id of the Contact Method
    */
    // @ApiMember(DataType="Guid", Description="Id of the Contact Method", Name="ContactMethodId", ParameterType="body")
    String? ContactMethodId;

    /**
    * Contact Method Name
    */
    // @ApiMember(DataType="string", Description="Contact Method Name", Name="ContactMethodName", ParameterType="body")
    String? ContactMethodName;

    /**
    * If the contact method is an address, this will contain the address details.
    */
    // @ApiMember(DataType="ContactAddressModel", Description="If the contact method is an address, this will contain the address details.", Name="ContactAddress", ParameterType="body")
    ContactAddressModel? ContactAddress;

    /**
    * If the contact method is a phone, this will contain the phone details
    */
    // @ApiMember(DataType="PhoneModel", Description="If the contact method is a phone, this will contain the phone details", Name="ContactPhone", ParameterType="body")
    PhoneModel? ContactPhone;

    /**
    * Id of the country
    */
    // @ApiMember(DataType="Guid?", Description="Id of the country", Name="CountryId", ParameterType="body")
    String? CountryId;

    /**
    * A summary string representing the contact details
    */
    // @ApiMember(DataType="string", Description="A summary string representing the contact details", Name="ContactDetails", ParameterType="body")
    String? ContactDetails;

    /**
    * Notes about the contact details
    */
    // @ApiMember(DataType="string", Description="Notes about the contact details", Name="Notes", ParameterType="body")
    String? Notes;

    /**
    * Area Code if contact details are a phone number
    */
    // @ApiMember(DataType="string", Description="Area Code if contact details are a phone number", Name="ContactDetailsCode", ParameterType="body")
    String? ContactDetailsCode;

    /**
    * Order number of the contact method
    */
    // @ApiMember(DataType="int", Description="Order number of the contact method", Name="OrderContactMethod", ParameterType="body")
    int? OrderContactMethod;

    /**
    * True if this is the primary contact method
    */
    // @ApiMember(DataType="bool", Description="True if this is the primary contact method", Name="IsPrimaryContactMethod", ParameterType="body")
    bool? IsPrimaryContactMethod;

    /**
    * True if this contact method is an address
    */
    // @ApiMember(DataType="bool", Description="True if this contact method is an address", Name="IsAddress", ParameterType="body")
    bool? IsAddress;

    ContactDetailModel({this.ContactMethodId,this.ContactMethodName,this.ContactAddress,this.ContactPhone,this.CountryId,this.ContactDetails,this.Notes,this.ContactDetailsCode,this.OrderContactMethod,this.IsPrimaryContactMethod,this.IsAddress});
    ContactDetailModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactMethodId = json['ContactMethodId'];
        ContactMethodName = json['ContactMethodName'];
        ContactAddress = JsonConverters.fromJson(json['ContactAddress'],'ContactAddressModel',context!);
        ContactPhone = JsonConverters.fromJson(json['ContactPhone'],'PhoneModel',context!);
        CountryId = json['CountryId'];
        ContactDetails = json['ContactDetails'];
        Notes = json['Notes'];
        ContactDetailsCode = json['ContactDetailsCode'];
        OrderContactMethod = json['OrderContactMethod'];
        IsPrimaryContactMethod = json['IsPrimaryContactMethod'];
        IsAddress = json['IsAddress'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactMethodId': ContactMethodId,
        'ContactMethodName': ContactMethodName,
        'ContactAddress': JsonConverters.toJson(ContactAddress,'ContactAddressModel',context!),
        'ContactPhone': JsonConverters.toJson(ContactPhone,'PhoneModel',context!),
        'CountryId': CountryId,
        'ContactDetails': ContactDetails,
        'Notes': Notes,
        'ContactDetailsCode': ContactDetailsCode,
        'OrderContactMethod': OrderContactMethod,
        'IsPrimaryContactMethod': IsPrimaryContactMethod,
        'IsAddress': IsAddress
    };

    getTypeName() => "ContactDetailModel";
    TypeContext? context = _ctx;
}

/**
* Updates a Users Profile information'
*/
// @Api(Description="Updates a Users Profile information'")
class SaveUserProfile implements IConvertible
{
    /**
    * The users profile Guid.
    */
    // @ApiMember(DataType="Guid", Description="The users profile Guid.", IsRequired=true, Name="UserProfileId", ParameterType="query")
    String? UserProfileId;

    /**
    * 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 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")
    String? UserId;

    /**
    * The users contact Guid.
    */
    // @ApiMember(DataType="Guid", Description="The users contact Guid.", IsRequired=true, Name="ContactId", ParameterType="query")
    String? ContactId;

    /**
    * The users profile name.
    */
    // @ApiMember(DataType="string", Description="The users profile name.", IsRequired=true, Name="ProfileName", ParameterType="query")
    String? ProfileName;

    /**
    * The users (contact) title.
    */
    // @ApiMember(DataType="string", Description="The users (contact) title.", Name="Title", ParameterType="query")
    String? Title;

    /**
    * The users (contact) first name(s).
    */
    // @ApiMember(DataType="string", Description="The users (contact) first name(s).", IsRequired=true, Name="FirstName", ParameterType="query")
    String? FirstName;

    /**
    * The users (contact) surname.
    */
    // @ApiMember(DataType="string", Description="The users (contact) surname.", IsRequired=true, Name="Surname", ParameterType="query")
    String? Surname;

    /**
    * The contact profile description.
    */
    // @ApiMember(DataType="string", Description="The contact profile description.", Name="Description", ParameterType="query")
    String? Description;

    /**
    * The contacts profession/trade/industry details.
    */
    // @ApiMember(DataType="string", Description="The contacts profession/trade/industry details.", Name="EmploymentIndustry", ParameterType="query")
    String? EmploymentIndustry;

    /**
    * The contact details of who they work/subcontract for.
    */
    // @ApiMember(DataType="string", Description="The contact details of who they work/subcontract for.", Name="EmploymentRole", ParameterType="query")
    String? EmploymentRole;

    /**
    * The contacts work area/suburbs.
    */
    // @ApiMember(DataType="string", Description="The contacts work area/suburbs.", Name="EmploymentGeographicArea", ParameterType="query")
    String? EmploymentGeographicArea;

    /**
    * The contacts timezone.
    */
    // @ApiMember(DataType="Guid", Description="The contacts timezone.", Name="Timezone", ParameterType="query")
    String? Timezone;

    /**
    * A list of the contact details for the contact. Note: an email must always be set for a business.
    */
    // @ApiMember(DataType="List<ContactDetailModel>", 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")
    List<ContactDetailModel>? ContactDetails = [];

    /**
    * 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="ContactType")
    String? ContactType;

    /**
    * Legal name of contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Legal name of contact linked to the profile", Name="LegalName")
    String? LegalName;

    /**
    * Trading name of contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Trading name of contact linked to the profile", Name="TradingName")
    String? TradingName;

    /**
    * Abn of contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Abn of contact linked to the profile", Name="Abn")
    String? Abn;

    /**
    * Acn of contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Acn of contact linked to the profile", Name="Acn")
    String? Acn;

    /**
    * Arbn of contact linked to the profile
    */
    // @ApiMember(DataType="string", Description="Arbn of contact linked to the profile", Name="Arbn")
    String? Arbn;

    /**
    * Indicates if the Contact is registered for GST.
    */
    // @ApiMember(DataType="bool", Description="Indicates if the Contact is registered for GST.", Name="GstRegistered", ParameterType="query")
    bool? GstRegistered;

    /**
    * The Gender Guid of the contact.
    */
    // @ApiMember(DataType="Guid", Description="The Gender Guid of the contact.", Name="GenderId", ParameterType="query")
    String? GenderId;

    SaveUserProfile({this.UserProfileId,this.UserId,this.ContactId,this.ProfileName,this.Title,this.FirstName,this.Surname,this.Description,this.EmploymentIndustry,this.EmploymentRole,this.EmploymentGeographicArea,this.Timezone,this.ContactDetails,this.ContactType,this.LegalName,this.TradingName,this.Abn,this.Acn,this.Arbn,this.GstRegistered,this.GenderId});
    SaveUserProfile.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        UserProfileId = json['UserProfileId'];
        UserId = json['UserId'];
        ContactId = json['ContactId'];
        ProfileName = json['ProfileName'];
        Title = json['Title'];
        FirstName = json['FirstName'];
        Surname = json['Surname'];
        Description = json['Description'];
        EmploymentIndustry = json['EmploymentIndustry'];
        EmploymentRole = json['EmploymentRole'];
        EmploymentGeographicArea = json['EmploymentGeographicArea'];
        Timezone = json['Timezone'];
        ContactDetails = JsonConverters.fromJson(json['ContactDetails'],'List<ContactDetailModel>',context!);
        ContactType = json['ContactType'];
        LegalName = json['LegalName'];
        TradingName = json['TradingName'];
        Abn = json['Abn'];
        Acn = json['Acn'];
        Arbn = json['Arbn'];
        GstRegistered = json['GstRegistered'];
        GenderId = json['GenderId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'UserProfileId': UserProfileId,
        'UserId': UserId,
        'ContactId': ContactId,
        'ProfileName': ProfileName,
        'Title': Title,
        'FirstName': FirstName,
        'Surname': Surname,
        'Description': Description,
        'EmploymentIndustry': EmploymentIndustry,
        'EmploymentRole': EmploymentRole,
        'EmploymentGeographicArea': EmploymentGeographicArea,
        'Timezone': Timezone,
        'ContactDetails': JsonConverters.toJson(ContactDetails,'List<ContactDetailModel>',context!),
        'ContactType': ContactType,
        'LegalName': LegalName,
        'TradingName': TradingName,
        'Abn': Abn,
        'Acn': Acn,
        'Arbn': Arbn,
        'GstRegistered': GstRegistered,
        'GenderId': GenderId
    };

    getTypeName() => "SaveUserProfile";
    TypeContext? context = _ctx;
}

/**
* Updates a Users Profile information'
*/
// @Api(Description="Updates a Users Profile information'")
class AddBusinessProfile implements IConvertible
{
    /**
    * The users business profile information to link to their user ID.
    */
    // @ApiMember(DataType="SaveUserProfile", Description="The users business profile information to link to their user ID.", Name="BusinessProfile", ParameterType="query")
    SaveUserProfile? BusinessProfile;

    AddBusinessProfile({this.BusinessProfile});
    AddBusinessProfile.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        BusinessProfile = JsonConverters.fromJson(json['BusinessProfile'],'SaveUserProfile',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'BusinessProfile': JsonConverters.toJson(BusinessProfile,'SaveUserProfile',context!)
    };

    getTypeName() => "AddBusinessProfile";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'pfapi.pstpf.com.au', types: <String, TypeInfo> {
    'AddBusinessProfileResponse': TypeInfo(TypeOf.Class, create:() => AddBusinessProfileResponse()),
    'LocationCoordinatesModel': TypeInfo(TypeOf.Class, create:() => LocationCoordinatesModel()),
    'AddressModel': TypeInfo(TypeOf.Class, create:() => AddressModel()),
    'ContactAddressModel': TypeInfo(TypeOf.Class, create:() => ContactAddressModel()),
    'PhoneModel': TypeInfo(TypeOf.Class, create:() => PhoneModel()),
    'ContactDetailModel': TypeInfo(TypeOf.Class, create:() => ContactDetailModel()),
    'SaveUserProfile': TypeInfo(TypeOf.Class, create:() => SaveUserProfile()),
    'List<ContactDetailModel>': TypeInfo(TypeOf.Class, create:() => <ContactDetailModel>[]),
    'AddBusinessProfile': TypeInfo(TypeOf.Class, create:() => AddBusinessProfile()),
});

Dart AddBusinessProfile DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /api/profile/business HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"BusinessProfile":{"UserProfileId":"00000000-0000-0000-0000-000000000000","UserId":"00000000-0000-0000-0000-000000000000","ContactId":"00000000-0000-0000-0000-000000000000","ProfileName":"String","Title":"String","FirstName":"String","Surname":"String","Description":"String","EmploymentIndustry":"String","EmploymentRole":"String","EmploymentGeographicArea":"String","Timezone":"00000000-0000-0000-0000-000000000000","ContactDetails":[{"ContactMethodId":"00000000-0000-0000-0000-000000000000","ContactMethodName":"String","ContactAddress":{"Address":{"DistanceAway":0,"Latitude":0,"Longitude":0,"AddressFormatId":"00000000-0000-0000-0000-000000000000","SuburbId":"00000000-0000-0000-0000-000000000000","SuburbName":"String","StateShortName":"String","PostCode":"String","CountryId":"00000000-0000-0000-0000-000000000000","CountryName":"String","ISOCountryCode":"String","LotNumber":"String","SubUnit":"String","BuildingNumber":"String","StreetNumber":"String","StreetName":"String","AddressLineOne":"String","AddressLineTwo":"String","AddressFull":"String","IsPhysical":false,"Notes":"String","AutoMapCoordinates":false,"LocationCoordinates":{"Latitude":0,"Longitude":0,"Altitude":0,"Accuracy":0,"AltitudeAccuracy":0,"Heading":0,"Speed":0,"VerticalSpeed":0}},"IsPostal":false,"IsPrimaryLocation":false,"IsRegisteredLocation":false,"SuburbName":"String","StateName":"String","CountryName":"String"},"ContactPhone":{"CountryCode":"String","AreaCode":"String","LocalNumber":"String"},"CountryId":"00000000000000000000000000000000","ContactDetails":"String","Notes":"String","ContactDetailsCode":"String","OrderContactMethod":0,"IsPrimaryContactMethod":false,"IsAddress":true}],"ContactType":"00000000-0000-0000-0000-000000000000","LegalName":"String","TradingName":"String","Abn":"String","Acn":"String","Arbn":"String","GstRegistered":false,"GenderId":"00000000000000000000000000000000"}}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Message":"String","ErrorCode":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"UserProfileId":"00000000-0000-0000-0000-000000000000","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}