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}
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class SchedulerRequest implements IConvertible
{
    String? SchedulerUrl;
    DateTime? StartDate;
    List<String>? Session = [];
    String? ServiceIdsList;

    SchedulerRequest({this.SchedulerUrl,this.StartDate,this.Session,this.ServiceIdsList});
    SchedulerRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SchedulerUrl = json['SchedulerUrl'];
        StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!);
        Session = JsonConverters.fromJson(json['Session'],'List<String>',context!);
        ServiceIdsList = json['ServiceIdsList'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SchedulerUrl': SchedulerUrl,
        'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!),
        'Session': JsonConverters.toJson(Session,'List<String>',context!),
        'ServiceIdsList': ServiceIdsList
    };

    getTypeName() => "SchedulerRequest";
    TypeContext? context = _ctx;
}

class ScheduleConfigTimeBlock implements IConvertible
{
    Duration? StartTime;
    String? DayStartFriendly;
    Duration? EndTime;
    String? DayEndFriendly;

    ScheduleConfigTimeBlock({this.StartTime,this.DayStartFriendly,this.EndTime,this.DayEndFriendly});
    ScheduleConfigTimeBlock.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        StartTime = JsonConverters.fromJson(json['StartTime'],'Duration',context!);
        DayStartFriendly = json['DayStartFriendly'];
        EndTime = JsonConverters.fromJson(json['EndTime'],'Duration',context!);
        DayEndFriendly = json['DayEndFriendly'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'StartTime': JsonConverters.toJson(StartTime,'Duration',context!),
        'DayStartFriendly': DayStartFriendly,
        'EndTime': JsonConverters.toJson(EndTime,'Duration',context!),
        'DayEndFriendly': DayEndFriendly
    };

    getTypeName() => "ScheduleConfigTimeBlock";
    TypeContext? context = _ctx;
}

class ScheduleConfigDay implements IConvertible
{
    String? DayName;
    int? DayNumber;
    bool? DayEnabled;
    List<ScheduleConfigTimeBlock>? TimeBlocks = [];

    ScheduleConfigDay({this.DayName,this.DayNumber,this.DayEnabled,this.TimeBlocks});
    ScheduleConfigDay.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        DayName = json['DayName'];
        DayNumber = json['DayNumber'];
        DayEnabled = json['DayEnabled'];
        TimeBlocks = JsonConverters.fromJson(json['TimeBlocks'],'List<ScheduleConfigTimeBlock>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'DayName': DayName,
        'DayNumber': DayNumber,
        'DayEnabled': DayEnabled,
        'TimeBlocks': JsonConverters.toJson(TimeBlocks,'List<ScheduleConfigTimeBlock>',context!)
    };

    getTypeName() => "ScheduleConfigDay";
    TypeContext? context = _ctx;
}

class LineImage implements IConvertible
{
    String? ImageId;
    String? FileName;
    String? ImageTitle;
    DateTime? UploadDate;

    LineImage({this.ImageId,this.FileName,this.ImageTitle,this.UploadDate});
    LineImage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ImageId = json['ImageId'];
        FileName = json['FileName'];
        ImageTitle = json['ImageTitle'];
        UploadDate = JsonConverters.fromJson(json['UploadDate'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> 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<LineImage>? 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<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> 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<LineImage>',context!);
        return this;
    }

    Map<String, dynamic> 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<LineImage>',context!)
    };

    getTypeName() => "Line";
    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<ScheduleConfigDay>? AvailableDateTimes = [];
    List<String>? AvailableServices = [];
    List<Line>? 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<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> 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<ScheduleConfigDay>',context!);
        AvailableServices = JsonConverters.fromJson(json['AvailableServices'],'List<String>',context!);
        AllServices = JsonConverters.fromJson(json['AllServices'],'List<Line>',context!);
        return this;
    }

    Map<String, dynamic> 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<ScheduleConfigDay>',context!),
        'AvailableServices': JsonConverters.toJson(AvailableServices,'List<String>',context!),
        'AllServices': JsonConverters.toJson(AllServices,'List<Line>',context!)
    };

    getTypeName() => "SchedulerConfiguration";
    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<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 SchedulerDay implements IConvertible
{
    DateTime? Day;
    int? MonthNumber;
    int? DayNumber;
    String? DayOfWeek;
    List<SchedulerTimeslot>? Timeslots = [];

    SchedulerDay({this.Day,this.MonthNumber,this.DayNumber,this.DayOfWeek,this.Timeslots});
    SchedulerDay.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Day = JsonConverters.fromJson(json['Day'],'DateTime',context!);
        MonthNumber = json['MonthNumber'];
        DayNumber = json['DayNumber'];
        DayOfWeek = json['DayOfWeek'];
        Timeslots = JsonConverters.fromJson(json['Timeslots'],'List<SchedulerTimeslot>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Day': JsonConverters.toJson(Day,'DateTime',context!),
        'MonthNumber': MonthNumber,
        'DayNumber': DayNumber,
        'DayOfWeek': DayOfWeek,
        'Timeslots': JsonConverters.toJson(Timeslots,'List<SchedulerTimeslot>',context!)
    };

    getTypeName() => "SchedulerDay";
    TypeContext? context = _ctx;
}

class SchedulerWeek implements IConvertible
{
    SchedulerConfiguration? Settings;
    List<SchedulerDay>? Days = [];

    SchedulerWeek({this.Settings,this.Days});
    SchedulerWeek.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Settings = JsonConverters.fromJson(json['Settings'],'SchedulerConfiguration',context!);
        Days = JsonConverters.fromJson(json['Days'],'List<SchedulerDay>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Settings': JsonConverters.toJson(Settings,'SchedulerConfiguration',context!),
        'Days': JsonConverters.toJson(Days,'List<SchedulerDay>',context!)
    };

    getTypeName() => "SchedulerWeek";
    TypeContext? context = _ctx;
}

class SchedulerResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    SchedulerWeek? Week;
    List<Line>? Services = [];

    SchedulerResponse({this.ResponseStatus,this.Week,this.Services});
    SchedulerResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        Week = JsonConverters.fromJson(json['Week'],'SchedulerWeek',context!);
        Services = JsonConverters.fromJson(json['Services'],'List<Line>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'Week': JsonConverters.toJson(Week,'SchedulerWeek',context!),
        'Services': JsonConverters.toJson(Services,'List<Line>',context!)
    };

    getTypeName() => "SchedulerResponse";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'SchedulerRequest': TypeInfo(TypeOf.Class, create:() => SchedulerRequest()),
    'ScheduleConfigTimeBlock': TypeInfo(TypeOf.Class, create:() => ScheduleConfigTimeBlock()),
    'ScheduleConfigDay': TypeInfo(TypeOf.Class, create:() => ScheduleConfigDay()),
    'List<ScheduleConfigTimeBlock>': TypeInfo(TypeOf.Class, create:() => <ScheduleConfigTimeBlock>[]),
    'LineImage': TypeInfo(TypeOf.Class, create:() => LineImage()),
    'Line': TypeInfo(TypeOf.Class, create:() => Line()),
    'List<LineImage>': TypeInfo(TypeOf.Class, create:() => <LineImage>[]),
    'SchedulerConfiguration': TypeInfo(TypeOf.Class, create:() => SchedulerConfiguration()),
    'List<ScheduleConfigDay>': TypeInfo(TypeOf.Class, create:() => <ScheduleConfigDay>[]),
    'List<Line>': TypeInfo(TypeOf.Class, create:() => <Line>[]),
    'Contact': TypeInfo(TypeOf.Class, create:() => Contact()),
    'SchedulerTimeslot': TypeInfo(TypeOf.Class, create:() => SchedulerTimeslot()),
    'SchedulerDay': TypeInfo(TypeOf.Class, create:() => SchedulerDay()),
    'List<SchedulerTimeslot>': TypeInfo(TypeOf.Class, create:() => <SchedulerTimeslot>[]),
    'SchedulerWeek': TypeInfo(TypeOf.Class, create:() => SchedulerWeek()),
    'List<SchedulerDay>': TypeInfo(TypeOf.Class, create:() => <SchedulerDay>[]),
    'SchedulerResponse': TypeInfo(TypeOf.Class, create:() => SchedulerResponse()),
});

Dart SchedulerRequest DTOs

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

HTTP + OTHER

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/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
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-01T00:00:00.0000000","ModDate":"0001-01-01T00:00:00.0000000","SendQuestionnaire":false,"RequireUpload":false,"UploadMessage":"String","LineImages":[{"ImageId":"00000000000000000000000000000000","FileName":"String","ImageTitle":"String","UploadDate":"0001-01-01T00:00:00.0000000"}]}]},"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-01T00:00:00.0000000","ModDate":"0001-01-01T00:00:00.0000000","SendQuestionnaire":false,"RequireUpload":false,"UploadMessage":"String","LineImages":[{"ImageId":"00000000000000000000000000000000","FileName":"String","ImageTitle":"String","UploadDate":"0001-01-01T00:00:00.0000000"}]}]}