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 .csv suffix or ?format=csv

HTTP + CSV

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/csv
HTTP/1.1 200 OK
Content-Type: text/csv
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"}}}