Trendsic Platform Service

<back to all web services

CourierRunBuildRequest

Requires Authentication
The following routes are available for this service:
POST,OPTIONS/v1/dispatch/courier/runs
import 'package:servicestack/servicestack.dart';

class CourierItemView implements IConvertible
{
    int? CourierItemID;
    int? DispatchOdRequestID;
    int? Seq;
    String? TagCode;
    String? Custody;
    bool? IsOpen;
    bool? IsMissing;
    String? MissingReason;
    bool? IsManual;
    bool? ReTagFlag;
    bool? Scanned;

    CourierItemView({this.CourierItemID,this.DispatchOdRequestID,this.Seq,this.TagCode,this.Custody,this.IsOpen,this.IsMissing,this.MissingReason,this.IsManual,this.ReTagFlag,this.Scanned});
    CourierItemView.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CourierItemID = json['CourierItemID'];
        DispatchOdRequestID = json['DispatchOdRequestID'];
        Seq = json['Seq'];
        TagCode = json['TagCode'];
        Custody = json['Custody'];
        IsOpen = json['IsOpen'];
        IsMissing = json['IsMissing'];
        MissingReason = json['MissingReason'];
        IsManual = json['IsManual'];
        ReTagFlag = json['ReTagFlag'];
        Scanned = json['Scanned'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CourierItemID': CourierItemID,
        'DispatchOdRequestID': DispatchOdRequestID,
        'Seq': Seq,
        'TagCode': TagCode,
        'Custody': Custody,
        'IsOpen': IsOpen,
        'IsMissing': IsMissing,
        'MissingReason': MissingReason,
        'IsManual': IsManual,
        'ReTagFlag': ReTagFlag,
        'Scanned': Scanned
    };

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

class CourierStopView implements IConvertible
{
    int? Sequence;
    String? Status;
    int? DispatchOdRequestID;
    String? Code;
    String? CourierStep;
    String? Address;
    String? Unit;
    String? City;
    String? Zip;
    double? Lat;
    double? Lng;
    String? CustomerName;
    String? CustomerPhone;
    String? Handoff;
    String? GateCode;
    String? Instructions;
    int? Units;
    String? DueText;
    String? Note;
    List<String>? Needs = [];
    List<CourierItemView>? Items = [];

    CourierStopView({this.Sequence,this.Status,this.DispatchOdRequestID,this.Code,this.CourierStep,this.Address,this.Unit,this.City,this.Zip,this.Lat,this.Lng,this.CustomerName,this.CustomerPhone,this.Handoff,this.GateCode,this.Instructions,this.Units,this.DueText,this.Note,this.Needs,this.Items});
    CourierStopView.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Sequence = json['Sequence'];
        Status = json['Status'];
        DispatchOdRequestID = json['DispatchOdRequestID'];
        Code = json['Code'];
        CourierStep = json['CourierStep'];
        Address = json['Address'];
        Unit = json['Unit'];
        City = json['City'];
        Zip = json['Zip'];
        Lat = JsonConverters.toDouble(json['Lat']);
        Lng = JsonConverters.toDouble(json['Lng']);
        CustomerName = json['CustomerName'];
        CustomerPhone = json['CustomerPhone'];
        Handoff = json['Handoff'];
        GateCode = json['GateCode'];
        Instructions = json['Instructions'];
        Units = json['Units'];
        DueText = json['DueText'];
        Note = json['Note'];
        Needs = JsonConverters.fromJson(json['Needs'],'List<String>',context!);
        Items = JsonConverters.fromJson(json['Items'],'List<CourierItemView>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Sequence': Sequence,
        'Status': Status,
        'DispatchOdRequestID': DispatchOdRequestID,
        'Code': Code,
        'CourierStep': CourierStep,
        'Address': Address,
        'Unit': Unit,
        'City': City,
        'Zip': Zip,
        'Lat': Lat,
        'Lng': Lng,
        'CustomerName': CustomerName,
        'CustomerPhone': CustomerPhone,
        'Handoff': Handoff,
        'GateCode': GateCode,
        'Instructions': Instructions,
        'Units': Units,
        'DueText': DueText,
        'Note': Note,
        'Needs': JsonConverters.toJson(Needs,'List<String>',context!),
        'Items': JsonConverters.toJson(Items,'List<CourierItemView>',context!)
    };

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

class CourierRunView implements IConvertible
{
    int? CourierRunID;
    String? Code;
    String? Status;
    int? CourierProfileId;
    String? ProfileName;
    int? CourierFacilityId;
    String? FacilityName;
    String? FacilityAddress;
    int? DriverContactId;
    String? DriverName;
    int? EquipmentID;
    String? VehicleUnit;
    String? UnitOne;
    String? UnitMany;
    int? Units;
    int? StopCount;
    int? StopsDone;
    double? Pay;
    DateTime? BuiltUtc;
    DateTime? StartedUtc;
    DateTime? CompletedUtc;
    int? ToLoad;
    int? ToReturn;
    List<CourierStopView>? Stops = [];

    CourierRunView({this.CourierRunID,this.Code,this.Status,this.CourierProfileId,this.ProfileName,this.CourierFacilityId,this.FacilityName,this.FacilityAddress,this.DriverContactId,this.DriverName,this.EquipmentID,this.VehicleUnit,this.UnitOne,this.UnitMany,this.Units,this.StopCount,this.StopsDone,this.Pay,this.BuiltUtc,this.StartedUtc,this.CompletedUtc,this.ToLoad,this.ToReturn,this.Stops});
    CourierRunView.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CourierRunID = json['CourierRunID'];
        Code = json['Code'];
        Status = json['Status'];
        CourierProfileId = json['CourierProfileId'];
        ProfileName = json['ProfileName'];
        CourierFacilityId = json['CourierFacilityId'];
        FacilityName = json['FacilityName'];
        FacilityAddress = json['FacilityAddress'];
        DriverContactId = json['DriverContactId'];
        DriverName = json['DriverName'];
        EquipmentID = json['EquipmentID'];
        VehicleUnit = json['VehicleUnit'];
        UnitOne = json['UnitOne'];
        UnitMany = json['UnitMany'];
        Units = json['Units'];
        StopCount = json['StopCount'];
        StopsDone = json['StopsDone'];
        Pay = JsonConverters.toDouble(json['Pay']);
        BuiltUtc = JsonConverters.fromJson(json['BuiltUtc'],'DateTime',context!);
        StartedUtc = JsonConverters.fromJson(json['StartedUtc'],'DateTime',context!);
        CompletedUtc = JsonConverters.fromJson(json['CompletedUtc'],'DateTime',context!);
        ToLoad = json['ToLoad'];
        ToReturn = json['ToReturn'];
        Stops = JsonConverters.fromJson(json['Stops'],'List<CourierStopView>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CourierRunID': CourierRunID,
        'Code': Code,
        'Status': Status,
        'CourierProfileId': CourierProfileId,
        'ProfileName': ProfileName,
        'CourierFacilityId': CourierFacilityId,
        'FacilityName': FacilityName,
        'FacilityAddress': FacilityAddress,
        'DriverContactId': DriverContactId,
        'DriverName': DriverName,
        'EquipmentID': EquipmentID,
        'VehicleUnit': VehicleUnit,
        'UnitOne': UnitOne,
        'UnitMany': UnitMany,
        'Units': Units,
        'StopCount': StopCount,
        'StopsDone': StopsDone,
        'Pay': Pay,
        'BuiltUtc': JsonConverters.toJson(BuiltUtc,'DateTime',context!),
        'StartedUtc': JsonConverters.toJson(StartedUtc,'DateTime',context!),
        'CompletedUtc': JsonConverters.toJson(CompletedUtc,'DateTime',context!),
        'ToLoad': ToLoad,
        'ToReturn': ToReturn,
        'Stops': JsonConverters.toJson(Stops,'List<CourierStopView>',context!)
    };

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

class CourierRunResponse implements IConvertible
{
    List<CourierRunView>? Runs = [];
    CourierRunView? Run;
    String? Message;
    ResponseStatus? ResponseStatus;

    CourierRunResponse({this.Runs,this.Run,this.Message,this.ResponseStatus});
    CourierRunResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Runs = JsonConverters.fromJson(json['Runs'],'List<CourierRunView>',context!);
        Run = JsonConverters.fromJson(json['Run'],'CourierRunView',context!);
        Message = json['Message'];
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Runs': JsonConverters.toJson(Runs,'List<CourierRunView>',context!),
        'Run': JsonConverters.toJson(Run,'CourierRunView',context!),
        'Message': Message,
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

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

class CourierRunBuildRequest implements IConvertible
{
    int? ProfileId;
    String? FacilityCode;
    List<String>? Codes = [];
    int? DriverContactId;
    int? EquipmentID;

    CourierRunBuildRequest({this.ProfileId,this.FacilityCode,this.Codes,this.DriverContactId,this.EquipmentID});
    CourierRunBuildRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ProfileId = json['ProfileId'];
        FacilityCode = json['FacilityCode'];
        Codes = JsonConverters.fromJson(json['Codes'],'List<String>',context!);
        DriverContactId = json['DriverContactId'];
        EquipmentID = json['EquipmentID'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ProfileId': ProfileId,
        'FacilityCode': FacilityCode,
        'Codes': JsonConverters.toJson(Codes,'List<String>',context!),
        'DriverContactId': DriverContactId,
        'EquipmentID': EquipmentID
    };

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

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'CourierItemView': TypeInfo(TypeOf.Class, create:() => CourierItemView()),
    'CourierStopView': TypeInfo(TypeOf.Class, create:() => CourierStopView()),
    'List<CourierItemView>': TypeInfo(TypeOf.Class, create:() => <CourierItemView>[]),
    'CourierRunView': TypeInfo(TypeOf.Class, create:() => CourierRunView()),
    'List<CourierStopView>': TypeInfo(TypeOf.Class, create:() => <CourierStopView>[]),
    'CourierRunResponse': TypeInfo(TypeOf.Class, create:() => CourierRunResponse()),
    'List<CourierRunView>': TypeInfo(TypeOf.Class, create:() => <CourierRunView>[]),
    'CourierRunBuildRequest': TypeInfo(TypeOf.Class, create:() => CourierRunBuildRequest()),
});

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

POST /v1/dispatch/courier/runs HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"ProfileId":0,"FacilityCode":"String","Codes":["String"],"DriverContactId":0,"EquipmentID":0}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Runs":[{"CourierRunID":0,"Code":"String","Status":"String","CourierProfileId":0,"ProfileName":"String","CourierFacilityId":0,"FacilityName":"String","FacilityAddress":"String","DriverContactId":0,"DriverName":"String","EquipmentID":0,"VehicleUnit":"String","UnitOne":"String","UnitMany":"String","Units":0,"StopCount":0,"StopsDone":0,"Pay":0,"BuiltUtc":"0001-01-01T00:00:00.0000000","StartedUtc":"0001-01-01T00:00:00.0000000","CompletedUtc":"0001-01-01T00:00:00.0000000","ToLoad":0,"ToReturn":0,"Stops":[{"Sequence":0,"Status":"String","DispatchOdRequestID":0,"Code":"String","CourierStep":"String","Address":"String","Unit":"String","City":"String","Zip":"String","Lat":0,"Lng":0,"CustomerName":"String","CustomerPhone":"String","Handoff":"String","GateCode":"String","Instructions":"String","Units":0,"DueText":"String","Note":"String","Needs":["String"],"Items":[{"CourierItemID":0,"DispatchOdRequestID":0,"Seq":0,"TagCode":"String","Custody":"String","IsOpen":false,"IsMissing":false,"MissingReason":"String","IsManual":false,"ReTagFlag":false,"Scanned":false}]}]}],"Run":{"CourierRunID":0,"Code":"String","Status":"String","CourierProfileId":0,"ProfileName":"String","CourierFacilityId":0,"FacilityName":"String","FacilityAddress":"String","DriverContactId":0,"DriverName":"String","EquipmentID":0,"VehicleUnit":"String","UnitOne":"String","UnitMany":"String","Units":0,"StopCount":0,"StopsDone":0,"Pay":0,"BuiltUtc":"0001-01-01T00:00:00.0000000","StartedUtc":"0001-01-01T00:00:00.0000000","CompletedUtc":"0001-01-01T00:00:00.0000000","ToLoad":0,"ToReturn":0,"Stops":[{"Sequence":0,"Status":"String","DispatchOdRequestID":0,"Code":"String","CourierStep":"String","Address":"String","Unit":"String","City":"String","Zip":"String","Lat":0,"Lng":0,"CustomerName":"String","CustomerPhone":"String","Handoff":"String","GateCode":"String","Instructions":"String","Units":0,"DueText":"String","Note":"String","Needs":["String"],"Items":[{"CourierItemID":0,"DispatchOdRequestID":0,"Seq":0,"TagCode":"String","Custody":"String","IsOpen":false,"IsMissing":false,"MissingReason":"String","IsManual":false,"ReTagFlag":false,"Scanned":false}]}]},"Message":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}