/* Options: Date: 2026-10-13 01:42:13 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CourierTrackRebookRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class CourierTrackActRequest { String? Token; String? ActToken; CourierTrackActRequest({this.Token,this.ActToken}); CourierTrackActRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Token = json['Token']; ActToken = json['ActToken']; return this; } Map toJson() => { 'Token': Token, 'ActToken': ActToken }; getTypeName() => "CourierTrackActRequest"; TypeContext? context = _ctx; } class DispatchTrackStepView implements IConvertible { String? Name; DateTime? At; bool? Done; bool? Current; DispatchTrackStepView({this.Name,this.At,this.Done,this.Current}); DispatchTrackStepView.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Name = json['Name']; At = JsonConverters.fromJson(json['At'],'DateTime',context!); Done = json['Done']; Current = json['Current']; return this; } Map toJson() => { 'Name': Name, 'At': JsonConverters.toJson(At,'DateTime',context!), 'Done': Done, 'Current': Current }; getTypeName() => "DispatchTrackStepView"; TypeContext? context = _ctx; } class CourierTrackBusiness implements IConvertible { String? Name; String? Phone; CourierTrackBusiness({this.Name,this.Phone}); CourierTrackBusiness.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Name = json['Name']; Phone = json['Phone']; return this; } Map toJson() => { 'Name': Name, 'Phone': Phone }; getTypeName() => "CourierTrackBusiness"; TypeContext? context = _ctx; } class CourierTrackDriver implements IConvertible { String? FirstName; String? Initial; String? Vehicle; String? Plate; int? EtaMin; int? EtaPct; CourierTrackDriver({this.FirstName,this.Initial,this.Vehicle,this.Plate,this.EtaMin,this.EtaPct}); CourierTrackDriver.fromJson(Map json) { fromMap(json); } fromMap(Map json) { FirstName = json['FirstName']; Initial = json['Initial']; Vehicle = json['Vehicle']; Plate = json['Plate']; EtaMin = json['EtaMin']; EtaPct = json['EtaPct']; return this; } Map toJson() => { 'FirstName': FirstName, 'Initial': Initial, 'Vehicle': Vehicle, 'Plate': Plate, 'EtaMin': EtaMin, 'EtaPct': EtaPct }; getTypeName() => "CourierTrackDriver"; TypeContext? context = _ctx; } class CourierTrackProof implements IConvertible { String? Kind; String? PhotoUrl; String? AtText; bool? GpsOk; int? Units; String? DamageNote; String? DeliveredTo; int? WaitedMin; int? Attempts; String? ContactedText; bool? EachTagged; bool? EachScanned; CourierTrackProof({this.Kind,this.PhotoUrl,this.AtText,this.GpsOk,this.Units,this.DamageNote,this.DeliveredTo,this.WaitedMin,this.Attempts,this.ContactedText,this.EachTagged,this.EachScanned}); CourierTrackProof.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Kind = json['Kind']; PhotoUrl = json['PhotoUrl']; AtText = json['AtText']; GpsOk = json['GpsOk']; Units = json['Units']; DamageNote = json['DamageNote']; DeliveredTo = json['DeliveredTo']; WaitedMin = json['WaitedMin']; Attempts = json['Attempts']; ContactedText = json['ContactedText']; EachTagged = json['EachTagged']; EachScanned = json['EachScanned']; return this; } Map toJson() => { 'Kind': Kind, 'PhotoUrl': PhotoUrl, 'AtText': AtText, 'GpsOk': GpsOk, 'Units': Units, 'DamageNote': DamageNote, 'DeliveredTo': DeliveredTo, 'WaitedMin': WaitedMin, 'Attempts': Attempts, 'ContactedText': ContactedText, 'EachTagged': EachTagged, 'EachScanned': EachScanned }; getTypeName() => "CourierTrackProof"; TypeContext? context = _ctx; } class CourierTrackRating implements IConvertible { int? Stars; String? Tags; double? Tip; String? TipStatus; CourierTrackRating({this.Stars,this.Tags,this.Tip,this.TipStatus}); CourierTrackRating.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Stars = json['Stars']; Tags = json['Tags']; Tip = JsonConverters.toDouble(json['Tip']); TipStatus = json['TipStatus']; return this; } Map toJson() => { 'Stars': Stars, 'Tags': Tags, 'Tip': Tip, 'TipStatus': TipStatus }; getTypeName() => "CourierTrackRating"; TypeContext? context = _ctx; } class CourierTrackSlot implements IConvertible { String? Id; String? Day; String? DayEs; String? Win; CourierTrackSlot({this.Id,this.Day,this.DayEs,this.Win}); CourierTrackSlot.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Day = json['Day']; DayEs = json['DayEs']; Win = json['Win']; return this; } Map toJson() => { 'Id': Id, 'Day': Day, 'DayEs': DayEs, 'Win': Win }; getTypeName() => "CourierTrackSlot"; TypeContext? context = _ctx; } class CourierTrackMissed implements IConvertible { String? Code; double? Fee; int? WaitedMin; bool? AutoRebook; String? RebookWindowText; List? Slots = []; CourierTrackMissed({this.Code,this.Fee,this.WaitedMin,this.AutoRebook,this.RebookWindowText,this.Slots}); CourierTrackMissed.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Code = json['Code']; Fee = JsonConverters.toDouble(json['Fee']); WaitedMin = json['WaitedMin']; AutoRebook = json['AutoRebook']; RebookWindowText = json['RebookWindowText']; Slots = JsonConverters.fromJson(json['Slots'],'List',context!); return this; } Map toJson() => { 'Code': Code, 'Fee': Fee, 'WaitedMin': WaitedMin, 'AutoRebook': AutoRebook, 'RebookWindowText': RebookWindowText, 'Slots': JsonConverters.toJson(Slots,'List',context!) }; getTypeName() => "CourierTrackMissed"; TypeContext? context = _ctx; } class CourierTrackCan implements IConvertible { bool? EditInstructions; bool? ChangeUnits; bool? Cancel; bool? RescheduleDelivery; bool? Rebook; bool? Rate; bool? Message; bool? Report; int? MaxUnits; CourierTrackCan({this.EditInstructions,this.ChangeUnits,this.Cancel,this.RescheduleDelivery,this.Rebook,this.Rate,this.Message,this.Report,this.MaxUnits}); CourierTrackCan.fromJson(Map json) { fromMap(json); } fromMap(Map json) { EditInstructions = json['EditInstructions']; ChangeUnits = json['ChangeUnits']; Cancel = json['Cancel']; RescheduleDelivery = json['RescheduleDelivery']; Rebook = json['Rebook']; Rate = json['Rate']; Message = json['Message']; Report = json['Report']; MaxUnits = json['MaxUnits']; return this; } Map toJson() => { 'EditInstructions': EditInstructions, 'ChangeUnits': ChangeUnits, 'Cancel': Cancel, 'RescheduleDelivery': RescheduleDelivery, 'Rebook': Rebook, 'Rate': Rate, 'Message': Message, 'Report': Report, 'MaxUnits': MaxUnits }; getTypeName() => "CourierTrackCan"; TypeContext? context = _ctx; } class CourierTrackMessage implements IConvertible { String? Who; bool? Mine; bool? Office; String? AtText; String? Body; CourierTrackMessage({this.Who,this.Mine,this.Office,this.AtText,this.Body}); CourierTrackMessage.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Who = json['Who']; Mine = json['Mine']; Office = json['Office']; AtText = json['AtText']; Body = json['Body']; return this; } Map toJson() => { 'Who': Who, 'Mine': Mine, 'Office': Office, 'AtText': AtText, 'Body': Body }; getTypeName() => "CourierTrackMessage"; TypeContext? context = _ctx; } class CourierTrackView implements IConvertible { String? State; String? Code; String? RunCode; String? Shape; String? Template; String? CourierStep; String? UnitOne; String? UnitMany; String? UnitOneEs; String? UnitManyEs; String? FacilityNoun; String? FacilityNounEs; int? Units; bool? UnitsCounted; String? Address; String? DropoffAddress; String? DropoffName; String? Instructions; String? GateCode; String? Handoff; String? LevelName; String? ReadyPromise; String? WindowText; bool? IsAsap; Map? Times = {}; int? StopPosition; int? StopCount; String? DeliveryWindowText; CourierTrackDriver? Driver; CourierTrackProof? Proof; String? HandoffCode; CourierTrackRating? Rating; bool? TipAllowed; double? TipsPct; CourierTrackMissed? Missed; double? CancelFee; double? CancelFeeCharged; String? CancelledBy; String? BookUrl; CourierTrackCan? Can; List? DeliverySlots = []; List? Messages = []; bool? MessagesOpen; String? CaseCode; String? CaseStatus; String? CaseReply; int? ThreadHrs; DateTime? ExpiresUtc; bool? LiveEta; bool? Live; DateTime? ServerUtc; CourierTrackView({this.State,this.Code,this.RunCode,this.Shape,this.Template,this.CourierStep,this.UnitOne,this.UnitMany,this.UnitOneEs,this.UnitManyEs,this.FacilityNoun,this.FacilityNounEs,this.Units,this.UnitsCounted,this.Address,this.DropoffAddress,this.DropoffName,this.Instructions,this.GateCode,this.Handoff,this.LevelName,this.ReadyPromise,this.WindowText,this.IsAsap,this.Times,this.StopPosition,this.StopCount,this.DeliveryWindowText,this.Driver,this.Proof,this.HandoffCode,this.Rating,this.TipAllowed,this.TipsPct,this.Missed,this.CancelFee,this.CancelFeeCharged,this.CancelledBy,this.BookUrl,this.Can,this.DeliverySlots,this.Messages,this.MessagesOpen,this.CaseCode,this.CaseStatus,this.CaseReply,this.ThreadHrs,this.ExpiresUtc,this.LiveEta,this.Live,this.ServerUtc}); CourierTrackView.fromJson(Map json) { fromMap(json); } fromMap(Map json) { State = json['State']; Code = json['Code']; RunCode = json['RunCode']; Shape = json['Shape']; Template = json['Template']; CourierStep = json['CourierStep']; UnitOne = json['UnitOne']; UnitMany = json['UnitMany']; UnitOneEs = json['UnitOneEs']; UnitManyEs = json['UnitManyEs']; FacilityNoun = json['FacilityNoun']; FacilityNounEs = json['FacilityNounEs']; Units = json['Units']; UnitsCounted = json['UnitsCounted']; Address = json['Address']; DropoffAddress = json['DropoffAddress']; DropoffName = json['DropoffName']; Instructions = json['Instructions']; GateCode = json['GateCode']; Handoff = json['Handoff']; LevelName = json['LevelName']; ReadyPromise = json['ReadyPromise']; WindowText = json['WindowText']; IsAsap = json['IsAsap']; Times = JsonConverters.toStringMap(json['Times']); StopPosition = json['StopPosition']; StopCount = json['StopCount']; DeliveryWindowText = json['DeliveryWindowText']; Driver = JsonConverters.fromJson(json['Driver'],'CourierTrackDriver',context!); Proof = JsonConverters.fromJson(json['Proof'],'CourierTrackProof',context!); HandoffCode = json['HandoffCode']; Rating = JsonConverters.fromJson(json['Rating'],'CourierTrackRating',context!); TipAllowed = json['TipAllowed']; TipsPct = JsonConverters.toDouble(json['TipsPct']); Missed = JsonConverters.fromJson(json['Missed'],'CourierTrackMissed',context!); CancelFee = JsonConverters.toDouble(json['CancelFee']); CancelFeeCharged = JsonConverters.toDouble(json['CancelFeeCharged']); CancelledBy = json['CancelledBy']; BookUrl = json['BookUrl']; Can = JsonConverters.fromJson(json['Can'],'CourierTrackCan',context!); DeliverySlots = JsonConverters.fromJson(json['DeliverySlots'],'List',context!); Messages = JsonConverters.fromJson(json['Messages'],'List',context!); MessagesOpen = json['MessagesOpen']; CaseCode = json['CaseCode']; CaseStatus = json['CaseStatus']; CaseReply = json['CaseReply']; ThreadHrs = json['ThreadHrs']; ExpiresUtc = JsonConverters.fromJson(json['ExpiresUtc'],'DateTime',context!); LiveEta = json['LiveEta']; Live = json['Live']; ServerUtc = JsonConverters.fromJson(json['ServerUtc'],'DateTime',context!); return this; } Map toJson() => { 'State': State, 'Code': Code, 'RunCode': RunCode, 'Shape': Shape, 'Template': Template, 'CourierStep': CourierStep, 'UnitOne': UnitOne, 'UnitMany': UnitMany, 'UnitOneEs': UnitOneEs, 'UnitManyEs': UnitManyEs, 'FacilityNoun': FacilityNoun, 'FacilityNounEs': FacilityNounEs, 'Units': Units, 'UnitsCounted': UnitsCounted, 'Address': Address, 'DropoffAddress': DropoffAddress, 'DropoffName': DropoffName, 'Instructions': Instructions, 'GateCode': GateCode, 'Handoff': Handoff, 'LevelName': LevelName, 'ReadyPromise': ReadyPromise, 'WindowText': WindowText, 'IsAsap': IsAsap, 'Times': Times, 'StopPosition': StopPosition, 'StopCount': StopCount, 'DeliveryWindowText': DeliveryWindowText, 'Driver': JsonConverters.toJson(Driver,'CourierTrackDriver',context!), 'Proof': JsonConverters.toJson(Proof,'CourierTrackProof',context!), 'HandoffCode': HandoffCode, 'Rating': JsonConverters.toJson(Rating,'CourierTrackRating',context!), 'TipAllowed': TipAllowed, 'TipsPct': TipsPct, 'Missed': JsonConverters.toJson(Missed,'CourierTrackMissed',context!), 'CancelFee': CancelFee, 'CancelFeeCharged': CancelFeeCharged, 'CancelledBy': CancelledBy, 'BookUrl': BookUrl, 'Can': JsonConverters.toJson(Can,'CourierTrackCan',context!), 'DeliverySlots': JsonConverters.toJson(DeliverySlots,'List',context!), 'Messages': JsonConverters.toJson(Messages,'List',context!), 'MessagesOpen': MessagesOpen, 'CaseCode': CaseCode, 'CaseStatus': CaseStatus, 'CaseReply': CaseReply, 'ThreadHrs': ThreadHrs, 'ExpiresUtc': JsonConverters.toJson(ExpiresUtc,'DateTime',context!), 'LiveEta': LiveEta, 'Live': Live, 'ServerUtc': JsonConverters.toJson(ServerUtc,'DateTime',context!) }; getTypeName() => "CourierTrackView"; TypeContext? context = _ctx; } class DispatchTrackResponse implements IConvertible { String? Kind; String? Code; String? What; String? FromLoc; String? ToLoc; int? Bags; double? Fare; String? PayMode; String? CardLast4; bool? Charged; String? Stage; String? Headline; String? Sub; bool? IsClosed; String? Eta; String? DriverName; String? CustomerName; List? Steps = []; bool? Expired; bool? Invalid; CourierTrackBusiness? Business; CourierTrackView? Courier; String? Notice; ResponseStatus? ResponseStatus; DispatchTrackResponse({this.Kind,this.Code,this.What,this.FromLoc,this.ToLoc,this.Bags,this.Fare,this.PayMode,this.CardLast4,this.Charged,this.Stage,this.Headline,this.Sub,this.IsClosed,this.Eta,this.DriverName,this.CustomerName,this.Steps,this.Expired,this.Invalid,this.Business,this.Courier,this.Notice,this.ResponseStatus}); DispatchTrackResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Kind = json['Kind']; Code = json['Code']; What = json['What']; FromLoc = json['FromLoc']; ToLoc = json['ToLoc']; Bags = json['Bags']; Fare = JsonConverters.toDouble(json['Fare']); PayMode = json['PayMode']; CardLast4 = json['CardLast4']; Charged = json['Charged']; Stage = json['Stage']; Headline = json['Headline']; Sub = json['Sub']; IsClosed = json['IsClosed']; Eta = json['Eta']; DriverName = json['DriverName']; CustomerName = json['CustomerName']; Steps = JsonConverters.fromJson(json['Steps'],'List',context!); Expired = json['Expired']; Invalid = json['Invalid']; Business = JsonConverters.fromJson(json['Business'],'CourierTrackBusiness',context!); Courier = JsonConverters.fromJson(json['Courier'],'CourierTrackView',context!); Notice = json['Notice']; ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); return this; } Map toJson() => { 'Kind': Kind, 'Code': Code, 'What': What, 'FromLoc': FromLoc, 'ToLoc': ToLoc, 'Bags': Bags, 'Fare': Fare, 'PayMode': PayMode, 'CardLast4': CardLast4, 'Charged': Charged, 'Stage': Stage, 'Headline': Headline, 'Sub': Sub, 'IsClosed': IsClosed, 'Eta': Eta, 'DriverName': DriverName, 'CustomerName': CustomerName, 'Steps': JsonConverters.toJson(Steps,'List',context!), 'Expired': Expired, 'Invalid': Invalid, 'Business': JsonConverters.toJson(Business,'CourierTrackBusiness',context!), 'Courier': JsonConverters.toJson(Courier,'CourierTrackView',context!), 'Notice': Notice, 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!) }; getTypeName() => "DispatchTrackResponse"; TypeContext? context = _ctx; } // @Route("/v1/dispatch/track/{Token}/rebook", "POST,OPTIONS") class CourierTrackRebookRequest extends CourierTrackActRequest implements IReturn, IConvertible, IPost { String? SlotId; CourierTrackRebookRequest({this.SlotId}); CourierTrackRebookRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); SlotId = json['SlotId']; return this; } Map toJson() => super.toJson()..addAll({ 'SlotId': SlotId }); createResponse() => DispatchTrackResponse(); getResponseTypeName() => "DispatchTrackResponse"; getTypeName() => "CourierTrackRebookRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'CourierTrackActRequest': TypeInfo(TypeOf.AbstractClass), 'DispatchTrackStepView': TypeInfo(TypeOf.Class, create:() => DispatchTrackStepView()), 'CourierTrackBusiness': TypeInfo(TypeOf.Class, create:() => CourierTrackBusiness()), 'CourierTrackDriver': TypeInfo(TypeOf.Class, create:() => CourierTrackDriver()), 'CourierTrackProof': TypeInfo(TypeOf.Class, create:() => CourierTrackProof()), 'CourierTrackRating': TypeInfo(TypeOf.Class, create:() => CourierTrackRating()), 'CourierTrackSlot': TypeInfo(TypeOf.Class, create:() => CourierTrackSlot()), 'CourierTrackMissed': TypeInfo(TypeOf.Class, create:() => CourierTrackMissed()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CourierTrackCan': TypeInfo(TypeOf.Class, create:() => CourierTrackCan()), 'CourierTrackMessage': TypeInfo(TypeOf.Class, create:() => CourierTrackMessage()), 'CourierTrackView': TypeInfo(TypeOf.Class, create:() => CourierTrackView()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'DispatchTrackResponse': TypeInfo(TypeOf.Class, create:() => DispatchTrackResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CourierTrackRebookRequest': TypeInfo(TypeOf.Class, create:() => CourierTrackRebookRequest()), });