GET | /api/CustomerInfo |
---|
import 'package:servicestack/servicestack.dart';
// @DataContract
class BaseRequest implements IConvertible
{
/**
* This is your AIM API Key provided by Tri-Tech
*/
// @DataMember
// @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header")
String? ApiKey;
// @DataMember
// @ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")
String? OAuthToken;
BaseRequest({this.ApiKey,this.OAuthToken});
BaseRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ApiKey = json['ApiKey'];
OAuthToken = json['OAuthToken'];
return this;
}
Map<String, dynamic> toJson() => {
'ApiKey': ApiKey,
'OAuthToken': OAuthToken
};
getTypeName() => "BaseRequest";
TypeContext? context = _ctx;
}
// @DataContract
class BaseSecureRequest extends BaseRequest implements IConvertible
{
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")
String? Token;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header")
String? DeviceId;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header")
String? AppId;
BaseSecureRequest({this.Token,this.DeviceId,this.AppId});
BaseSecureRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Token = json['Token'];
DeviceId = json['DeviceId'];
AppId = json['AppId'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Token': Token,
'DeviceId': DeviceId,
'AppId': AppId
});
getTypeName() => "BaseSecureRequest";
TypeContext? context = _ctx;
}
// @DataContract
class BaseResponseResult implements IConvertible
{
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="StatusCode", ParameterType="body")
String? StatusCode;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="Login", ParameterType="body")
String? Login;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="ErrorCode", ParameterType="body")
String? ErrorCode;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="ErrorDisplayText", ParameterType="body")
String? ErrorDisplayText;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="ErrorMessage", ParameterType="body")
String? ErrorMessage;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="DomainName", ParameterType="body")
String? DomainName;
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="IPAddress", ParameterType="body")
String? IpAddress;
BaseResponseResult({this.StatusCode,this.Login,this.ErrorCode,this.ErrorDisplayText,this.ErrorMessage,this.DomainName,this.IpAddress});
BaseResponseResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
StatusCode = json['StatusCode'];
Login = json['Login'];
ErrorCode = json['ErrorCode'];
ErrorDisplayText = json['ErrorDisplayText'];
ErrorMessage = json['ErrorMessage'];
DomainName = json['DomainName'];
IpAddress = json['IpAddress'];
return this;
}
Map<String, dynamic> toJson() => {
'StatusCode': StatusCode,
'Login': Login,
'ErrorCode': ErrorCode,
'ErrorDisplayText': ErrorDisplayText,
'ErrorMessage': ErrorMessage,
'DomainName': DomainName,
'IpAddress': IpAddress
};
getTypeName() => "BaseResponseResult";
TypeContext? context = _ctx;
}
// @DataContract
class BaseResponse implements IConvertible
{
/**
*
*/
// @DataMember
// @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
BaseResponseResult? Status;
BaseResponse({this.Status});
BaseResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Status = JsonConverters.fromJson(json['Status'],'BaseResponseResult',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Status': JsonConverters.toJson(Status,'BaseResponseResult',context!)
};
getTypeName() => "BaseResponse";
TypeContext? context = _ctx;
}
// @DataContract
abstract class BindableObject
{
BindableObject();
BindableObject.fromJson(Map<String, dynamic> json) : super();
fromMap(Map<String, dynamic> json) {
return this;
}
Map<String, dynamic> toJson() => {};
getTypeName() => "BindableObject";
TypeContext? context = _ctx;
}
// @DataContract
class DependantRecord implements IConvertible
{
// @DataMember
String? Name;
// @DataMember
String? OnlineId;
// @DataMember
String? SchoolDistrict;
// @DataMember
String? School;
// @DataMember
int? Id;
DependantRecord({this.Name,this.OnlineId,this.SchoolDistrict,this.School,this.Id});
DependantRecord.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Name = json['Name'];
OnlineId = json['OnlineId'];
SchoolDistrict = json['SchoolDistrict'];
School = json['School'];
Id = json['Id'];
return this;
}
Map<String, dynamic> toJson() => {
'Name': Name,
'OnlineId': OnlineId,
'SchoolDistrict': SchoolDistrict,
'School': School,
'Id': Id
};
getTypeName() => "DependantRecord";
TypeContext? context = _ctx;
}
// @DataContract
class CustomerDefaultInfo implements IConvertible
{
// @DataMember
int? Id;
// @DataMember
String? Desc;
// @DataMember
String? ShortDesc;
CustomerDefaultInfo({this.Id,this.Desc,this.ShortDesc});
CustomerDefaultInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
Desc = json['Desc'];
ShortDesc = json['ShortDesc'];
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'Desc': Desc,
'ShortDesc': ShortDesc
};
getTypeName() => "CustomerDefaultInfo";
TypeContext? context = _ctx;
}
// @DataContract
class TaxAuthorityInfo implements IConvertible
{
// @DataMember
int? Id;
// @DataMember
String? Desc;
// @DataMember
String? ShortDesc;
TaxAuthorityInfo({this.Id,this.Desc,this.ShortDesc});
TaxAuthorityInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
Desc = json['Desc'];
ShortDesc = json['ShortDesc'];
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'Desc': Desc,
'ShortDesc': ShortDesc
};
getTypeName() => "TaxAuthorityInfo";
TypeContext? context = _ctx;
}
// @DataContract
class LocationInfo implements IConvertible
{
// @DataMember
int? Id;
// @DataMember
String? Desc;
// @DataMember
String? ShortDesc;
// @DataMember
String? Region;
// @DataMember
double? Latitude;
// @DataMember
double? Longitude;
// @DataMember
String? InStorePickup;
// @DataMember
bool? Active;
// @DataMember
int? CashSaleAcct;
LocationInfo({this.Id,this.Desc,this.ShortDesc,this.Region,this.Latitude,this.Longitude,this.InStorePickup,this.Active,this.CashSaleAcct});
LocationInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
Desc = json['Desc'];
ShortDesc = json['ShortDesc'];
Region = json['Region'];
Latitude = JsonConverters.toDouble(json['Latitude']);
Longitude = JsonConverters.toDouble(json['Longitude']);
InStorePickup = json['InStorePickup'];
Active = json['Active'];
CashSaleAcct = json['CashSaleAcct'];
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'Desc': Desc,
'ShortDesc': ShortDesc,
'Region': Region,
'Latitude': Latitude,
'Longitude': Longitude,
'InStorePickup': InStorePickup,
'Active': Active,
'CashSaleAcct': CashSaleAcct
};
getTypeName() => "LocationInfo";
TypeContext? context = _ctx;
}
// @DataContract
class AdditionalDetail implements IConvertible
{
// @DataMember
DateTime? CreationDate;
// @DataMember
DateTime? LastModifiedDate;
// @DataMember
String? Notes;
// @DataMember
CustomerDefaultInfo? CustomerDefault;
// @DataMember
TaxAuthorityInfo? TaxAuthority;
// @DataMember
bool? CanCharge;
// @DataMember
String? PopupNotes;
// @DataMember
String? DlNumber;
// @DataMember
String? Phone2;
// @DataMember
String? Phone3;
// @DataMember
String? Phone4;
// @DataMember
LocationInfo? Location;
AdditionalDetail({this.CreationDate,this.LastModifiedDate,this.Notes,this.CustomerDefault,this.TaxAuthority,this.CanCharge,this.PopupNotes,this.DlNumber,this.Phone2,this.Phone3,this.Phone4,this.Location});
AdditionalDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CreationDate = JsonConverters.fromJson(json['CreationDate'],'DateTime',context!);
LastModifiedDate = JsonConverters.fromJson(json['LastModifiedDate'],'DateTime',context!);
Notes = json['Notes'];
CustomerDefault = JsonConverters.fromJson(json['CustomerDefault'],'CustomerDefaultInfo',context!);
TaxAuthority = JsonConverters.fromJson(json['TaxAuthority'],'TaxAuthorityInfo',context!);
CanCharge = json['CanCharge'];
PopupNotes = json['PopupNotes'];
DlNumber = json['DlNumber'];
Phone2 = json['Phone2'];
Phone3 = json['Phone3'];
Phone4 = json['Phone4'];
Location = JsonConverters.fromJson(json['Location'],'LocationInfo',context!);
return this;
}
Map<String, dynamic> toJson() => {
'CreationDate': JsonConverters.toJson(CreationDate,'DateTime',context!),
'LastModifiedDate': JsonConverters.toJson(LastModifiedDate,'DateTime',context!),
'Notes': Notes,
'CustomerDefault': JsonConverters.toJson(CustomerDefault,'CustomerDefaultInfo',context!),
'TaxAuthority': JsonConverters.toJson(TaxAuthority,'TaxAuthorityInfo',context!),
'CanCharge': CanCharge,
'PopupNotes': PopupNotes,
'DlNumber': DlNumber,
'Phone2': Phone2,
'Phone3': Phone3,
'Phone4': Phone4,
'Location': JsonConverters.toJson(Location,'LocationInfo',context!)
};
getTypeName() => "AdditionalDetail";
TypeContext? context = _ctx;
}
// @DataContract
class CustomerSearchRecord extends BindableObject implements IConvertible
{
// @DataMember
int? Pk;
// @DataMember
int? Acct;
// @DataMember
String? Last;
// @DataMember
String? Name;
// @DataMember
String? Addr1;
// @DataMember
String? Addr2;
// @DataMember
String? City;
// @DataMember
String? St;
// @DataMember
String? Zip;
// @DataMember
String? Phone;
// @DataMember
String? Email;
// @DataMember
bool? OpenInvoices;
// @DataMember
bool? RentalActivity;
// @DataMember
String? StLoc;
// @DataMember
bool? Hold;
// @DataMember
String? Barcode;
// @DataMember
int? Color;
// @DataMember
List<DependantRecord>? DependantInfo;
// @DataMember
AdditionalDetail? AdditionalDetails;
// @DataMember
String? MatchedOn;
CustomerSearchRecord({this.Pk,this.Acct,this.Last,this.Name,this.Addr1,this.Addr2,this.City,this.St,this.Zip,this.Phone,this.Email,this.OpenInvoices,this.RentalActivity,this.StLoc,this.Hold,this.Barcode,this.Color,this.DependantInfo,this.AdditionalDetails,this.MatchedOn});
CustomerSearchRecord.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Pk = json['Pk'];
Acct = json['Acct'];
Last = json['Last'];
Name = json['Name'];
Addr1 = json['Addr1'];
Addr2 = json['Addr2'];
City = json['City'];
St = json['St'];
Zip = json['Zip'];
Phone = json['Phone'];
Email = json['Email'];
OpenInvoices = json['OpenInvoices'];
RentalActivity = json['RentalActivity'];
StLoc = json['StLoc'];
Hold = json['Hold'];
Barcode = json['Barcode'];
Color = json['Color'];
DependantInfo = JsonConverters.fromJson(json['DependantInfo'],'List<DependantRecord>',context!);
AdditionalDetails = JsonConverters.fromJson(json['AdditionalDetails'],'AdditionalDetail',context!);
MatchedOn = json['MatchedOn'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Pk': Pk,
'Acct': Acct,
'Last': Last,
'Name': Name,
'Addr1': Addr1,
'Addr2': Addr2,
'City': City,
'St': St,
'Zip': Zip,
'Phone': Phone,
'Email': Email,
'OpenInvoices': OpenInvoices,
'RentalActivity': RentalActivity,
'StLoc': StLoc,
'Hold': Hold,
'Barcode': Barcode,
'Color': Color,
'DependantInfo': JsonConverters.toJson(DependantInfo,'List<DependantRecord>',context!),
'AdditionalDetails': JsonConverters.toJson(AdditionalDetails,'AdditionalDetail',context!),
'MatchedOn': MatchedOn
});
getTypeName() => "CustomerSearchRecord";
TypeContext? context = _ctx;
}
// @DataContract
class CategoryLevelDiscount implements IConvertible
{
// @DataMember
int? Category;
// @DataMember
int? SubCategory;
// @DataMember
String? DiscountType;
// @DataMember
double? DiscountAmount;
CategoryLevelDiscount({this.Category,this.SubCategory,this.DiscountType,this.DiscountAmount});
CategoryLevelDiscount.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Category = json['Category'];
SubCategory = json['SubCategory'];
DiscountType = json['DiscountType'];
DiscountAmount = JsonConverters.toDouble(json['DiscountAmount']);
return this;
}
Map<String, dynamic> toJson() => {
'Category': Category,
'SubCategory': SubCategory,
'DiscountType': DiscountType,
'DiscountAmount': DiscountAmount
};
getTypeName() => "CategoryLevelDiscount";
TypeContext? context = _ctx;
}
// @DataContract
class CustomerDiscountInfo implements IConvertible
{
// @DataMember
double? AccessoryInventory;
// @DataMember
double? SerializedInventory;
// @DataMember
double? ShortTermRental;
// @DataMember
double? NonInventory;
// @DataMember
double? Labor;
// @DataMember
double? MediaInventory;
// @DataMember
List<CategoryLevelDiscount>? CategoryLevelDiscounts;
// @DataMember
String? PriceLevel;
CustomerDiscountInfo({this.AccessoryInventory,this.SerializedInventory,this.ShortTermRental,this.NonInventory,this.Labor,this.MediaInventory,this.CategoryLevelDiscounts,this.PriceLevel});
CustomerDiscountInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
AccessoryInventory = JsonConverters.toDouble(json['AccessoryInventory']);
SerializedInventory = JsonConverters.toDouble(json['SerializedInventory']);
ShortTermRental = JsonConverters.toDouble(json['ShortTermRental']);
NonInventory = JsonConverters.toDouble(json['NonInventory']);
Labor = JsonConverters.toDouble(json['Labor']);
MediaInventory = JsonConverters.toDouble(json['MediaInventory']);
CategoryLevelDiscounts = JsonConverters.fromJson(json['CategoryLevelDiscounts'],'List<CategoryLevelDiscount>',context!);
PriceLevel = json['PriceLevel'];
return this;
}
Map<String, dynamic> toJson() => {
'AccessoryInventory': AccessoryInventory,
'SerializedInventory': SerializedInventory,
'ShortTermRental': ShortTermRental,
'NonInventory': NonInventory,
'Labor': Labor,
'MediaInventory': MediaInventory,
'CategoryLevelDiscounts': JsonConverters.toJson(CategoryLevelDiscounts,'List<CategoryLevelDiscount>',context!),
'PriceLevel': PriceLevel
};
getTypeName() => "CustomerDiscountInfo";
TypeContext? context = _ctx;
}
// @DataContract
class CustomerMembershipInfo implements IConvertible
{
// @DataMember
String? Description;
// @DataMember
int? TeeLevel;
// @DataMember
int? WebTeeLevel;
// @DataMember
int? StationLevel;
CustomerMembershipInfo({this.Description,this.TeeLevel,this.WebTeeLevel,this.StationLevel});
CustomerMembershipInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Description = json['Description'];
TeeLevel = json['TeeLevel'];
WebTeeLevel = json['WebTeeLevel'];
StationLevel = json['StationLevel'];
return this;
}
Map<String, dynamic> toJson() => {
'Description': Description,
'TeeLevel': TeeLevel,
'WebTeeLevel': WebTeeLevel,
'StationLevel': StationLevel
};
getTypeName() => "CustomerMembershipInfo";
TypeContext? context = _ctx;
}
// @DataContract
class CustomerEmailInfo implements IConvertible
{
// @DataMember
String? Description;
// @DataMember
String? Email;
// @DataMember
String? Method;
// @DataMember
String? Type;
CustomerEmailInfo({this.Description,this.Email,this.Method,this.Type});
CustomerEmailInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Description = json['Description'];
Email = json['Email'];
Method = json['Method'];
Type = json['Type'];
return this;
}
Map<String, dynamic> toJson() => {
'Description': Description,
'Email': Email,
'Method': Method,
'Type': Type
};
getTypeName() => "CustomerEmailInfo";
TypeContext? context = _ctx;
}
// @DataContract
class CustomerInfoResponse extends BaseResponse implements IConvertible
{
// @DataMember
CustomerSearchRecord? Customer;
// @DataMember
CustomerDiscountInfo? DiscountInfo;
// @DataMember
List<CustomerMembershipInfo>? Memberships;
// @DataMember
List<CustomerEmailInfo>? Emails;
CustomerInfoResponse({this.Customer,this.DiscountInfo,this.Memberships,this.Emails});
CustomerInfoResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Customer = JsonConverters.fromJson(json['Customer'],'CustomerSearchRecord',context!);
DiscountInfo = JsonConverters.fromJson(json['DiscountInfo'],'CustomerDiscountInfo',context!);
Memberships = JsonConverters.fromJson(json['Memberships'],'List<CustomerMembershipInfo>',context!);
Emails = JsonConverters.fromJson(json['Emails'],'List<CustomerEmailInfo>',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Customer': JsonConverters.toJson(Customer,'CustomerSearchRecord',context!),
'DiscountInfo': JsonConverters.toJson(DiscountInfo,'CustomerDiscountInfo',context!),
'Memberships': JsonConverters.toJson(Memberships,'List<CustomerMembershipInfo>',context!),
'Emails': JsonConverters.toJson(Emails,'List<CustomerEmailInfo>',context!)
});
getTypeName() => "CustomerInfoResponse";
TypeContext? context = _ctx;
}
/**
* CustomerInfoRequires active-e Customer Service.
*/
// @DataContract
class CustomerInfoRequest extends BaseSecureRequest implements IConvertible
{
// @DataMember
int? Acct;
CustomerInfoRequest({this.Acct});
CustomerInfoRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Acct = json['Acct'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Acct': Acct
});
getTypeName() => "CustomerInfoRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'active_ewebservice.biz', types: <String, TypeInfo> {
'BaseRequest': TypeInfo(TypeOf.Class, create:() => BaseRequest()),
'BaseSecureRequest': TypeInfo(TypeOf.Class, create:() => BaseSecureRequest()),
'BaseResponseResult': TypeInfo(TypeOf.Class, create:() => BaseResponseResult()),
'BaseResponse': TypeInfo(TypeOf.Class, create:() => BaseResponse()),
'BindableObject': TypeInfo(TypeOf.AbstractClass),
'DependantRecord': TypeInfo(TypeOf.Class, create:() => DependantRecord()),
'CustomerDefaultInfo': TypeInfo(TypeOf.Class, create:() => CustomerDefaultInfo()),
'TaxAuthorityInfo': TypeInfo(TypeOf.Class, create:() => TaxAuthorityInfo()),
'LocationInfo': TypeInfo(TypeOf.Class, create:() => LocationInfo()),
'AdditionalDetail': TypeInfo(TypeOf.Class, create:() => AdditionalDetail()),
'CustomerSearchRecord': TypeInfo(TypeOf.Class, create:() => CustomerSearchRecord()),
'List<DependantRecord>': TypeInfo(TypeOf.Class, create:() => <DependantRecord>[]),
'CategoryLevelDiscount': TypeInfo(TypeOf.Class, create:() => CategoryLevelDiscount()),
'CustomerDiscountInfo': TypeInfo(TypeOf.Class, create:() => CustomerDiscountInfo()),
'List<CategoryLevelDiscount>': TypeInfo(TypeOf.Class, create:() => <CategoryLevelDiscount>[]),
'CustomerMembershipInfo': TypeInfo(TypeOf.Class, create:() => CustomerMembershipInfo()),
'CustomerEmailInfo': TypeInfo(TypeOf.Class, create:() => CustomerEmailInfo()),
'CustomerInfoResponse': TypeInfo(TypeOf.Class, create:() => CustomerInfoResponse()),
'List<CustomerMembershipInfo>': TypeInfo(TypeOf.Class, create:() => <CustomerMembershipInfo>[]),
'List<CustomerEmailInfo>': TypeInfo(TypeOf.Class, create:() => <CustomerEmailInfo>[]),
'CustomerInfoRequest': TypeInfo(TypeOf.Class, create:() => CustomerInfoRequest()),
});
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.
GET /api/CustomerInfo HTTP/1.1 Host: active-ewebservice.biz Accept: text/jsonl
HTTP/1.1 200 OK Content-Type: text/jsonl Content-Length: length {"Customer":{"Pk":0,"Acct":0,"Last":"String","Name":"String","Addr1":"String","Addr2":"String","City":"String","St":"String","Zip":"String","Phone":"String","Email":"String","OpenInvoices":false,"RentalActivity":false,"StLoc":"String","Hold":false,"Barcode":"String","Color":0,"DependantInfo":[{"Name":"String","OnlineId":"String","SchoolDistrict":"String","School":"String","Id":0}],"AdditionalDetails":{"Notes":"String","CustomerDefault":{"Id":0,"Desc":"String","ShortDesc":"String"},"TaxAuthority":{"Id":0,"Desc":"String","ShortDesc":"String"},"CanCharge":false,"PopupNotes":"String","DlNumber":"String","Phone2":"String","Phone3":"String","Phone4":"String","Location":{"Id":0,"Desc":"String","ShortDesc":"String","Region":"String","Latitude":0,"Longitude":0,"InStorePickup":"String","Active":false,"CashSaleAcct":0}},"MatchedOn":"String"},"DiscountInfo":{"AccessoryInventory":0,"SerializedInventory":0,"ShortTermRental":0,"NonInventory":0,"Labor":0,"MediaInventory":0,"CategoryLevelDiscounts":[{"Category":0,"SubCategory":0,"DiscountType":"String","DiscountAmount":0}],"PriceLevel":"String"},"Memberships":[{"Description":"String","TeeLevel":0,"WebTeeLevel":0,"StationLevel":0}],"Emails":[{"Description":"String","Email":"String","Method":"String","Type":"String"}],"Status":{"StatusCode":"String","Login":"String","ErrorCode":"String","ErrorDisplayText":"String","ErrorMessage":"String","DomainName":"String","IpAddress":"String"}}