/* Options: Date: 2025-12-06 06:18:59 Version: 8.0 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://1fetch.api.client.prod.86degrees.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: RequestQuote.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class ApiServiceRequest implements IServiceRequest, IHasApiKey, IConvertible { /** * The API Key required for authentication */ // @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true) String? ApiKey; ApiServiceRequest({this.ApiKey}); ApiServiceRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ApiKey = json['ApiKey']; return this; } Map toJson() => { 'ApiKey': ApiKey }; getTypeName() => "ApiServiceRequest"; TypeContext? context = _ctx; } abstract class IServiceRequest { } abstract class IHasApiKey { String? ApiKey; } abstract class ILogRequest { } class RequestQuoteWaypoint implements IRequestWaypoint, IConvertible { /** * Number of waypoint for ordering */ // @ApiMember(Description="Number of waypoint for ordering", IsRequired=true) int? WaypointNumber; /** * Waypoint Latitude */ // @ApiMember(Description="Waypoint Latitude", IsRequired=true) double? Latitude; /** * Waypoint Longitude */ // @ApiMember(Description="Waypoint Longitude", IsRequired=true) double? Longitude; /** * Name of contact person at waypoint */ // @ApiMember(Description="Name of contact person at waypoint", IsRequired=true) String? ContactName; /** * Telephone number of contact person at waypoint */ // @ApiMember(Description="Telephone number of contact person at waypoint", IsRequired=true) String? ContactNumber; /** * Instructions for driver to follow at waypoint */ // @ApiMember(Description="Instructions for driver to follow at waypoint", IsRequired=true) String? DeliveryInstructions; /** * Waypoint address */ // @ApiMember(Description="Waypoint address", IsRequired=true) String? Address; RequestQuoteWaypoint({this.WaypointNumber,this.Latitude,this.Longitude,this.ContactName,this.ContactNumber,this.DeliveryInstructions,this.Address}); RequestQuoteWaypoint.fromJson(Map json) { fromMap(json); } fromMap(Map json) { WaypointNumber = json['WaypointNumber']; Latitude = JsonConverters.toDouble(json['Latitude']); Longitude = JsonConverters.toDouble(json['Longitude']); ContactName = json['ContactName']; ContactNumber = json['ContactNumber']; DeliveryInstructions = json['DeliveryInstructions']; Address = json['Address']; return this; } Map toJson() => { 'WaypointNumber': WaypointNumber, 'Latitude': Latitude, 'Longitude': Longitude, 'ContactName': ContactName, 'ContactNumber': ContactNumber, 'DeliveryInstructions': DeliveryInstructions, 'Address': Address }; getTypeName() => "RequestQuoteWaypoint"; TypeContext? context = _ctx; } class ScheduleType { static const ScheduleType NextAvailable = const ScheduleType._(0); static const ScheduleType SpecificTime = const ScheduleType._(1); final int _value; const ScheduleType._(this._value); int get value => _value; static List get values => const [NextAvailable,SpecificTime]; } class LinkedWaypoint implements IConvertible { int? FromWaypointNumber; int? ToWaypointNumber; double? FromLatitude; double? FromLongitude; double? ToLatitude; double? ToLongitude; LinkedWaypoint({this.FromWaypointNumber,this.ToWaypointNumber,this.FromLatitude,this.FromLongitude,this.ToLatitude,this.ToLongitude}); LinkedWaypoint.fromJson(Map json) { fromMap(json); } fromMap(Map json) { FromWaypointNumber = json['FromWaypointNumber']; ToWaypointNumber = json['ToWaypointNumber']; FromLatitude = JsonConverters.toDouble(json['FromLatitude']); FromLongitude = JsonConverters.toDouble(json['FromLongitude']); ToLatitude = JsonConverters.toDouble(json['ToLatitude']); ToLongitude = JsonConverters.toDouble(json['ToLongitude']); return this; } Map toJson() => { 'FromWaypointNumber': FromWaypointNumber, 'ToWaypointNumber': ToWaypointNumber, 'FromLatitude': FromLatitude, 'FromLongitude': FromLongitude, 'ToLatitude': ToLatitude, 'ToLongitude': ToLongitude }; getTypeName() => "LinkedWaypoint"; TypeContext? context = _ctx; } class WaypointQuoteInformation extends LinkedWaypoint implements IConvertible { /** * Distance between waypoints as a number */ // @ApiMember(Description="Distance between waypoints as a number") double? Distance; /** * String formatted distance */ // @ApiMember(Description="String formatted distance") String? DistanceValue; bool? WaypointValid; String? Message; List? ErrorDetails; /** * Caculated price between waypoints excluding vat */ // @ApiMember(Description="Caculated price between waypoints excluding vat") double? Price; /** * Price excluding vat formatted as a string rand value */ // @ApiMember(Description="Price excluding vat formatted as a string rand value") String? PriceValue; /** * The price between waypoints including vat */ // @ApiMember(Description="The price between waypoints including vat") double? PriceWithVAT; /** * The price including vat formatted as a rand value string */ // @ApiMember(Description="The price including vat formatted as a rand value string") String? PriceValueWithVAT; WaypointQuoteInformation({this.Distance,this.DistanceValue,this.WaypointValid,this.Message,this.ErrorDetails,this.Price,this.PriceValue,this.PriceWithVAT,this.PriceValueWithVAT}); WaypointQuoteInformation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Distance = JsonConverters.toDouble(json['Distance']); DistanceValue = json['DistanceValue']; WaypointValid = json['WaypointValid']; Message = json['Message']; ErrorDetails = JsonConverters.fromJson(json['ErrorDetails'],'List',context!); Price = JsonConverters.toDouble(json['Price']); PriceValue = json['PriceValue']; PriceWithVAT = JsonConverters.toDouble(json['PriceWithVAT']); PriceValueWithVAT = json['PriceValueWithVAT']; return this; } Map toJson() => super.toJson()..addAll({ 'Distance': Distance, 'DistanceValue': DistanceValue, 'WaypointValid': WaypointValid, 'Message': Message, 'ErrorDetails': JsonConverters.toJson(ErrorDetails,'List',context!), 'Price': Price, 'PriceValue': PriceValue, 'PriceWithVAT': PriceWithVAT, 'PriceValueWithVAT': PriceValueWithVAT }); getTypeName() => "WaypointQuoteInformation"; TypeContext? context = _ctx; } class WaypointValidationInformation implements IConvertible { int? WaypointNumber; bool? IsValid; List? ErrorMessages; WaypointValidationInformation({this.WaypointNumber,this.IsValid,this.ErrorMessages}); WaypointValidationInformation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { WaypointNumber = json['WaypointNumber']; IsValid = json['IsValid']; ErrorMessages = JsonConverters.fromJson(json['ErrorMessages'],'List',context!); return this; } Map toJson() => { 'WaypointNumber': WaypointNumber, 'IsValid': IsValid, 'ErrorMessages': JsonConverters.toJson(ErrorMessages,'List',context!) }; getTypeName() => "WaypointValidationInformation"; TypeContext? context = _ctx; } abstract class IRequestWaypoint { double? Latitude; double? Longitude; int? WaypointNumber; String? ContactName; String? ContactNumber; String? DeliveryInstructions; String? Address; } class ApiServiceResponse implements IServiceResponse, IConvertible { /** * Information about the response. */ // @ApiMember(Description="Information about the response.", IsRequired=true) String? Description; /** * Heading or summary of the response. */ // @ApiMember(Description="Heading or summary of the response.", IsRequired=true) String? Heading; /** * Did the intended operation for this response complete successfully? */ // @ApiMember(DataType="boolean", Description="Did the intended operation for this response complete successfully?", IsRequired=true) bool? WasSuccessful; ApiServiceResponse({this.Description,this.Heading,this.WasSuccessful}); ApiServiceResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Description = json['Description']; Heading = json['Heading']; WasSuccessful = json['WasSuccessful']; return this; } Map toJson() => { 'Description': Description, 'Heading': Heading, 'WasSuccessful': WasSuccessful }; getTypeName() => "ApiServiceResponse"; TypeContext? context = _ctx; } class RequestQuoteResponse extends ApiServiceResponse implements IConvertible { /** * Is there an issue for the waypoints details specified? */ // @ApiMember(Description="Is there an issue for the waypoints details specified?") bool? WaypointIssue; /** * Is the quote created successfully and ready to be placed as an order? */ // @ApiMember(Description="Is the quote created successfully and ready to be placed as an order?") bool? QuoteReady; /** * Is the quote expired? */ // @ApiMember(Description="Is the quote expired?") bool? QuoteExpired; /** * The total distance for the quote */ // @ApiMember(Description="The total distance for the quote") double? TotalDistance; /** * The total distance for the quote, formatted as a string */ // @ApiMember(Description="The total distance for the quote, formatted as a string") String? TotalDistanceValue; /** * The date and time the order is scheduled for in ISO 8601 string format, will be set if IsScheduled is true */ // @ApiMember(Description="The date and time the order is scheduled for in ISO 8601 string format, will be set if IsScheduled is true") String? ScheduledDate; /** * The subtotal of the order before VAT */ // @ApiMember(Description="The subtotal of the order before VAT") String? SubTotal; /** * The total of the order after VAT */ // @ApiMember(Description="The total of the order after VAT") String? FinalPrice; /** * The amount of VAT */ // @ApiMember(Description="The amount of VAT ") String? VATValue; /** * Will contain a message if there might be a problem with a scheduled quote */ // @ApiMember(Description="Will contain a message if there might be a problem with a scheduled quote") String? SchedulingNotice; /** * Will contain a message if there is a problem with a scheduled quote, if the order is scheduled to soon to opening times */ // @ApiMember(Description="Will contain a message if there is a problem with a scheduled quote, if the order is scheduled to soon to opening times") String? SchedulingError; /** * The ID of the generated quote, needed when you want to change this quote later */ // @ApiMember(Description="The ID of the generated quote, needed when you want to change this quote later") String? QuoteId; /** * User friendly waybill number */ // @ApiMember(Description="User friendly waybill number") String? WayBill; /** * The date this order was created */ // @ApiMember(Description="The date this order was created") String? DateCreated; /** * The date this quote was last changed */ // @ApiMember(Description="The date this quote was last changed") String? LastUpdated; /** * List of quote information for pricing etc between each waypoint */ // @ApiMember(Description="List of quote information for pricing etc between each waypoint") List? Waypoints; /** * List with validation information for each waypoint */ // @ApiMember(Description="List with validation information for each waypoint") List? WaypointValidations; RequestQuoteResponse({this.WaypointIssue,this.QuoteReady,this.QuoteExpired,this.TotalDistance,this.TotalDistanceValue,this.ScheduledDate,this.SubTotal,this.FinalPrice,this.VATValue,this.SchedulingNotice,this.SchedulingError,this.QuoteId,this.WayBill,this.DateCreated,this.LastUpdated,this.Waypoints,this.WaypointValidations}); RequestQuoteResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); WaypointIssue = json['WaypointIssue']; QuoteReady = json['QuoteReady']; QuoteExpired = json['QuoteExpired']; TotalDistance = JsonConverters.toDouble(json['TotalDistance']); TotalDistanceValue = json['TotalDistanceValue']; ScheduledDate = json['ScheduledDate']; SubTotal = json['SubTotal']; FinalPrice = json['FinalPrice']; VATValue = json['VATValue']; SchedulingNotice = json['SchedulingNotice']; SchedulingError = json['SchedulingError']; QuoteId = json['QuoteId']; WayBill = json['WayBill']; DateCreated = json['DateCreated']; LastUpdated = json['LastUpdated']; Waypoints = JsonConverters.fromJson(json['Waypoints'],'List',context!); WaypointValidations = JsonConverters.fromJson(json['WaypointValidations'],'List',context!); return this; } Map toJson() => super.toJson()..addAll({ 'WaypointIssue': WaypointIssue, 'QuoteReady': QuoteReady, 'QuoteExpired': QuoteExpired, 'TotalDistance': TotalDistance, 'TotalDistanceValue': TotalDistanceValue, 'ScheduledDate': ScheduledDate, 'SubTotal': SubTotal, 'FinalPrice': FinalPrice, 'VATValue': VATValue, 'SchedulingNotice': SchedulingNotice, 'SchedulingError': SchedulingError, 'QuoteId': QuoteId, 'WayBill': WayBill, 'DateCreated': DateCreated, 'LastUpdated': LastUpdated, 'Waypoints': JsonConverters.toJson(Waypoints,'List',context!), 'WaypointValidations': JsonConverters.toJson(WaypointValidations,'List',context!) }); getTypeName() => "RequestQuoteResponse"; TypeContext? context = _ctx; } // @Route("/quote", "POST") class RequestQuote extends ApiServiceRequest implements IReturn, ILogRequest, IConvertible, IPost { /** * Array of waypoints */ // @ApiMember(Description="Array of waypoints", IsRequired=true) List? Waypoints; /** * Is this a scheduled order? */ // @ApiMember(Description="Is this a scheduled order?", IsRequired=true) bool? IsScheduled; /** * Specify the scheduling type, required if IsScheduled is true */ // @ApiMember(Description="Specify the scheduling type, required if IsScheduled is true") ScheduleType? ScheduleType; /** * Specify the scheduled date for this delivery in ISO 8601 string format, required if IsScheduled is true and ScheduleType is SpecificTime */ // @ApiMember(Description="Specify the scheduled date for this delivery in ISO 8601 string format, required if IsScheduled is true and ScheduleType is SpecificTime") String? ScheduledDate; /** * Specify a quote Id to amend a quote. Required when amending an existing quote. */ // @ApiMember(Description="Specify a quote Id to amend a quote. Required when amending an existing quote.") String? QuoteId; /** * Set this to true to prevent creating the quote */ // @ApiMember(Description="Set this to true to prevent creating the quote", IsRequired=true) bool? Test; RequestQuote({this.Waypoints,this.IsScheduled,this.ScheduleType,this.ScheduledDate,this.QuoteId,this.Test}); RequestQuote.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Waypoints = JsonConverters.fromJson(json['Waypoints'],'List',context!); IsScheduled = json['IsScheduled']; ScheduleType = JsonConverters.fromJson(json['ScheduleType'],'ScheduleType',context!); ScheduledDate = json['ScheduledDate']; QuoteId = json['QuoteId']; Test = json['Test']; return this; } Map toJson() => super.toJson()..addAll({ 'Waypoints': JsonConverters.toJson(Waypoints,'List',context!), 'IsScheduled': IsScheduled, 'ScheduleType': JsonConverters.toJson(ScheduleType,'ScheduleType',context!), 'ScheduledDate': ScheduledDate, 'QuoteId': QuoteId, 'Test': Test }); createResponse() => RequestQuoteResponse(); getResponseTypeName() => "RequestQuoteResponse"; getTypeName() => "RequestQuote"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: '1fetch.api.client.prod.86degrees.com', types: { 'ApiServiceRequest': TypeInfo(TypeOf.Class, create:() => ApiServiceRequest()), 'IServiceRequest': TypeInfo(TypeOf.Interface), 'IHasApiKey': TypeInfo(TypeOf.Interface), 'ILogRequest': TypeInfo(TypeOf.Interface), 'RequestQuoteWaypoint': TypeInfo(TypeOf.Class, create:() => RequestQuoteWaypoint()), 'ScheduleType': TypeInfo(TypeOf.Enum, enumValues:ScheduleType.values), 'LinkedWaypoint': TypeInfo(TypeOf.Class, create:() => LinkedWaypoint()), 'WaypointQuoteInformation': TypeInfo(TypeOf.Class, create:() => WaypointQuoteInformation()), 'WaypointValidationInformation': TypeInfo(TypeOf.Class, create:() => WaypointValidationInformation()), 'IRequestWaypoint': TypeInfo(TypeOf.Interface), 'ApiServiceResponse': TypeInfo(TypeOf.Class, create:() => ApiServiceResponse()), 'RequestQuoteResponse': TypeInfo(TypeOf.Class, create:() => RequestQuoteResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'RequestQuote': TypeInfo(TypeOf.Class, create:() => RequestQuote()), 'List': TypeInfo(TypeOf.Class, create:() => []), });