Trendsic Platform Service

<back to all web services

CoverageSelfAvailPutRequest

Requires Authentication
The following routes are available for this service:
PUT,OPTIONS/v1/coverage/self/availability
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class CoverageSelfAvailWindow implements IConvertible
{
    String? Start;
    String? End;
    bool? Preferred;

    CoverageSelfAvailWindow({this.Start,this.End,this.Preferred});
    CoverageSelfAvailWindow.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Start = json['Start'];
        End = json['End'];
        Preferred = json['Preferred'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Start': Start,
        'End': End,
        'Preferred': Preferred
    };

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

class CoverageSelfAvailDay implements IConvertible
{
    String? Day;
    bool? Open;
    List<CoverageSelfAvailWindow>? Windows = [];

    CoverageSelfAvailDay({this.Day,this.Open,this.Windows});
    CoverageSelfAvailDay.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Day = json['Day'];
        Open = json['Open'];
        Windows = JsonConverters.fromJson(json['Windows'],'List<CoverageSelfAvailWindow>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Day': Day,
        'Open': Open,
        'Windows': JsonConverters.toJson(Windows,'List<CoverageSelfAvailWindow>',context!)
    };

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

class WorkerSchedulingPrefs implements IConvertible
{
    int? ContactID;
    int? PreferredWeeklyHours;
    int? PreferredMonthlyHours;
    int? MinShiftMinutes;
    int? MaxConsecutiveDays;

    WorkerSchedulingPrefs({this.ContactID,this.PreferredWeeklyHours,this.PreferredMonthlyHours,this.MinShiftMinutes,this.MaxConsecutiveDays});
    WorkerSchedulingPrefs.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactID = json['ContactID'];
        PreferredWeeklyHours = json['PreferredWeeklyHours'];
        PreferredMonthlyHours = json['PreferredMonthlyHours'];
        MinShiftMinutes = json['MinShiftMinutes'];
        MaxConsecutiveDays = json['MaxConsecutiveDays'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactID': ContactID,
        'PreferredWeeklyHours': PreferredWeeklyHours,
        'PreferredMonthlyHours': PreferredMonthlyHours,
        'MinShiftMinutes': MinShiftMinutes,
        'MaxConsecutiveDays': MaxConsecutiveDays
    };

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

class CoverageSelfAvailResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    List<CoverageSelfAvailDay>? Days = [];
    WorkerSchedulingPrefs? Prefs;
    String? RulesSummary;
    int? TimeOffNoticeDays;

    CoverageSelfAvailResponse({this.ResponseStatus,this.Days,this.Prefs,this.RulesSummary,this.TimeOffNoticeDays});
    CoverageSelfAvailResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        Days = JsonConverters.fromJson(json['Days'],'List<CoverageSelfAvailDay>',context!);
        Prefs = JsonConverters.fromJson(json['Prefs'],'WorkerSchedulingPrefs',context!);
        RulesSummary = json['RulesSummary'];
        TimeOffNoticeDays = json['TimeOffNoticeDays'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'Days': JsonConverters.toJson(Days,'List<CoverageSelfAvailDay>',context!),
        'Prefs': JsonConverters.toJson(Prefs,'WorkerSchedulingPrefs',context!),
        'RulesSummary': RulesSummary,
        'TimeOffNoticeDays': TimeOffNoticeDays
    };

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

class CoverageSelfAvailPutRequest implements IConvertible
{
    List<CoverageSelfAvailDay>? Days = [];
    WorkerSchedulingPrefs? Prefs;

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

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

    Map<String, dynamic> toJson() => {
        'Days': JsonConverters.toJson(Days,'List<CoverageSelfAvailDay>',context!),
        'Prefs': JsonConverters.toJson(Prefs,'WorkerSchedulingPrefs',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'CoverageSelfAvailWindow': TypeInfo(TypeOf.Class, create:() => CoverageSelfAvailWindow()),
    'CoverageSelfAvailDay': TypeInfo(TypeOf.Class, create:() => CoverageSelfAvailDay()),
    'List<CoverageSelfAvailWindow>': TypeInfo(TypeOf.Class, create:() => <CoverageSelfAvailWindow>[]),
    'WorkerSchedulingPrefs': TypeInfo(TypeOf.Class, create:() => WorkerSchedulingPrefs()),
    'CoverageSelfAvailResponse': TypeInfo(TypeOf.Class, create:() => CoverageSelfAvailResponse()),
    'List<CoverageSelfAvailDay>': TypeInfo(TypeOf.Class, create:() => <CoverageSelfAvailDay>[]),
    'CoverageSelfAvailPutRequest': TypeInfo(TypeOf.Class, create:() => CoverageSelfAvailPutRequest()),
});

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

PUT /v1/coverage/self/availability HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Days: 
	[
		{
			Day: String,
			Open: False,
			Windows: 
			[
				{
					Start: String,
					End: String,
					Preferred: False
				}
			]
		}
	],
	Prefs: 
	{
		ContactID: 0,
		PreferredWeeklyHours: 0,
		PreferredMonthlyHours: 0,
		MinShiftMinutes: 0,
		MaxConsecutiveDays: 0
	}
}
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
		}
	},
	Days: 
	[
		{
			Day: String,
			Open: False,
			Windows: 
			[
				{
					Start: String,
					End: String,
					Preferred: False
				}
			]
		}
	],
	Prefs: 
	{
		ContactID: 0,
		PreferredWeeklyHours: 0,
		PreferredMonthlyHours: 0,
		MinShiftMinutes: 0,
		MaxConsecutiveDays: 0
	},
	RulesSummary: String,
	TimeOffNoticeDays: 0
}