Trendsic Platform Service

<back to all web services

CourierAvailabilityRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/dispatch/courier/profiles/{Id}/availability
import 'package:servicestack/servicestack.dart';

class LevelOffer implements IConvertible
{
    String? Code;
    String? Name;
    bool? Ok;
    String? Why;
    String? Promise;
    double? Surcharge;

    LevelOffer({this.Code,this.Name,this.Ok,this.Why,this.Promise,this.Surcharge});
    LevelOffer.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Code = json['Code'];
        Name = json['Name'];
        Ok = json['Ok'];
        Why = json['Why'];
        Promise = json['Promise'];
        Surcharge = JsonConverters.toDouble(json['Surcharge']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Code': Code,
        'Name': Name,
        'Ok': Ok,
        'Why': Why,
        'Promise': Promise,
        'Surcharge': Surcharge
    };

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

class Window implements IConvertible
{
    String? Id;
    int? DayIx;
    int? StartMin;
    int? EndMin;
    String? Label;
    bool? Asap;
    List<LevelOffer>? Levels = [];

    Window({this.Id,this.DayIx,this.StartMin,this.EndMin,this.Label,this.Asap,this.Levels});
    Window.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        DayIx = json['DayIx'];
        StartMin = json['StartMin'];
        EndMin = json['EndMin'];
        Label = json['Label'];
        Asap = json['Asap'];
        Levels = JsonConverters.fromJson(json['Levels'],'List<LevelOffer>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'DayIx': DayIx,
        'StartMin': StartMin,
        'EndMin': EndMin,
        'Label': Label,
        'Asap': Asap,
        'Levels': JsonConverters.toJson(Levels,'List<LevelOffer>',context!)
    };

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

class Availability implements IConvertible
{
    bool? InArea;
    bool? ZipChecked;
    bool? Closed;
    List<Window>? Windows = [];

    Availability({this.InArea,this.ZipChecked,this.Closed,this.Windows});
    Availability.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        InArea = json['InArea'];
        ZipChecked = json['ZipChecked'];
        Closed = json['Closed'];
        Windows = JsonConverters.fromJson(json['Windows'],'List<Window>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'InArea': InArea,
        'ZipChecked': ZipChecked,
        'Closed': Closed,
        'Windows': JsonConverters.toJson(Windows,'List<Window>',context!)
    };

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

class CourierAvailabilityResponse implements IConvertible
{
    Availability? Availability;
    String? Date;
    ResponseStatus? ResponseStatus;

    CourierAvailabilityResponse({this.Availability,this.Date,this.ResponseStatus});
    CourierAvailabilityResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class CourierAvailabilityRequest implements IConvertible
{
    int? Id;
    String? Date;
    String? Zip;

    CourierAvailabilityRequest({this.Id,this.Date,this.Zip});
    CourierAvailabilityRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Date = json['Date'];
        Zip = json['Zip'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Date': Date,
        'Zip': Zip
    };

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

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'LevelOffer': TypeInfo(TypeOf.Class, create:() => LevelOffer()),
    'Window': TypeInfo(TypeOf.Class, create:() => Window()),
    'List<LevelOffer>': TypeInfo(TypeOf.Class, create:() => <LevelOffer>[]),
    'Availability': TypeInfo(TypeOf.Class, create:() => Availability()),
    'List<Window>': TypeInfo(TypeOf.Class, create:() => <Window>[]),
    'CourierAvailabilityResponse': TypeInfo(TypeOf.Class, create:() => CourierAvailabilityResponse()),
    'CourierAvailabilityRequest': TypeInfo(TypeOf.Class, create:() => CourierAvailabilityRequest()),
});

Dart CourierAvailabilityRequest 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/dispatch/courier/profiles/{Id}/availability HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Availability: 
	{
		InArea: False,
		ZipChecked: False,
		Closed: False,
		Windows: 
		[
			{
				Id: String,
				DayIx: 0,
				StartMin: 0,
				EndMin: 0,
				Label: String,
				Asap: False,
				Levels: 
				[
					{
						Code: String,
						Name: String,
						Ok: False,
						Why: String,
						Promise: String,
						Surcharge: 0
					}
				]
			}
		]
	},
	Date: String,
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}