/* Options: Date: 2025-12-06 05:19:19 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: SchedulerRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class LineImage implements IConvertible { String? ImageId; String? FileName; String? ImageTitle; DateTime? UploadDate; LineImage({this.ImageId,this.FileName,this.ImageTitle,this.UploadDate}); LineImage.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ImageId = json['ImageId']; FileName = json['FileName']; ImageTitle = json['ImageTitle']; UploadDate = JsonConverters.fromJson(json['UploadDate'],'DateTime',context!); return this; } Map toJson() => { 'ImageId': ImageId, 'FileName': FileName, 'ImageTitle': ImageTitle, 'UploadDate': JsonConverters.toJson(UploadDate,'DateTime',context!) }; getTypeName() => "LineImage"; TypeContext? context = _ctx; } class Line implements IConvertible { String? Id; String? LocationId; String? LocationName; String? Name; String? Description; int? ServiceDurationMinutes; int? WaitTime; double? Cost; int? UpperThreshold; int? LowerThreshold; bool? Active; DateTime? EntDate; DateTime? ModDate; bool? SendQuestionnaire; bool? RequireUpload; String? UploadMessage; List? LineImages = []; Line({this.Id,this.LocationId,this.LocationName,this.Name,this.Description,this.ServiceDurationMinutes,this.WaitTime,this.Cost,this.UpperThreshold,this.LowerThreshold,this.Active,this.EntDate,this.ModDate,this.SendQuestionnaire,this.RequireUpload,this.UploadMessage,this.LineImages}); Line.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; LocationId = json['LocationId']; LocationName = json['LocationName']; Name = json['Name']; Description = json['Description']; ServiceDurationMinutes = json['ServiceDurationMinutes']; WaitTime = json['WaitTime']; Cost = JsonConverters.toDouble(json['Cost']); UpperThreshold = json['UpperThreshold']; LowerThreshold = json['LowerThreshold']; Active = json['Active']; EntDate = JsonConverters.fromJson(json['EntDate'],'DateTime',context!); ModDate = JsonConverters.fromJson(json['ModDate'],'DateTime',context!); SendQuestionnaire = json['SendQuestionnaire']; RequireUpload = json['RequireUpload']; UploadMessage = json['UploadMessage']; LineImages = JsonConverters.fromJson(json['LineImages'],'List',context!); return this; } Map toJson() => { 'Id': Id, 'LocationId': LocationId, 'LocationName': LocationName, 'Name': Name, 'Description': Description, 'ServiceDurationMinutes': ServiceDurationMinutes, 'WaitTime': WaitTime, 'Cost': Cost, 'UpperThreshold': UpperThreshold, 'LowerThreshold': LowerThreshold, 'Active': Active, 'EntDate': JsonConverters.toJson(EntDate,'DateTime',context!), 'ModDate': JsonConverters.toJson(ModDate,'DateTime',context!), 'SendQuestionnaire': SendQuestionnaire, 'RequireUpload': RequireUpload, 'UploadMessage': UploadMessage, 'LineImages': JsonConverters.toJson(LineImages,'List',context!) }; getTypeName() => "Line"; TypeContext? context = _ctx; } 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 json) { fromMap(json); } fromMap(Map 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 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? ServiceIds = []; String? LocationId; bool? Unavailable; List? 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 json) { fromMap(json); } fromMap(Map 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',context!); LocationId = json['LocationId']; Unavailable = json['Unavailable']; BookedIds = JsonConverters.fromJson(json['BookedIds'],'List',context!); CalendarId = json['CalendarId']; SchedulerUrl = json['SchedulerUrl']; return this; } Map 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',context!), 'LocationId': LocationId, 'Unavailable': Unavailable, 'BookedIds': JsonConverters.toJson(BookedIds,'List',context!), 'CalendarId': CalendarId, 'SchedulerUrl': SchedulerUrl }; getTypeName() => "SchedulerTimeslot"; TypeContext? context = _ctx; } class SchedulerConfiguration implements IConvertible { int? ConfigId; String? SchedulerUrl; String? SchedulerName; String? DefaultLocation; String? DefaultSummary; String? DefaultDescription; Duration? DayStart; String? DayStartFriendly; Duration? DayEnd; String? DayEndFriendly; int? TimeslotDuration; int? NumberOfSlots; String? LocationId; String? CalendarId; int? AgentId; String? TimeZone; List? AvailableDateTimes = []; List? AvailableServices = []; List? AllServices = []; SchedulerConfiguration({this.ConfigId,this.SchedulerUrl,this.SchedulerName,this.DefaultLocation,this.DefaultSummary,this.DefaultDescription,this.DayStart,this.DayStartFriendly,this.DayEnd,this.DayEndFriendly,this.TimeslotDuration,this.NumberOfSlots,this.LocationId,this.CalendarId,this.AgentId,this.TimeZone,this.AvailableDateTimes,this.AvailableServices,this.AllServices}); SchedulerConfiguration.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ConfigId = json['ConfigId']; SchedulerUrl = json['SchedulerUrl']; SchedulerName = json['SchedulerName']; DefaultLocation = json['DefaultLocation']; DefaultSummary = json['DefaultSummary']; DefaultDescription = json['DefaultDescription']; DayStart = JsonConverters.fromJson(json['DayStart'],'Duration',context!); DayStartFriendly = json['DayStartFriendly']; DayEnd = JsonConverters.fromJson(json['DayEnd'],'Duration',context!); DayEndFriendly = json['DayEndFriendly']; TimeslotDuration = json['TimeslotDuration']; NumberOfSlots = json['NumberOfSlots']; LocationId = json['LocationId']; CalendarId = json['CalendarId']; AgentId = json['AgentId']; TimeZone = json['TimeZone']; AvailableDateTimes = JsonConverters.fromJson(json['AvailableDateTimes'],'List',context!); AvailableServices = JsonConverters.fromJson(json['AvailableServices'],'List',context!); AllServices = JsonConverters.fromJson(json['AllServices'],'List',context!); return this; } Map toJson() => { 'ConfigId': ConfigId, 'SchedulerUrl': SchedulerUrl, 'SchedulerName': SchedulerName, 'DefaultLocation': DefaultLocation, 'DefaultSummary': DefaultSummary, 'DefaultDescription': DefaultDescription, 'DayStart': JsonConverters.toJson(DayStart,'Duration',context!), 'DayStartFriendly': DayStartFriendly, 'DayEnd': JsonConverters.toJson(DayEnd,'Duration',context!), 'DayEndFriendly': DayEndFriendly, 'TimeslotDuration': TimeslotDuration, 'NumberOfSlots': NumberOfSlots, 'LocationId': LocationId, 'CalendarId': CalendarId, 'AgentId': AgentId, 'TimeZone': TimeZone, 'AvailableDateTimes': JsonConverters.toJson(AvailableDateTimes,'List',context!), 'AvailableServices': JsonConverters.toJson(AvailableServices,'List',context!), 'AllServices': JsonConverters.toJson(AllServices,'List',context!) }; getTypeName() => "SchedulerConfiguration"; TypeContext? context = _ctx; } class SchedulerDay implements IConvertible { DateTime? Day; int? MonthNumber; int? DayNumber; String? DayOfWeek; List? Timeslots = []; SchedulerDay({this.Day,this.MonthNumber,this.DayNumber,this.DayOfWeek,this.Timeslots}); SchedulerDay.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Day = JsonConverters.fromJson(json['Day'],'DateTime',context!); MonthNumber = json['MonthNumber']; DayNumber = json['DayNumber']; DayOfWeek = json['DayOfWeek']; Timeslots = JsonConverters.fromJson(json['Timeslots'],'List',context!); return this; } Map toJson() => { 'Day': JsonConverters.toJson(Day,'DateTime',context!), 'MonthNumber': MonthNumber, 'DayNumber': DayNumber, 'DayOfWeek': DayOfWeek, 'Timeslots': JsonConverters.toJson(Timeslots,'List',context!) }; getTypeName() => "SchedulerDay"; TypeContext? context = _ctx; } class SchedulerWeek implements IConvertible { SchedulerConfiguration? Settings; List? Days = []; SchedulerWeek({this.Settings,this.Days}); SchedulerWeek.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Settings = JsonConverters.fromJson(json['Settings'],'SchedulerConfiguration',context!); Days = JsonConverters.fromJson(json['Days'],'List',context!); return this; } Map toJson() => { 'Settings': JsonConverters.toJson(Settings,'SchedulerConfiguration',context!), 'Days': JsonConverters.toJson(Days,'List',context!) }; getTypeName() => "SchedulerWeek"; TypeContext? context = _ctx; } class SchedulerResponse implements IConvertible { ResponseStatus? ResponseStatus; SchedulerWeek? Week; List? Services = []; SchedulerResponse({this.ResponseStatus,this.Week,this.Services}); SchedulerResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Week = JsonConverters.fromJson(json['Week'],'SchedulerWeek',context!); Services = JsonConverters.fromJson(json['Services'],'List',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Week': JsonConverters.toJson(Week,'SchedulerWeek',context!), 'Services': JsonConverters.toJson(Services,'List',context!) }; getTypeName() => "SchedulerResponse"; TypeContext? context = _ctx; } // @Route("/v1/Scheduler/{SchedulerUrl}", "GET,OPTIONS") // @Route("/v1/Scheduler/{SchedulerUrl}/{StartDate}", "GET,OPTIONS") // @Route("/v1/Scheduler/{SchedulerUrl}/{StartDate}/{LocalDate}", "GET,OPTIONS") // @Route("/v1/SchedulerServices/{SchedulerUrl}/{StartDate}/{ServiceIdsList}", "GET,OPTIONS") class SchedulerRequest implements IReturn, IConvertible, IGet { String? SchedulerUrl; DateTime? StartDate; List? Session = []; String? ServiceIdsList; SchedulerRequest({this.SchedulerUrl,this.StartDate,this.Session,this.ServiceIdsList}); SchedulerRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { SchedulerUrl = json['SchedulerUrl']; StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!); Session = JsonConverters.fromJson(json['Session'],'List',context!); ServiceIdsList = json['ServiceIdsList']; return this; } Map toJson() => { 'SchedulerUrl': SchedulerUrl, 'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!), 'Session': JsonConverters.toJson(Session,'List',context!), 'ServiceIdsList': ServiceIdsList }; createResponse() => SchedulerResponse(); getResponseTypeName() => "SchedulerResponse"; getTypeName() => "SchedulerRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'LineImage': TypeInfo(TypeOf.Class, create:() => LineImage()), 'Line': TypeInfo(TypeOf.Class, create:() => Line()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'Contact': TypeInfo(TypeOf.Class, create:() => Contact()), 'SchedulerTimeslot': TypeInfo(TypeOf.Class, create:() => SchedulerTimeslot()), 'SchedulerConfiguration': TypeInfo(TypeOf.Class, create:() => SchedulerConfiguration()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ScheduleConfigDay': TypeInfo(TypeOf.Class, create:() => ScheduleConfigDay()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SchedulerDay': TypeInfo(TypeOf.Class, create:() => SchedulerDay()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SchedulerWeek': TypeInfo(TypeOf.Class, create:() => SchedulerWeek()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SchedulerResponse': TypeInfo(TypeOf.Class, create:() => SchedulerResponse()), 'SchedulerRequest': TypeInfo(TypeOf.Class, create:() => SchedulerRequest()), });