Trendsic Platform Service

<back to all web services

CourierBookAvailabilityRequest

The following routes are available for this service:
GET,OPTIONS/v1/book/{Slug}/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 CourierBookDay implements IConvertible
{
    int? DayIx;
    String? Date;
    int? Weekday;
    bool? Closed;
    List<Window>? Windows = [];

    CourierBookDay({this.DayIx,this.Date,this.Weekday,this.Closed,this.Windows});
    CourierBookDay.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class CourierBookAvailabilityResponse implements IConvertible
{
    bool? InArea;
    List<CourierBookDay>? Days = [];
    ResponseStatus? ResponseStatus;

    CourierBookAvailabilityResponse({this.InArea,this.Days,this.ResponseStatus});
    CourierBookAvailabilityResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'InArea': InArea,
        'Days': JsonConverters.toJson(Days,'List<CourierBookDay>',context!),
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

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

class CourierBookAvailabilityRequest implements IConvertible
{
    String? Slug;
    String? Profile;
    String? Zip;

    CourierBookAvailabilityRequest({this.Slug,this.Profile,this.Zip});
    CourierBookAvailabilityRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

    getTypeName() => "CourierBookAvailabilityRequest";
    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>[]),
    'CourierBookDay': TypeInfo(TypeOf.Class, create:() => CourierBookDay()),
    'List<Window>': TypeInfo(TypeOf.Class, create:() => <Window>[]),
    'CourierBookAvailabilityResponse': TypeInfo(TypeOf.Class, create:() => CourierBookAvailabilityResponse()),
    'List<CourierBookDay>': TypeInfo(TypeOf.Class, create:() => <CourierBookDay>[]),
    'CourierBookAvailabilityRequest': TypeInfo(TypeOf.Class, create:() => CourierBookAvailabilityRequest()),
});

Dart CourierBookAvailabilityRequest 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/book/{Slug}/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

{
	InArea: False,
	Days: 
	[
		{
			DayIx: 0,
			Date: String,
			Weekday: 0,
			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
						}
					]
				}
			]
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}