Trendsic Platform Service

<back to all web services

SchedulerConfigurationSaveRequest

Requires Authentication
Required roles:Administrator, Administrator
The following routes are available for this service:
POST,PUT,OPTIONS/v1/Scheduler/Settings
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

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 SchedulerConfigurationSaveRequest implements IConvertible
{
    SchedulerConfiguration? Settings;

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

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

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

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

class SchedulerConfigurationSaveResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    SchedulerConfiguration? Settings;

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

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

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

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

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    '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>[]),
    'SchedulerConfigurationSaveRequest': TypeInfo(TypeOf.Class, create:() => SchedulerConfigurationSaveRequest()),
    'SchedulerConfigurationSaveResponse': TypeInfo(TypeOf.Class, create:() => SchedulerConfigurationSaveResponse()),
});

Dart SchedulerConfigurationSaveRequest 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.

POST /v1/Scheduler/Settings HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"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"}]}]}}
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"}},"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"}]}]}}