import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class ContactRole implements IConvertible
{
/**
* Guid of the Role List Item object within Eros.
*/
// @ApiMember(DataType="Guid", Description="Guid of the Role List Item object within Eros.", IsRequired=true, Name="RoleId", ParameterType="query")
String? RoleId;
/**
* The unique key that represents the role type on the external system.
*/
// @ApiMember(DataType="string", Description="The unique key that represents the role type on the external system.", Name="AlternateKey", ParameterType="query")
String? AlternateKey;
ContactRole({this.RoleId,this.AlternateKey});
ContactRole.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RoleId = json['RoleId'];
AlternateKey = json['AlternateKey'];
return this;
}
Map<String, dynamic> toJson() => {
'RoleId': RoleId,
'AlternateKey': AlternateKey
};
getTypeName() => "ContactRole";
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(DataType="Double?", Description="The latitude of an address - geographic coordinates specifying the north-south position of a point on the Earth's surface.", IsRequired=true, Name="Latitude", 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(DataType="Double?", Description="The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.", IsRequired=true, Name="Longitude", ParameterType="query")
double? Longitude;
/**
* The altitude of an address - the altitude above sea level.
*/
// @ApiMember(DataType="Double?", Description="The altitude of an address - the altitude above sea level.", Name="Altitude", ParameterType="query")
double? Altitude;
/**
* Accuracy of the latitude and longitude.
*/
// @ApiMember(DataType="Double?", Description="Accuracy of the latitude and longitude.", Name="Accuracy", ParameterType="query")
double? Accuracy;
/**
* Accurancy of the Altitude.
*/
// @ApiMember(DataType="Double?", Description="Accurancy of the Altitude.", Name="AltitudeAccuracy", ParameterType="query")
double? AltitudeAccuracy;
/**
* Direction you are heading.
*/
// @ApiMember(DataType="Double?", Description="Direction you are heading.", Name="Heading", ParameterType="query")
double? Heading;
/**
* Speed you are going.
*/
// @ApiMember(DataType="Double?", Description="Speed you are going.", Name="Speed", ParameterType="query")
double? Speed;
/**
* Speed your altitude is ascending/descending at.
*/
// @ApiMember(DataType="Double?", Description="Speed your altitude is ascending/descending at.", Name="VerticalSpeed", 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="query")
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.", IsRequired=true, Name="Latitude", 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(DataType="Double?", Description="The longitude of an address - geographic coordinates specifying the east-west position of a point on the Earth's surface.", IsRequired=true, Name="Longitude", ParameterType="query")
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="query")
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="query")
String? SuburbId;
/**
* The suburb name.
*/
// @ApiMember(DataType="string", Description="The suburb name.", Name="SuburbName", ParameterType="query")
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="query")
String? StateShortName;
/**
* The suburb postcode.
*/
// @ApiMember(DataType="string", Description="The suburb postcode.", Name="PostCode", ParameterType="query")
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="query")
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="query")
String? CountryName;
/**
* A 2 digit ISO Country Code representing the country.
*/
// @ApiMember(DataType="string", Description="A 2 digit ISO Country Code representing the country.", Name="ISOCountryCode", ParameterType="query")
String? ISOCountryCode;
/**
* The address Lot number.
*/
// @ApiMember(DataType="string", Description="The address Lot number.", Name="LotNumber", ParameterType="query")
String? LotNumber;
/**
* The address Sub Unit number.
*/
// @ApiMember(DataType="string", Description="The address Sub Unit number.", Name="SubUnit", ParameterType="query")
String? SubUnit;
/**
* The address building number.
*/
// @ApiMember(DataType="string", Description="The address building number.", Name="BuildingNumber", ParameterType="query")
String? BuildingNumber;
/**
* The address street number.
*/
// @ApiMember(DataType="string", Description="The address street number.", Name="StreetNumber", ParameterType="query")
String? StreetNumber;
/**
* The address street name including street type.
*/
// @ApiMember(DataType="string", Description="The address street name including street type.", Name="StreetName", ParameterType="query")
String? StreetName;
/**
* A formatted address Line 1.
*/
// @ApiMember(DataType="string", Description="A formatted address Line 1.", Name="AddressLineOne", ParameterType="query")
String? AddressLineOne;
/**
* A formatted address Line 2.
*/
// @ApiMember(DataType="string", Description="A formatted address Line 2.", Name="AddressLineTwo", ParameterType="query")
String? AddressLineTwo;
/**
* The full address string.
*/
// @ApiMember(DataType="string", Description="The full address string.", Name="AddressFull", ParameterType="query")
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="query")
bool? IsPhysical;
/**
* Notes about the address.
*/
// @ApiMember(DataType="string", Description="Notes about the address.", Name="Notes", ParameterType="query")
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="query")
bool? AutoMapCoordinates;
/**
* Location Coordinates for the address.
*/
// @ApiMember(DataType="LocationCoordinates", Description="Location Coordinates for the address.", Name="LocationCoordinates", ParameterType="query")
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
{
AddressModel? Address;
bool? IsPostal;
bool? IsPrimaryLocation;
bool? IsRegisteredLocation;
String? SuburbName;
String? StateName;
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
{
String? CountryCode;
String? AreaCode;
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
{
String? ContactMethodId;
String? ContactMethodName;
ContactAddressModel? ContactAddress;
PhoneModel? ContactPhone;
String? CountryId;
String? ContactDetails;
String? Notes;
String? ContactDetailsCode;
int? OrderContactMethod;
bool? IsPrimaryContactMethod;
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;
}
class SubscriptionContactModel implements IConvertible
{
/**
* Guid of the contact object within Eros.
*/
// @ApiMember(DataType="Guid", Description="Guid of the contact object within Eros.", Name="ContactId", ParameterType="query")
String? ContactId;
/**
* Guid of the Contact Type List Item object within Eros.
*/
// @ApiMember(DataType="Guid", Description="Guid of the Contact Type List Item object within Eros.", IsRequired=true, Name="ContactType", ParameterType="query")
String? ContactType;
/**
* Guid of the Marital Status List Item object within Eros.
*/
// @ApiMember(DataType="Guid?", Description="Guid of the Marital Status List Item object within Eros.", Name="MaritalStatus", ParameterType="query")
String? MaritalStatus;
/**
* Guid of the Gender List Item object within Eros.
*/
// @ApiMember(DataType="Guid?", Description="Guid of the Gender List Item object within Eros.", Name="Gender", ParameterType="query")
String? Gender;
/**
* The first given name for the contact. Applies to a person contact type.
*/
// @ApiMember(DataType="string", Description="The first given name for the contact. Applies to a person contact type.", Name="FirstName", ParameterType="query")
String? FirstName;
/**
* The middle name(s) for the contact. Applies to a person contact type.
*/
// @ApiMember(DataType="string", Description="The middle name(s) for the contact. Applies to a person contact type.", Name="MiddleName", ParameterType="query")
String? MiddleName;
/**
* The surname for the contact. Applies to a person contact type.
*/
// @ApiMember(DataType="string", Description="The surname for the contact. Applies to a person contact type.", Name="Surname", ParameterType="query")
String? Surname;
/**
* The full name for the contact.
*/
// @ApiMember(DataType="string", Description="The full name for the contact.", Name="FullName", ParameterType="query")
String? FullName;
/**
* A short name for the contact.
*/
// @ApiMember(DataType="string", Description="A short name for the contact.", Name="ShortName", ParameterType="query")
String? ShortName;
/**
* The birth date for the contact. Applies to a person contact type.
*/
// @ApiMember(DataType="DateTime?", Description="The birth date for the contact. Applies to a person contact type.", Name="BirthDate", ParameterType="query")
DateTime? BirthDate;
/**
* The title for the contact. Applies to a person contact type.
*/
// @ApiMember(DataType="string", Description="The title for the contact. Applies to a person contact type.", Name="Title", ParameterType="query")
String? Title;
/**
* A salutation for the contact.
*/
// @ApiMember(DataType="string", Description="A salutation for the contact.", Name="Salutation", ParameterType="query")
String? Salutation;
/**
* The A.B.N for the contact.
*/
// @ApiMember(DataType="string", Description="The A.B.N for the contact.", Name="Abn", ParameterType="query")
String? Abn;
/**
* The A.C.N for the contact.
*/
// @ApiMember(DataType="string", Description="The A.C.N for the contact.", Name="Acn", ParameterType="query")
String? Acn;
/**
* The A.R.B.N for the contact.
*/
// @ApiMember(DataType="string", Description="The A.R.B.N for the contact.", Name="Arbn", ParameterType="query")
String? Arbn;
/**
* A trading name for the contact.
*/
// @ApiMember(DataType="string", Description="A trading name for the contact.", Name="TradingName", ParameterType="query")
String? TradingName;
/**
* A legal name for the contact.
*/
// @ApiMember(DataType="string", Description="A legal name for the contact.", Name="LegalName", ParameterType="query")
String? LegalName;
/**
* Any notes/description for the contact.
*/
// @ApiMember(DataType="string", Description="Any notes/description for the contact.", Name="Notes", ParameterType="query")
String? Notes;
/**
* Contact Employment Industry.
*/
// @ApiMember(DataType="string", Description="Contact Employment Industry.", Name="EmploymentIndustry", ParameterType="query")
String? EmploymentIndustry;
/**
* Contact Employment Role.
*/
// @ApiMember(DataType="string", Description="Contact Employment Role.", Name="EmploymentRole", ParameterType="query")
String? EmploymentRole;
/**
* Contact Employment Geographic Area.
*/
// @ApiMember(DataType="string", Description="Contact Employment Geographic Area.", Name="EmploymentGeographicArea", ParameterType="query")
String? EmploymentGeographicArea;
/**
* The Contacts Drivers Licence Number
*/
// @ApiMember(DataType="string", Description="The Contacts Drivers Licence Number", Name="DriversLicence", ParameterType="query")
String? DriversLicence;
/**
* 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 status of the contact in EROS
*/
// @ApiMember(DataType="string", Description="The status of the contact in EROS", Name="RecordStatus", ParameterType="query")
String? RecordStatus;
/**
* A list of roles this contact has.
*/
// @ApiMember(DataType="List<ContactRole>", Description="A list of roles this contact has.", IsRequired=true, Name="ContactRoles", ParameterType="query")
List<ContactRole>? ContactRoles = [];
/**
* A list of the contact details for the contact.
*/
// @ApiMember(DataType="List<ContactDetailModel>", Description="A list of the contact details for the contact.", IsRequired=true, Name="ContactDetails", ParameterType="query")
List<ContactDetailModel>? ContactDetails = [];
/**
* Custom Content XML for the contact.
*/
// @ApiMember(DataType="string", Description="Custom Content XML for the contact.", Name="CustomContentXML", ParameterType="query")
String? CustomContentXML;
String? BlobImageURLPrimary;
String? BlobImageURLPrimaryThumbnail;
/**
* The primary mobile for the contact.
*/
// @ApiMember(DataType="string", Description="The primary mobile for the contact.", Name="PrimaryMobile", ParameterType="query")
String? PrimaryMobile;
/**
* The primary email for the contact.
*/
// @ApiMember(DataType="string", Description="The primary email for the contact.", Name="PrimaryEmail", ParameterType="query")
String? PrimaryEmail;
SubscriptionContactModel({this.ContactId,this.ContactType,this.MaritalStatus,this.Gender,this.FirstName,this.MiddleName,this.Surname,this.FullName,this.ShortName,this.BirthDate,this.Title,this.Salutation,this.Abn,this.Acn,this.Arbn,this.TradingName,this.LegalName,this.Notes,this.EmploymentIndustry,this.EmploymentRole,this.EmploymentGeographicArea,this.DriversLicence,this.GstRegistered,this.RecordStatus,this.ContactRoles,this.ContactDetails,this.CustomContentXML,this.BlobImageURLPrimary,this.BlobImageURLPrimaryThumbnail,this.PrimaryMobile,this.PrimaryEmail});
SubscriptionContactModel.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ContactId = json['ContactId'];
ContactType = json['ContactType'];
MaritalStatus = json['MaritalStatus'];
Gender = json['Gender'];
FirstName = json['FirstName'];
MiddleName = json['MiddleName'];
Surname = json['Surname'];
FullName = json['FullName'];
ShortName = json['ShortName'];
BirthDate = JsonConverters.fromJson(json['BirthDate'],'DateTime',context!);
Title = json['Title'];
Salutation = json['Salutation'];
Abn = json['Abn'];
Acn = json['Acn'];
Arbn = json['Arbn'];
TradingName = json['TradingName'];
LegalName = json['LegalName'];
Notes = json['Notes'];
EmploymentIndustry = json['EmploymentIndustry'];
EmploymentRole = json['EmploymentRole'];
EmploymentGeographicArea = json['EmploymentGeographicArea'];
DriversLicence = json['DriversLicence'];
GstRegistered = json['GstRegistered'];
RecordStatus = json['RecordStatus'];
ContactRoles = JsonConverters.fromJson(json['ContactRoles'],'List<ContactRole>',context!);
ContactDetails = JsonConverters.fromJson(json['ContactDetails'],'List<ContactDetailModel>',context!);
CustomContentXML = json['CustomContentXML'];
BlobImageURLPrimary = json['BlobImageURLPrimary'];
BlobImageURLPrimaryThumbnail = json['BlobImageURLPrimaryThumbnail'];
PrimaryMobile = json['PrimaryMobile'];
PrimaryEmail = json['PrimaryEmail'];
return this;
}
Map<String, dynamic> toJson() => {
'ContactId': ContactId,
'ContactType': ContactType,
'MaritalStatus': MaritalStatus,
'Gender': Gender,
'FirstName': FirstName,
'MiddleName': MiddleName,
'Surname': Surname,
'FullName': FullName,
'ShortName': ShortName,
'BirthDate': JsonConverters.toJson(BirthDate,'DateTime',context!),
'Title': Title,
'Salutation': Salutation,
'Abn': Abn,
'Acn': Acn,
'Arbn': Arbn,
'TradingName': TradingName,
'LegalName': LegalName,
'Notes': Notes,
'EmploymentIndustry': EmploymentIndustry,
'EmploymentRole': EmploymentRole,
'EmploymentGeographicArea': EmploymentGeographicArea,
'DriversLicence': DriversLicence,
'GstRegistered': GstRegistered,
'RecordStatus': RecordStatus,
'ContactRoles': JsonConverters.toJson(ContactRoles,'List<ContactRole>',context!),
'ContactDetails': JsonConverters.toJson(ContactDetails,'List<ContactDetailModel>',context!),
'CustomContentXML': CustomContentXML,
'BlobImageURLPrimary': BlobImageURLPrimary,
'BlobImageURLPrimaryThumbnail': BlobImageURLPrimaryThumbnail,
'PrimaryMobile': PrimaryMobile,
'PrimaryEmail': PrimaryEmail
};
getTypeName() => "SubscriptionContactModel";
TypeContext? context = _ctx;
}
class ContactsStaff implements IConvertible
{
String? ContactId;
String? ContactStaffId;
ContactsStaff({this.ContactId,this.ContactStaffId});
ContactsStaff.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ContactId = json['ContactId'];
ContactStaffId = json['ContactStaffId'];
return this;
}
Map<String, dynamic> toJson() => {
'ContactId': ContactId,
'ContactStaffId': ContactStaffId
};
getTypeName() => "ContactsStaff";
TypeContext? context = _ctx;
}
class GetContactsModel implements IConvertible
{
/**
* List of Contacts with details.
*/
// @ApiMember(DataType="string", Description="List of Contacts with details.", IsRequired=true, Name="Contacts", ParameterType="query")
List<SubscriptionContactModel>? Contacts;
/**
* List of contact-staff details.
*/
// @ApiMember(DataType="string", Description="List of contact-staff details.", IsRequired=true, Name="ContactStaff", ParameterType="query")
List<ContactsStaff>? ContactStaff;
GetContactsModel({this.Contacts,this.ContactStaff});
GetContactsModel.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Contacts = JsonConverters.fromJson(json['Contacts'],'List<SubscriptionContactModel>',context!);
ContactStaff = JsonConverters.fromJson(json['ContactStaff'],'List<ContactsStaff>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Contacts': JsonConverters.toJson(Contacts,'List<SubscriptionContactModel>',context!),
'ContactStaff': JsonConverters.toJson(ContactStaff,'List<ContactsStaff>',context!)
};
getTypeName() => "GetContactsModel";
TypeContext? context = _ctx;
}
/**
* Returns a list of contacts with specified roles. There are options to include custom and also to include each contacts connected contacts
*/
// @Api(Description="Returns a list of contacts with specified roles. There are options to include custom and also to include each contacts connected contacts")
class GetContacts implements IConvertible
{
/**
* Guid representing the external system datasource requesting the contact information. This is required to return any existing object subscription details for each contact.
*/
// @ApiMember(DataType="Guid", Description="Guid representing the external system datasource requesting the contact information. This is required to return any existing object subscription details for each contact.", IsRequired=true, Name="SuiteDataSourceInstanceId", ParameterType="query")
String? SuiteDataSourceInstanceId;
/**
* A list of 1 or more roles that a contact must have in order to be returned. (Roles are treated as OR not AND, ie a contact may have one or the other to be returned, but not necessarily both)
*/
// @ApiMember(DataType="List<Guid>", Description="A list of 1 or more roles that a contact must have in order to be returned. (Roles are treated as OR not AND, ie a contact may have one or the other to be returned, but not necessarily both)", IsRequired=true, Name="ContactRoles", ParameterType="query")
List<String>? ContactRoles = [];
/**
* A list of contact types that we want returned. If no contact types are specified all 4 major contact types are eligible to be returned. (organisation/person - real/virtual)
*/
// @ApiMember(DataType="List<Guid>", Description="A list of contact types that we want returned. If no contact types are specified all 4 major contact types are eligible to be returned. (organisation/person - real/virtual)", Name="ContactTypes", ParameterType="query")
List<String>? ContactTypes;
/**
* Set to true if you want to include the any linked staff for each contact.
*/
// @ApiMember(DataType="bool", Description="Set to true if you want to include the any linked staff for each contact.", IsRequired=true, Name="IncludeStaff", ParameterType="query")
bool? IncludeStaff;
/**
* To include custom content then you need to specify the view Id of the content to include.
*/
// @ApiMember(DataType="Guid", Description="To include custom content then you need to specify the view Id of the content to include.", Name="CustomContentViewId", ParameterType="query")
String? CustomContentViewId;
/**
* Set the date to return only contacts that have been modified since a particular date.
*/
// @ApiMember(DataType="DateTime", Description="Set the date to return only contacts that have been modified since a particular date.", Name="ModifiedSince", ParameterType="query")
DateTime? ModifiedSince;
GetContacts({this.SuiteDataSourceInstanceId,this.ContactRoles,this.ContactTypes,this.IncludeStaff,this.CustomContentViewId,this.ModifiedSince});
GetContacts.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
SuiteDataSourceInstanceId = json['SuiteDataSourceInstanceId'];
ContactRoles = JsonConverters.fromJson(json['ContactRoles'],'List<String>',context!);
ContactTypes = JsonConverters.fromJson(json['ContactTypes'],'List<String>',context!);
IncludeStaff = json['IncludeStaff'];
CustomContentViewId = json['CustomContentViewId'];
ModifiedSince = JsonConverters.fromJson(json['ModifiedSince'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'SuiteDataSourceInstanceId': SuiteDataSourceInstanceId,
'ContactRoles': JsonConverters.toJson(ContactRoles,'List<String>',context!),
'ContactTypes': JsonConverters.toJson(ContactTypes,'List<String>',context!),
'IncludeStaff': IncludeStaff,
'CustomContentViewId': CustomContentViewId,
'ModifiedSince': JsonConverters.toJson(ModifiedSince,'DateTime',context!)
};
getTypeName() => "GetContacts";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'production_eros_platform_apisubscription.azurewebsites.net', types: <String, TypeInfo> {
'ContactRole': TypeInfo(TypeOf.Class, create:() => ContactRole()),
'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()),
'SubscriptionContactModel': TypeInfo(TypeOf.Class, create:() => SubscriptionContactModel()),
'List<ContactRole>': TypeInfo(TypeOf.Class, create:() => <ContactRole>[]),
'List<ContactDetailModel>': TypeInfo(TypeOf.Class, create:() => <ContactDetailModel>[]),
'ContactsStaff': TypeInfo(TypeOf.Class, create:() => ContactsStaff()),
'GetContactsModel': TypeInfo(TypeOf.Class, create:() => GetContactsModel()),
'List<SubscriptionContactModel>': TypeInfo(TypeOf.Class, create:() => <SubscriptionContactModel>[]),
'List<ContactsStaff>': TypeInfo(TypeOf.Class, create:() => <ContactsStaff>[]),
'GetContacts': TypeInfo(TypeOf.Class, create:() => GetContacts()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsonl/reply/GetContacts HTTP/1.1
Host: production-eros-platform-apisubscription.azurewebsites.net
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"ContactRoles":["00000000-0000-0000-0000-000000000000"],"ContactTypes":["00000000-0000-0000-0000-000000000000"],"IncludeStaff":false,"ModifiedSince":"0001-01-01T00:00:00.0000000"}
HTTP/1.1 200 OK Content-Type: text/jsonl Content-Length: length {}