| POST,PUT,OPTIONS | /v1/Scheduler/Book |
|---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class Contact implements IConvertible
{
int? ContactId;
int? ContactType;
String? FirstName;
String? LastName;
String? Name;
String? Role;
String? Title;
String? EmailWork;
String? EmailPersonal;
String? District;
int? DistrictID;
String? School;
int? SchoolID;
String? State;
String? StateName;
int? StateID;
int? CountyID;
String? County;
String? Phone;
String? Department;
String? Flow;
DateTime? LastContact;
bool? DoNotContact;
bool? Active;
int? AgentId;
String? PhoneAlt;
int? PeraContactId;
String? RoomNumber;
int? SourceTypeId;
String? SourceTypeDesc;
String? SourceNote;
int? ContactStatusId;
String? ContactStatusDesc;
String? SSN;
DateTime? DateOfBirth;
bool? Deleted;
bool? IsShared;
String? address_line1;
String? address_city;
String? address_state;
String? address_zip;
String? DeletedBy;
DateTime? DeletedDateTimeUtc;
bool? HasNBC;
bool? HasFactFinderSheet;
String? MiddleInitial;
String? Tags;
DateTime? DateCreated;
String? PhoneLabel;
String? AltPhoneLabel;
String? Carriers;
String? ContactImage;
String? CompanyAffiliation;
String? AdditionalInformation;
bool? HasGiftCard;
int? ContactCategory;
int? WritingAgentId;
String? WritingAgentName;
String? MaritalStatus;
double? TotalDebtAmount;
int? NumberOfDebtAccounts;
int? FactFinderCodeId;
String? BusinessName;
String? DBA;
String? ContactGUID;
DateTime? ProjectEndDate;
int? Rate;
int? JobID;
String? JobName;
int? JobCount;
bool? Locked;
int? LockedByAgentId;
DateTime? LockedTimestamp;
String? Initials;
String? ContactCategoryName;
bool? SMSOptIn;
Contact({this.ContactId,this.ContactType,this.FirstName,this.LastName,this.Name,this.Role,this.Title,this.EmailWork,this.EmailPersonal,this.District,this.DistrictID,this.School,this.SchoolID,this.State,this.StateName,this.StateID,this.CountyID,this.County,this.Phone,this.Department,this.Flow,this.LastContact,this.DoNotContact,this.Active,this.AgentId,this.PhoneAlt,this.PeraContactId,this.RoomNumber,this.SourceTypeId,this.SourceTypeDesc,this.SourceNote,this.ContactStatusId,this.ContactStatusDesc,this.SSN,this.DateOfBirth,this.Deleted,this.IsShared,this.address_line1,this.address_city,this.address_state,this.address_zip,this.DeletedBy,this.DeletedDateTimeUtc,this.HasNBC,this.HasFactFinderSheet,this.MiddleInitial,this.Tags,this.DateCreated,this.PhoneLabel,this.AltPhoneLabel,this.Carriers,this.ContactImage,this.CompanyAffiliation,this.AdditionalInformation,this.HasGiftCard,this.ContactCategory,this.WritingAgentId,this.WritingAgentName,this.MaritalStatus,this.TotalDebtAmount,this.NumberOfDebtAccounts,this.FactFinderCodeId,this.BusinessName,this.DBA,this.ContactGUID,this.ProjectEndDate,this.Rate,this.JobID,this.JobName,this.JobCount,this.Locked,this.LockedByAgentId,this.LockedTimestamp,this.Initials,this.ContactCategoryName,this.SMSOptIn});
Contact.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ContactId = json['ContactId'];
ContactType = json['ContactType'];
FirstName = json['FirstName'];
LastName = json['LastName'];
Name = json['Name'];
Role = json['Role'];
Title = json['Title'];
EmailWork = json['EmailWork'];
EmailPersonal = json['EmailPersonal'];
District = json['District'];
DistrictID = json['DistrictID'];
School = json['School'];
SchoolID = json['SchoolID'];
State = json['State'];
StateName = json['StateName'];
StateID = json['StateID'];
CountyID = json['CountyID'];
County = json['County'];
Phone = json['Phone'];
Department = json['Department'];
Flow = json['Flow'];
LastContact = JsonConverters.fromJson(json['LastContact'],'DateTime',context!);
DoNotContact = json['DoNotContact'];
Active = json['Active'];
AgentId = json['AgentId'];
PhoneAlt = json['PhoneAlt'];
PeraContactId = json['PeraContactId'];
RoomNumber = json['RoomNumber'];
SourceTypeId = json['SourceTypeId'];
SourceTypeDesc = json['SourceTypeDesc'];
SourceNote = json['SourceNote'];
ContactStatusId = json['ContactStatusId'];
ContactStatusDesc = json['ContactStatusDesc'];
SSN = json['SSN'];
DateOfBirth = JsonConverters.fromJson(json['DateOfBirth'],'DateTime',context!);
Deleted = json['Deleted'];
IsShared = json['IsShared'];
address_line1 = json['address_line1'];
address_city = json['address_city'];
address_state = json['address_state'];
address_zip = json['address_zip'];
DeletedBy = json['DeletedBy'];
DeletedDateTimeUtc = JsonConverters.fromJson(json['DeletedDateTimeUtc'],'DateTime',context!);
HasNBC = json['HasNBC'];
HasFactFinderSheet = json['HasFactFinderSheet'];
MiddleInitial = json['MiddleInitial'];
Tags = json['Tags'];
DateCreated = JsonConverters.fromJson(json['DateCreated'],'DateTime',context!);
PhoneLabel = json['PhoneLabel'];
AltPhoneLabel = json['AltPhoneLabel'];
Carriers = json['Carriers'];
ContactImage = json['ContactImage'];
CompanyAffiliation = json['CompanyAffiliation'];
AdditionalInformation = json['AdditionalInformation'];
HasGiftCard = json['HasGiftCard'];
ContactCategory = json['ContactCategory'];
WritingAgentId = json['WritingAgentId'];
WritingAgentName = json['WritingAgentName'];
MaritalStatus = json['MaritalStatus'];
TotalDebtAmount = JsonConverters.toDouble(json['TotalDebtAmount']);
NumberOfDebtAccounts = json['NumberOfDebtAccounts'];
FactFinderCodeId = json['FactFinderCodeId'];
BusinessName = json['BusinessName'];
DBA = json['DBA'];
ContactGUID = json['ContactGUID'];
ProjectEndDate = JsonConverters.fromJson(json['ProjectEndDate'],'DateTime',context!);
Rate = json['Rate'];
JobID = json['JobID'];
JobName = json['JobName'];
JobCount = json['JobCount'];
Locked = json['Locked'];
LockedByAgentId = json['LockedByAgentId'];
LockedTimestamp = JsonConverters.fromJson(json['LockedTimestamp'],'DateTime',context!);
Initials = json['Initials'];
ContactCategoryName = json['ContactCategoryName'];
SMSOptIn = json['SMSOptIn'];
return this;
}
Map<String, dynamic> toJson() => {
'ContactId': ContactId,
'ContactType': ContactType,
'FirstName': FirstName,
'LastName': LastName,
'Name': Name,
'Role': Role,
'Title': Title,
'EmailWork': EmailWork,
'EmailPersonal': EmailPersonal,
'District': District,
'DistrictID': DistrictID,
'School': School,
'SchoolID': SchoolID,
'State': State,
'StateName': StateName,
'StateID': StateID,
'CountyID': CountyID,
'County': County,
'Phone': Phone,
'Department': Department,
'Flow': Flow,
'LastContact': JsonConverters.toJson(LastContact,'DateTime',context!),
'DoNotContact': DoNotContact,
'Active': Active,
'AgentId': AgentId,
'PhoneAlt': PhoneAlt,
'PeraContactId': PeraContactId,
'RoomNumber': RoomNumber,
'SourceTypeId': SourceTypeId,
'SourceTypeDesc': SourceTypeDesc,
'SourceNote': SourceNote,
'ContactStatusId': ContactStatusId,
'ContactStatusDesc': ContactStatusDesc,
'SSN': SSN,
'DateOfBirth': JsonConverters.toJson(DateOfBirth,'DateTime',context!),
'Deleted': Deleted,
'IsShared': IsShared,
'address_line1': address_line1,
'address_city': address_city,
'address_state': address_state,
'address_zip': address_zip,
'DeletedBy': DeletedBy,
'DeletedDateTimeUtc': JsonConverters.toJson(DeletedDateTimeUtc,'DateTime',context!),
'HasNBC': HasNBC,
'HasFactFinderSheet': HasFactFinderSheet,
'MiddleInitial': MiddleInitial,
'Tags': Tags,
'DateCreated': JsonConverters.toJson(DateCreated,'DateTime',context!),
'PhoneLabel': PhoneLabel,
'AltPhoneLabel': AltPhoneLabel,
'Carriers': Carriers,
'ContactImage': ContactImage,
'CompanyAffiliation': CompanyAffiliation,
'AdditionalInformation': AdditionalInformation,
'HasGiftCard': HasGiftCard,
'ContactCategory': ContactCategory,
'WritingAgentId': WritingAgentId,
'WritingAgentName': WritingAgentName,
'MaritalStatus': MaritalStatus,
'TotalDebtAmount': TotalDebtAmount,
'NumberOfDebtAccounts': NumberOfDebtAccounts,
'FactFinderCodeId': FactFinderCodeId,
'BusinessName': BusinessName,
'DBA': DBA,
'ContactGUID': ContactGUID,
'ProjectEndDate': JsonConverters.toJson(ProjectEndDate,'DateTime',context!),
'Rate': Rate,
'JobID': JobID,
'JobName': JobName,
'JobCount': JobCount,
'Locked': Locked,
'LockedByAgentId': LockedByAgentId,
'LockedTimestamp': JsonConverters.toJson(LockedTimestamp,'DateTime',context!),
'Initials': Initials,
'ContactCategoryName': ContactCategoryName,
'SMSOptIn': SMSOptIn
};
getTypeName() => "Contact";
TypeContext? context = _ctx;
}
class SchedulerTimeslot implements IConvertible
{
DateTime? Day;
Duration? Time;
int? Duration;
DateTime? StartDateTime;
DateTime? EndDateTime;
String? TimeFriendly;
Contact? Contact;
List<String>? ServiceIds = [];
String? LocationId;
bool? Unavailable;
List<int>? BookedIds = [];
String? CalendarId;
String? SchedulerUrl;
SchedulerTimeslot({this.Day,this.Time,this.Duration,this.StartDateTime,this.EndDateTime,this.TimeFriendly,this.Contact,this.ServiceIds,this.LocationId,this.Unavailable,this.BookedIds,this.CalendarId,this.SchedulerUrl});
SchedulerTimeslot.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Day = JsonConverters.fromJson(json['Day'],'DateTime',context!);
Time = JsonConverters.fromJson(json['Time'],'Duration',context!);
Duration = json['Duration'];
StartDateTime = JsonConverters.fromJson(json['StartDateTime'],'DateTime',context!);
EndDateTime = JsonConverters.fromJson(json['EndDateTime'],'DateTime',context!);
TimeFriendly = json['TimeFriendly'];
Contact = JsonConverters.fromJson(json['Contact'],'Contact',context!);
ServiceIds = JsonConverters.fromJson(json['ServiceIds'],'List<String>',context!);
LocationId = json['LocationId'];
Unavailable = json['Unavailable'];
BookedIds = JsonConverters.fromJson(json['BookedIds'],'List<int>',context!);
CalendarId = json['CalendarId'];
SchedulerUrl = json['SchedulerUrl'];
return this;
}
Map<String, dynamic> toJson() => {
'Day': JsonConverters.toJson(Day,'DateTime',context!),
'Time': JsonConverters.toJson(Time,'Duration',context!),
'Duration': Duration,
'StartDateTime': JsonConverters.toJson(StartDateTime,'DateTime',context!),
'EndDateTime': JsonConverters.toJson(EndDateTime,'DateTime',context!),
'TimeFriendly': TimeFriendly,
'Contact': JsonConverters.toJson(Contact,'Contact',context!),
'ServiceIds': JsonConverters.toJson(ServiceIds,'List<String>',context!),
'LocationId': LocationId,
'Unavailable': Unavailable,
'BookedIds': JsonConverters.toJson(BookedIds,'List<int>',context!),
'CalendarId': CalendarId,
'SchedulerUrl': SchedulerUrl
};
getTypeName() => "SchedulerTimeslot";
TypeContext? context = _ctx;
}
class SchedulerBookRequest implements IConvertible
{
SchedulerTimeslot? Timeslot;
SchedulerBookRequest({this.Timeslot});
SchedulerBookRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Timeslot = JsonConverters.fromJson(json['Timeslot'],'SchedulerTimeslot',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Timeslot': JsonConverters.toJson(Timeslot,'SchedulerTimeslot',context!)
};
getTypeName() => "SchedulerBookRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'Contact': TypeInfo(TypeOf.Class, create:() => Contact()),
'SchedulerTimeslot': TypeInfo(TypeOf.Class, create:() => SchedulerTimeslot()),
'SchedulerBookRequest': TypeInfo(TypeOf.Class, create:() => SchedulerBookRequest()),
});
Dart SchedulerBookRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/Scheduler/Book HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Timeslot:
{
Day: 0001-01-01,
Time: PT0S,
Duration: 0,
StartDateTime: 0001-01-01,
EndDateTime: 0001-01-01,
TimeFriendly: "12:00 am",
Contact:
{
ContactId: 0,
ContactType: 0,
FirstName: String,
LastName: String,
Name: String,
Role: String,
Title: String,
EmailWork: String,
EmailPersonal: String,
District: String,
DistrictID: 0,
School: String,
SchoolID: 0,
State: String,
StateName: String,
StateID: 0,
CountyID: 0,
County: String,
Phone: String,
Department: String,
Flow: String,
LastContact: 0001-01-01,
DoNotContact: False,
Active: False,
AgentId: 0,
PhoneAlt: String,
PeraContactId: 0,
RoomNumber: String,
SourceTypeId: 0,
SourceTypeDesc: String,
SourceNote: String,
ContactStatusId: 0,
ContactStatusDesc: String,
SSN: String,
DateOfBirth: 0001-01-01,
Deleted: False,
IsShared: False,
address_line1: String,
address_city: String,
address_state: String,
address_zip: String,
DeletedBy: String,
DeletedDateTimeUtc: 0001-01-01,
HasNBC: False,
HasFactFinderSheet: False,
MiddleInitial: String,
Tags: String,
DateCreated: 0001-01-01,
PhoneLabel: String,
AltPhoneLabel: String,
Carriers: String,
ContactImage: String,
CompanyAffiliation: String,
AdditionalInformation: String,
HasGiftCard: False,
ContactCategory: 0,
WritingAgentId: 0,
WritingAgentName: String,
MaritalStatus: String,
TotalDebtAmount: 0,
NumberOfDebtAccounts: 0,
FactFinderCodeId: 0,
BusinessName: String,
DBA: String,
ContactGUID: 00000000000000000000000000000000,
ProjectEndDate: 0001-01-01,
Rate: 0,
JobID: 0,
JobName: String,
JobCount: 0,
Locked: False,
LockedByAgentId: 0,
LockedTimestamp: 0001-01-01,
Initials: String,
ContactCategoryName: String,
SMSOptIn: False
},
ServiceIds:
[
00000000000000000000000000000000
],
LocationId: 00000000000000000000000000000000,
Unavailable: False,
BookedIds:
[
0
],
CalendarId: 00000000000000000000000000000000,
SchedulerUrl: String
}
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length 0