Trendsic Platform Service

<back to all web services

RoutePlanWeekRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/routeplan/week
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class RoutePlanCrew implements IConvertible
{
    int? CrewID;
    String? CrewName;
    String? CrewColor;
    String? HomeZip;
    double? YardLat;
    double? YardLng;
    int? DailyCapacityMin;
    int? WeeklyCapacityMin;
    bool? Specialist;

    RoutePlanCrew({this.CrewID,this.CrewName,this.CrewColor,this.HomeZip,this.YardLat,this.YardLng,this.DailyCapacityMin,this.WeeklyCapacityMin,this.Specialist});
    RoutePlanCrew.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CrewID = json['CrewID'];
        CrewName = json['CrewName'];
        CrewColor = json['CrewColor'];
        HomeZip = json['HomeZip'];
        YardLat = JsonConverters.toDouble(json['YardLat']);
        YardLng = JsonConverters.toDouble(json['YardLng']);
        DailyCapacityMin = json['DailyCapacityMin'];
        WeeklyCapacityMin = json['WeeklyCapacityMin'];
        Specialist = json['Specialist'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CrewID': CrewID,
        'CrewName': CrewName,
        'CrewColor': CrewColor,
        'HomeZip': HomeZip,
        'YardLat': YardLat,
        'YardLng': YardLng,
        'DailyCapacityMin': DailyCapacityMin,
        'WeeklyCapacityMin': WeeklyCapacityMin,
        'Specialist': Specialist
    };

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

class RoutePlanVisit implements IConvertible
{
    int? AgreementID;
    int? AgreementJobID;
    String? Name;
    String? Sub;
    String? ServiceType;
    String? Zip;
    String? Area;
    double? Lat;
    double? Lng;
    int? DurationMin;
    String? DueIso;
    String? DueLabel;
    bool? Overdue;
    int? DefaultCrewID;
    int? RouteCrewID;
    int? RouteSeq;
    String? RouteDateIso;
    int? LateDays;
    bool? AutoPay;
    String? SkipPolicy;
    double? SkipCreditAmount;

    RoutePlanVisit({this.AgreementID,this.AgreementJobID,this.Name,this.Sub,this.ServiceType,this.Zip,this.Area,this.Lat,this.Lng,this.DurationMin,this.DueIso,this.DueLabel,this.Overdue,this.DefaultCrewID,this.RouteCrewID,this.RouteSeq,this.RouteDateIso,this.LateDays,this.AutoPay,this.SkipPolicy,this.SkipCreditAmount});
    RoutePlanVisit.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AgreementID = json['AgreementID'];
        AgreementJobID = json['AgreementJobID'];
        Name = json['Name'];
        Sub = json['Sub'];
        ServiceType = json['ServiceType'];
        Zip = json['Zip'];
        Area = json['Area'];
        Lat = JsonConverters.toDouble(json['Lat']);
        Lng = JsonConverters.toDouble(json['Lng']);
        DurationMin = json['DurationMin'];
        DueIso = json['DueIso'];
        DueLabel = json['DueLabel'];
        Overdue = json['Overdue'];
        DefaultCrewID = json['DefaultCrewID'];
        RouteCrewID = json['RouteCrewID'];
        RouteSeq = json['RouteSeq'];
        RouteDateIso = json['RouteDateIso'];
        LateDays = json['LateDays'];
        AutoPay = json['AutoPay'];
        SkipPolicy = json['SkipPolicy'];
        SkipCreditAmount = JsonConverters.toDouble(json['SkipCreditAmount']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AgreementID': AgreementID,
        'AgreementJobID': AgreementJobID,
        'Name': Name,
        'Sub': Sub,
        'ServiceType': ServiceType,
        'Zip': Zip,
        'Area': Area,
        'Lat': Lat,
        'Lng': Lng,
        'DurationMin': DurationMin,
        'DueIso': DueIso,
        'DueLabel': DueLabel,
        'Overdue': Overdue,
        'DefaultCrewID': DefaultCrewID,
        'RouteCrewID': RouteCrewID,
        'RouteSeq': RouteSeq,
        'RouteDateIso': RouteDateIso,
        'LateDays': LateDays,
        'AutoPay': AutoPay,
        'SkipPolicy': SkipPolicy,
        'SkipCreditAmount': SkipCreditAmount
    };

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

class RoutePlanSkippedVisit implements IConvertible
{
    int? AgreementJobID;
    int? AgreementID;
    String? Name;
    String? DateIso;
    String? Reason;
    double? CreditAmount;

    RoutePlanSkippedVisit({this.AgreementJobID,this.AgreementID,this.Name,this.DateIso,this.Reason,this.CreditAmount});
    RoutePlanSkippedVisit.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AgreementJobID = json['AgreementJobID'];
        AgreementID = json['AgreementID'];
        Name = json['Name'];
        DateIso = json['DateIso'];
        Reason = json['Reason'];
        CreditAmount = JsonConverters.toDouble(json['CreditAmount']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AgreementJobID': AgreementJobID,
        'AgreementID': AgreementID,
        'Name': Name,
        'DateIso': DateIso,
        'Reason': Reason,
        'CreditAmount': CreditAmount
    };

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

class RoutePlanWeekResponse implements IConvertible
{
    String? FromIso;
    String? ToIso;
    List<RoutePlanCrew>? Crews = [];
    List<RoutePlanVisit>? Visits = [];
    List<RoutePlanSkippedVisit>? Skipped = [];
    ResponseStatus? ResponseStatus;

    RoutePlanWeekResponse({this.FromIso,this.ToIso,this.Crews,this.Visits,this.Skipped,this.ResponseStatus});
    RoutePlanWeekResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        FromIso = json['FromIso'];
        ToIso = json['ToIso'];
        Crews = JsonConverters.fromJson(json['Crews'],'List<RoutePlanCrew>',context!);
        Visits = JsonConverters.fromJson(json['Visits'],'List<RoutePlanVisit>',context!);
        Skipped = JsonConverters.fromJson(json['Skipped'],'List<RoutePlanSkippedVisit>',context!);
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'FromIso': FromIso,
        'ToIso': ToIso,
        'Crews': JsonConverters.toJson(Crews,'List<RoutePlanCrew>',context!),
        'Visits': JsonConverters.toJson(Visits,'List<RoutePlanVisit>',context!),
        'Skipped': JsonConverters.toJson(Skipped,'List<RoutePlanSkippedVisit>',context!),
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
    };

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

class RoutePlanWeekRequest implements IConvertible
{
    String? From;

    RoutePlanWeekRequest({this.From});
    RoutePlanWeekRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'From': From
    };

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

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'RoutePlanCrew': TypeInfo(TypeOf.Class, create:() => RoutePlanCrew()),
    'RoutePlanVisit': TypeInfo(TypeOf.Class, create:() => RoutePlanVisit()),
    'RoutePlanSkippedVisit': TypeInfo(TypeOf.Class, create:() => RoutePlanSkippedVisit()),
    'RoutePlanWeekResponse': TypeInfo(TypeOf.Class, create:() => RoutePlanWeekResponse()),
    'List<RoutePlanCrew>': TypeInfo(TypeOf.Class, create:() => <RoutePlanCrew>[]),
    'List<RoutePlanVisit>': TypeInfo(TypeOf.Class, create:() => <RoutePlanVisit>[]),
    'List<RoutePlanSkippedVisit>': TypeInfo(TypeOf.Class, create:() => <RoutePlanSkippedVisit>[]),
    'RoutePlanWeekRequest': TypeInfo(TypeOf.Class, create:() => RoutePlanWeekRequest()),
});

Dart RoutePlanWeekRequest 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/routeplan/week HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	FromIso: String,
	ToIso: String,
	Crews: 
	[
		{
			CrewID: 0,
			CrewName: String,
			CrewColor: String,
			HomeZip: String,
			YardLat: 0,
			YardLng: 0,
			DailyCapacityMin: 0,
			WeeklyCapacityMin: 0,
			Specialist: False
		}
	],
	Visits: 
	[
		{
			AgreementID: 0,
			AgreementJobID: 0,
			Name: String,
			Sub: String,
			ServiceType: String,
			Zip: String,
			Area: String,
			Lat: 0,
			Lng: 0,
			DurationMin: 0,
			DueIso: String,
			DueLabel: String,
			Overdue: False,
			DefaultCrewID: 0,
			RouteCrewID: 0,
			RouteSeq: 0,
			RouteDateIso: String,
			LateDays: 0,
			AutoPay: False,
			SkipPolicy: String,
			SkipCreditAmount: 0
		}
	],
	Skipped: 
	[
		{
			AgreementJobID: 0,
			AgreementID: 0,
			Name: String,
			DateIso: String,
			Reason: String,
			CreditAmount: 0
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}