Trendsic Platform Service

<back to all web services

SchedulerRequest

The following routes are available for this service:
GET,OPTIONS/v1/Scheduler/{SchedulerUrl}
GET,OPTIONS/v1/Scheduler/{SchedulerUrl}/{StartDate}
GET,OPTIONS/v1/Scheduler/{SchedulerUrl}/{StartDate}/{LocalDate}
GET,OPTIONS/v1/SchedulerServices/{SchedulerUrl}/{StartDate}/{ServiceIdsList}
"use strict";
export class SchedulerRequest {
    /** @param {{SchedulerUrl?:string,StartDate?:string,Session?:string[],ServiceIdsList?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    SchedulerUrl;
    /** @type {string} */
    StartDate;
    /** @type {string[]} */
    Session = [];
    /** @type {string} */
    ServiceIdsList;
}
export class ScheduleConfigTimeBlock {
    /** @param {{StartTime?:string,DayStartFriendly?:string,EndTime?:string,DayEndFriendly?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    StartTime;
    /** @type {string} */
    DayStartFriendly;
    /** @type {string} */
    EndTime;
    /** @type {string} */
    DayEndFriendly;
}
export class ScheduleConfigDay {
    /** @param {{DayName?:string,DayNumber?:number,DayEnabled?:boolean,TimeBlocks?:ScheduleConfigTimeBlock[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    DayName;
    /** @type {?number} */
    DayNumber;
    /** @type {?boolean} */
    DayEnabled;
    /** @type {ScheduleConfigTimeBlock[]} */
    TimeBlocks = [];
}
export class LineImage {
    /** @param {{ImageId?:string,FileName?:string,ImageTitle?:string,UploadDate?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?string} */
    ImageId;
    /** @type {string} */
    FileName;
    /** @type {string} */
    ImageTitle;
    /** @type {string} */
    UploadDate;
}
export class Line {
    /** @param {{Id?:string,LocationId?:string,LocationName?:string,Name?:string,Description?:string,ServiceDurationMinutes?:number,WaitTime?:number,Cost?:number,UpperThreshold?:number,LowerThreshold?:number,Active?:boolean,EntDate?:string,ModDate?:string,SendQuestionnaire?:boolean,RequireUpload?:boolean,UploadMessage?:string,LineImages?:LineImage[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    Id;
    /** @type {string} */
    LocationId;
    /** @type {string} */
    LocationName;
    /** @type {string} */
    Name;
    /** @type {string} */
    Description;
    /** @type {number} */
    ServiceDurationMinutes;
    /** @type {number} */
    WaitTime;
    /** @type {number} */
    Cost;
    /** @type {?number} */
    UpperThreshold;
    /** @type {?number} */
    LowerThreshold;
    /** @type {boolean} */
    Active;
    /** @type {?string} */
    EntDate;
    /** @type {?string} */
    ModDate;
    /** @type {boolean} */
    SendQuestionnaire;
    /** @type {boolean} */
    RequireUpload;
    /** @type {string} */
    UploadMessage;
    /** @type {LineImage[]} */
    LineImages = [];
}
export class SchedulerConfiguration {
    /** @param {{ConfigId?:number,SchedulerUrl?:string,SchedulerName?:string,DefaultLocation?:string,DefaultSummary?:string,DefaultDescription?:string,DayStart?:string,DayStartFriendly?:string,DayEnd?:string,DayEndFriendly?:string,TimeslotDuration?:number,NumberOfSlots?:number,LocationId?:string,CalendarId?:string,AgentId?:number,TimeZone?:string,AvailableDateTimes?:ScheduleConfigDay[],AvailableServices?:string[],AllServices?:Line[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    ConfigId;
    /** @type {string} */
    SchedulerUrl;
    /** @type {string} */
    SchedulerName;
    /** @type {string} */
    DefaultLocation;
    /** @type {string} */
    DefaultSummary;
    /** @type {string} */
    DefaultDescription;
    /** @type {string} */
    DayStart;
    /** @type {string} */
    DayStartFriendly;
    /** @type {string} */
    DayEnd;
    /** @type {string} */
    DayEndFriendly;
    /** @type {number} */
    TimeslotDuration;
    /** @type {?number} */
    NumberOfSlots;
    /** @type {string} */
    LocationId;
    /** @type {string} */
    CalendarId;
    /** @type {number} */
    AgentId;
    /** @type {string} */
    TimeZone;
    /** @type {ScheduleConfigDay[]} */
    AvailableDateTimes = [];
    /** @type {string[]} */
    AvailableServices = [];
    /** @type {Line[]} */
    AllServices = [];
}
export class Contact {
    /** @param {{ContactId?:number,ContactType?:number,FirstName?:string,LastName?:string,Name?:string,Role?:string,Title?:string,EmailWork?:string,EmailPersonal?:string,District?:string,DistrictID?:number,School?:string,SchoolID?:number,State?:string,StateName?:string,StateID?:number,CountyID?:number,County?:string,Phone?:string,Department?:string,Flow?:string,LastContact?:string,DoNotContact?:boolean,Active?:boolean,AgentId?:number,PhoneAlt?:string,PeraContactId?:number,RoomNumber?:string,SourceTypeId?:number,SourceTypeDesc?:string,SourceNote?:string,ContactStatusId?:number,ContactStatusDesc?:string,SSN?:string,DateOfBirth?:string,Deleted?:boolean,IsShared?:boolean,address_line1?:string,address_city?:string,address_state?:string,address_zip?:string,DeletedBy?:string,DeletedDateTimeUtc?:string,HasNBC?:boolean,HasFactFinderSheet?:boolean,MiddleInitial?:string,Tags?:string,DateCreated?:string,PhoneLabel?:string,AltPhoneLabel?:string,Carriers?:string,ContactImage?:string,CompanyAffiliation?:string,AdditionalInformation?:string,HasGiftCard?:boolean,ContactCategory?:number,WritingAgentId?:number,WritingAgentName?:string,MaritalStatus?:string,TotalDebtAmount?:number,NumberOfDebtAccounts?:number,FactFinderCodeId?:number,BusinessName?:string,DBA?:string,ContactGUID?:string,ProjectEndDate?:string,Rate?:number,JobID?:number,JobName?:string,JobCount?:number,Locked?:boolean,LockedByAgentId?:number,LockedTimestamp?:string,Initials?:string,ContactCategoryName?:string,SMSOptIn?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    ContactId;
    /** @type {number} */
    ContactType;
    /** @type {string} */
    FirstName;
    /** @type {string} */
    LastName;
    /** @type {string} */
    Name;
    /** @type {string} */
    Role;
    /** @type {string} */
    Title;
    /** @type {string} */
    EmailWork;
    /** @type {string} */
    EmailPersonal;
    /** @type {string} */
    District;
    /** @type {number} */
    DistrictID;
    /** @type {string} */
    School;
    /** @type {number} */
    SchoolID;
    /** @type {string} */
    State;
    /** @type {string} */
    StateName;
    /** @type {number} */
    StateID;
    /** @type {number} */
    CountyID;
    /** @type {string} */
    County;
    /** @type {string} */
    Phone;
    /** @type {string} */
    Department;
    /** @type {string} */
    Flow;
    /** @type {string} */
    LastContact;
    /** @type {boolean} */
    DoNotContact;
    /** @type {boolean} */
    Active;
    /** @type {number} */
    AgentId;
    /** @type {string} */
    PhoneAlt;
    /** @type {number} */
    PeraContactId;
    /** @type {string} */
    RoomNumber;
    /** @type {number} */
    SourceTypeId;
    /** @type {string} */
    SourceTypeDesc;
    /** @type {string} */
    SourceNote;
    /** @type {number} */
    ContactStatusId;
    /** @type {string} */
    ContactStatusDesc;
    /** @type {string} */
    SSN;
    /** @type {string} */
    DateOfBirth;
    /** @type {boolean} */
    Deleted;
    /** @type {boolean} */
    IsShared;
    /** @type {string} */
    address_line1;
    /** @type {string} */
    address_city;
    /** @type {string} */
    address_state;
    /** @type {string} */
    address_zip;
    /** @type {string} */
    DeletedBy;
    /** @type {?string} */
    DeletedDateTimeUtc;
    /** @type {boolean} */
    HasNBC;
    /** @type {boolean} */
    HasFactFinderSheet;
    /** @type {string} */
    MiddleInitial;
    /** @type {string} */
    Tags;
    /** @type {string} */
    DateCreated;
    /** @type {string} */
    PhoneLabel;
    /** @type {string} */
    AltPhoneLabel;
    /** @type {string} */
    Carriers;
    /** @type {string} */
    ContactImage;
    /** @type {string} */
    CompanyAffiliation;
    /** @type {string} */
    AdditionalInformation;
    /** @type {boolean} */
    HasGiftCard;
    /** @type {number} */
    ContactCategory;
    /** @type {number} */
    WritingAgentId;
    /** @type {string} */
    WritingAgentName;
    /** @type {string} */
    MaritalStatus;
    /** @type {number} */
    TotalDebtAmount;
    /** @type {number} */
    NumberOfDebtAccounts;
    /** @type {number} */
    FactFinderCodeId;
    /** @type {string} */
    BusinessName;
    /** @type {string} */
    DBA;
    /** @type {string} */
    ContactGUID;
    /** @type {string} */
    ProjectEndDate;
    /** @type {number} */
    Rate;
    /** @type {number} */
    JobID;
    /** @type {string} */
    JobName;
    /** @type {number} */
    JobCount;
    /** @type {boolean} */
    Locked;
    /** @type {number} */
    LockedByAgentId;
    /** @type {string} */
    LockedTimestamp;
    /** @type {string} */
    Initials;
    /** @type {string} */
    ContactCategoryName;
    /** @type {boolean} */
    SMSOptIn;
}
export class SchedulerTimeslot {
    /** @param {{Day?:string,Time?:string,Duration?:number,StartDateTime?:string,EndDateTime?:string,TimeFriendly?:string,Contact?:Contact,ServiceIds?:string[],LocationId?:string,Unavailable?:boolean,BookedIds?:number[],CalendarId?:string,SchedulerUrl?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    Day;
    /** @type {string} */
    Time;
    /** @type {number} */
    Duration;
    /** @type {string} */
    StartDateTime;
    /** @type {string} */
    EndDateTime;
    /** @type {string} */
    TimeFriendly;
    /** @type {Contact} */
    Contact;
    /** @type {string[]} */
    ServiceIds = [];
    /** @type {string} */
    LocationId;
    /** @type {boolean} */
    Unavailable;
    /** @type {number[]} */
    BookedIds = [];
    /** @type {string} */
    CalendarId;
    /** @type {string} */
    SchedulerUrl;
}
export class SchedulerDay {
    /** @param {{Day?:string,MonthNumber?:number,DayNumber?:number,DayOfWeek?:string,Timeslots?:SchedulerTimeslot[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    Day;
    /** @type {number} */
    MonthNumber;
    /** @type {number} */
    DayNumber;
    /** @type {string} */
    DayOfWeek;
    /** @type {SchedulerTimeslot[]} */
    Timeslots = [];
}
export class SchedulerWeek {
    /** @param {{Settings?:SchedulerConfiguration,Days?:SchedulerDay[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {SchedulerConfiguration} */
    Settings;
    /** @type {SchedulerDay[]} */
    Days = [];
}
export class SchedulerResponse {
    /** @param {{ResponseStatus?:ResponseStatus,Week?:SchedulerWeek,Services?:Line[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {ResponseStatus} */
    ResponseStatus;
    /** @type {SchedulerWeek} */
    Week;
    /** @type {Line[]} */
    Services = [];
}

JavaScript SchedulerRequest DTOs

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

HTTP + JSV

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

GET /v1/Scheduler/{SchedulerUrl} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	Week: 
	{
		Settings: 
		{
			ConfigId: 0,
			SchedulerUrl: String,
			SchedulerName: String,
			DefaultLocation: String,
			DefaultSummary: String,
			DefaultDescription: String,
			DayStart: PT0S,
			DayStartFriendly: "00:00",
			DayEnd: PT0S,
			DayEndFriendly: "00:00",
			TimeslotDuration: 0,
			NumberOfSlots: 0,
			LocationId: 00000000000000000000000000000000,
			CalendarId: 00000000000000000000000000000000,
			AgentId: 0,
			TimeZone: String,
			AvailableDateTimes: 
			[
				{
					DayName: String,
					DayNumber: 0,
					DayEnabled: False,
					TimeBlocks: 
					[
						{
							StartTime: PT0S,
							DayStartFriendly: "00:00",
							EndTime: PT0S,
							DayEndFriendly: "00:00"
						}
					]
				}
			],
			AvailableServices: 
			[
				00000000000000000000000000000000
			],
			AllServices: 
			[
				{
					Id: 00000000000000000000000000000000,
					LocationId: 00000000000000000000000000000000,
					LocationName: String,
					Name: String,
					Description: String,
					ServiceDurationMinutes: 0,
					WaitTime: 0,
					Cost: 0,
					UpperThreshold: 0,
					LowerThreshold: 0,
					Active: False,
					EntDate: 0001-01-01,
					ModDate: 0001-01-01,
					SendQuestionnaire: False,
					RequireUpload: False,
					UploadMessage: String,
					LineImages: 
					[
						{
							ImageId: 00000000000000000000000000000000,
							FileName: String,
							ImageTitle: String,
							UploadDate: 0001-01-01
						}
					]
				}
			]
		},
		Days: 
		[
			{
				
			}
		]
	},
	Services: 
	[
		{
			Id: 00000000000000000000000000000000,
			LocationId: 00000000000000000000000000000000,
			LocationName: String,
			Name: String,
			Description: String,
			ServiceDurationMinutes: 0,
			WaitTime: 0,
			Cost: 0,
			UpperThreshold: 0,
			LowerThreshold: 0,
			Active: False,
			EntDate: 0001-01-01,
			ModDate: 0001-01-01,
			SendQuestionnaire: False,
			RequireUpload: False,
			UploadMessage: String,
			LineImages: 
			[
				{
					ImageId: 00000000000000000000000000000000,
					FileName: String,
					ImageTitle: String,
					UploadDate: 0001-01-01
				}
			]
		}
	]
}