| POST,OPTIONS | /v1/dispatch/courier/orders/{Code}/reschedule |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOrderRuleView:
ping_secs: int = 0
missed_wait_min: int = 0
missed_fee: Decimal = decimal.Decimal(0)
cancel_fee: Decimal = decimal.Decimal(0)
missed_auto_rebook: bool = False
missed_require_contact: bool = False
missed_require_photo: bool = False
pay_timing: Optional[str] = None
final_price_after_count: bool = False
pay_plan_name: Optional[str] = None
per_pickup: Decimal = decimal.Decimal(0)
per_stop: Decimal = decimal.Decimal(0)
per_missed: Decimal = decimal.Decimal(0)
per_cancel: Decimal = decimal.Decimal(0)
accepted_utc: Optional[datetime.datetime] = None
proof: Dict[str, str] = field(default_factory=dict)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierItemView:
courier_item_i_d: int = 0
dispatch_od_request_i_d: int = 0
seq: int = 0
tag_code: Optional[str] = None
custody: Optional[str] = None
is_open: bool = False
is_missing: bool = False
missing_reason: Optional[str] = None
is_manual: bool = False
re_tag_flag: bool = False
scanned: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierScanView:
tag_code: Optional[str] = None
stage: Optional[str] = None
result: Optional[str] = None
at_utc: datetime.datetime = datetime.datetime(1, 1, 1)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierProofResultView:
stage: Optional[str] = None
step_key: Optional[str] = None
value: Optional[str] = None
at_utc: datetime.datetime = datetime.datetime(1, 1, 1)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierEventView:
kind: Optional[str] = None
party: Optional[str] = None
body: Optional[str] = None
at_utc: datetime.datetime = datetime.datetime(1, 1, 1)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierPhotoView:
photo_id: int = 0
kind: Optional[str] = None
file_name: Optional[str] = None
url: Optional[str] = None
taken_utc: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierPayLineView:
dispatch_load_i_d: int = 0
kind: Optional[str] = None
label: Optional[str] = None
qty: Optional[Decimal] = None
rate: Optional[Decimal] = None
amount: Decimal = decimal.Decimal(0)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOrderView:
dispatch_od_request_i_d: int = 0
code: Optional[str] = None
courier_profile_id: int = 0
profile_name: Optional[str] = None
route_shape: Optional[str] = None
unit_one: Optional[str] = None
unit_many: Optional[str] = None
courier_facility_id: Optional[int] = None
facility_name: Optional[str] = None
service_level_code: Optional[str] = None
level_name: Optional[str] = None
source: Optional[str] = None
address: Optional[str] = None
unit: Optional[str] = None
city: Optional[str] = None
zip: Optional[str] = None
zone: Optional[str] = None
pickup_contact_name: Optional[str] = None
dropoff_address: Optional[str] = None
dropoff_unit: Optional[str] = None
dropoff_city: Optional[str] = None
dropoff_zip: Optional[str] = None
dropoff_contact_name: Optional[str] = None
miles: Optional[Decimal] = None
units: int = 0
units_found: Optional[int] = None
stage: Optional[str] = None
courier_step: Optional[str] = None
step_label: Optional[str] = None
driver_code: Optional[str] = None
driver_name: Optional[str] = None
driver_contact_id: Optional[int] = None
courier_run_id: Optional[int] = None
run_code: Optional[str] = None
stop_sequence: Optional[int] = None
queue_sequence: Optional[int] = None
is_asap: bool = False
window_start_utc: Optional[datetime.datetime] = None
window_end_utc: Optional[datetime.datetime] = None
window_text: Optional[str] = None
due_utc: Optional[datetime.datetime] = None
due_text: Optional[str] = None
ping_after_utc: Optional[datetime.datetime] = None
ping_expires_utc: Optional[datetime.datetime] = None
candidate_code: Optional[str] = None
held_reason: Optional[str] = None
held_utc: Optional[datetime.datetime] = None
customer_name: Optional[str] = None
customer_phone: Optional[str] = None
handoff: Optional[str] = None
gate_code: Optional[str] = None
instructions: Optional[str] = None
damage_note: Optional[str] = None
delivered_to_name: Optional[str] = None
pay_mode: Optional[str] = None
fare: Optional[Decimal] = None
final_price: Optional[Decimal] = None
tip_amount: Optional[Decimal] = None
cancelled_by: Optional[str] = None
cancel_reason: Optional[str] = None
cancel_fee_applied: Optional[Decimal] = None
missed_fee_applied: Optional[Decimal] = None
capture_mode: Optional[str] = None
authorized_amount: Optional[Decimal] = None
captured_amount: Optional[Decimal] = None
refunded_amount: Decimal = decimal.Decimal(0)
charge_error: Optional[str] = None
created_at: Optional[datetime.datetime] = None
arrived_utc: Optional[datetime.datetime] = None
picked_up_utc: Optional[datetime.datetime] = None
intake_utc: Optional[datetime.datetime] = None
ready_utc: Optional[datetime.datetime] = None
out_for_delivery_utc: Optional[datetime.datetime] = None
delivered_utc: Optional[datetime.datetime] = None
missed_utc: Optional[datetime.datetime] = None
cancelled_utc: Optional[datetime.datetime] = None
is_closed: bool = False
rebook_of_id: Optional[int] = None
recurrence_id: Optional[int] = None
pickup_load_id: Optional[int] = None
rule: Optional[CourierOrderRuleView] = None
items: List[CourierItemView] = field(default_factory=list)
scans: List[CourierScanView] = field(default_factory=list)
proof: List[CourierProofResultView] = field(default_factory=list)
events: List[CourierEventView] = field(default_factory=list)
photos: List[CourierPhotoView] = field(default_factory=list)
pay_lines: List[CourierPayLineView] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOrderResponse:
orders: List[CourierOrderView] = field(default_factory=list)
order: Optional[CourierOrderView] = None
message: Optional[str] = None
response_status: Optional[ResponseStatus] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOrderRescheduleRequest:
code: Optional[str] = None
date: Optional[str] = None
window_start: Optional[str] = None
window_end: Optional[str] = None
level_code: Optional[str] = None
Python CourierOrderRescheduleRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/dispatch/courier/orders/{Code}/reschedule HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"Code":"String","Date":"String","WindowStart":"String","WindowEnd":"String","LevelCode":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{"Orders":[{"DispatchOdRequestID":0,"Code":"String","CourierProfileId":0,"ProfileName":"String","RouteShape":"String","UnitOne":"String","UnitMany":"String","CourierFacilityId":0,"FacilityName":"String","ServiceLevelCode":"String","LevelName":"String","Source":"String","Address":"String","Unit":"String","City":"String","Zip":"String","Zone":"String","PickupContactName":"String","DropoffAddress":"String","DropoffUnit":"String","DropoffCity":"String","DropoffZip":"String","DropoffContactName":"String","Miles":0,"Units":0,"UnitsFound":0,"Stage":"String","CourierStep":"String","StepLabel":"String","DriverCode":"String","DriverName":"String","DriverContactId":0,"CourierRunId":0,"RunCode":"String","StopSequence":0,"QueueSequence":0,"IsAsap":false,"WindowStartUtc":"0001-01-01T00:00:00.0000000","WindowEndUtc":"0001-01-01T00:00:00.0000000","WindowText":"String","DueUtc":"0001-01-01T00:00:00.0000000","DueText":"String","PingAfterUtc":"0001-01-01T00:00:00.0000000","PingExpiresUtc":"0001-01-01T00:00:00.0000000","CandidateCode":"String","HeldReason":"String","HeldUtc":"0001-01-01T00:00:00.0000000","CustomerName":"String","CustomerPhone":"String","Handoff":"String","GateCode":"String","Instructions":"String","DamageNote":"String","DeliveredToName":"String","PayMode":"String","Fare":0,"FinalPrice":0,"TipAmount":0,"CancelledBy":"String","CancelReason":"String","CancelFeeApplied":0,"MissedFeeApplied":0,"CaptureMode":"String","AuthorizedAmount":0,"CapturedAmount":0,"RefundedAmount":0,"ChargeError":"String","CreatedAt":"0001-01-01T00:00:00.0000000","ArrivedUtc":"0001-01-01T00:00:00.0000000","PickedUpUtc":"0001-01-01T00:00:00.0000000","IntakeUtc":"0001-01-01T00:00:00.0000000","ReadyUtc":"0001-01-01T00:00:00.0000000","OutForDeliveryUtc":"0001-01-01T00:00:00.0000000","DeliveredUtc":"0001-01-01T00:00:00.0000000","MissedUtc":"0001-01-01T00:00:00.0000000","CancelledUtc":"0001-01-01T00:00:00.0000000","IsClosed":false,"RebookOfId":0,"RecurrenceId":0,"PickupLoadId":0,"Rule":{"PingSecs":0,"MissedWaitMin":0,"MissedFee":0,"CancelFee":0,"MissedAutoRebook":false,"MissedRequireContact":false,"MissedRequirePhoto":false,"PayTiming":"String","FinalPriceAfterCount":false,"PayPlanName":"String","PerPickup":0,"PerStop":0,"PerMissed":0,"PerCancel":0,"AcceptedUtc":"0001-01-01T00:00:00.0000000","Proof":{"String":"String"}},"Items":[{"CourierItemID":0,"DispatchOdRequestID":0,"Seq":0,"TagCode":"String","Custody":"String","IsOpen":false,"IsMissing":false,"MissingReason":"String","IsManual":false,"ReTagFlag":false,"Scanned":false}],"Scans":[{"TagCode":"String","Stage":"String","Result":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Proof":[{"Stage":"String","StepKey":"String","Value":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Events":[{"Kind":"String","Party":"String","Body":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Photos":[{"PhotoId":0,"Kind":"String","FileName":"String","Url":"String","TakenUtc":"0001-01-01T00:00:00.0000000"}],"PayLines":[{"DispatchLoadID":0,"Kind":"String","Label":"String","Qty":0,"Rate":0,"Amount":0}]}],"Order":{"DispatchOdRequestID":0,"Code":"String","CourierProfileId":0,"ProfileName":"String","RouteShape":"String","UnitOne":"String","UnitMany":"String","CourierFacilityId":0,"FacilityName":"String","ServiceLevelCode":"String","LevelName":"String","Source":"String","Address":"String","Unit":"String","City":"String","Zip":"String","Zone":"String","PickupContactName":"String","DropoffAddress":"String","DropoffUnit":"String","DropoffCity":"String","DropoffZip":"String","DropoffContactName":"String","Miles":0,"Units":0,"UnitsFound":0,"Stage":"String","CourierStep":"String","StepLabel":"String","DriverCode":"String","DriverName":"String","DriverContactId":0,"CourierRunId":0,"RunCode":"String","StopSequence":0,"QueueSequence":0,"IsAsap":false,"WindowStartUtc":"0001-01-01T00:00:00.0000000","WindowEndUtc":"0001-01-01T00:00:00.0000000","WindowText":"String","DueUtc":"0001-01-01T00:00:00.0000000","DueText":"String","PingAfterUtc":"0001-01-01T00:00:00.0000000","PingExpiresUtc":"0001-01-01T00:00:00.0000000","CandidateCode":"String","HeldReason":"String","HeldUtc":"0001-01-01T00:00:00.0000000","CustomerName":"String","CustomerPhone":"String","Handoff":"String","GateCode":"String","Instructions":"String","DamageNote":"String","DeliveredToName":"String","PayMode":"String","Fare":0,"FinalPrice":0,"TipAmount":0,"CancelledBy":"String","CancelReason":"String","CancelFeeApplied":0,"MissedFeeApplied":0,"CaptureMode":"String","AuthorizedAmount":0,"CapturedAmount":0,"RefundedAmount":0,"ChargeError":"String","CreatedAt":"0001-01-01T00:00:00.0000000","ArrivedUtc":"0001-01-01T00:00:00.0000000","PickedUpUtc":"0001-01-01T00:00:00.0000000","IntakeUtc":"0001-01-01T00:00:00.0000000","ReadyUtc":"0001-01-01T00:00:00.0000000","OutForDeliveryUtc":"0001-01-01T00:00:00.0000000","DeliveredUtc":"0001-01-01T00:00:00.0000000","MissedUtc":"0001-01-01T00:00:00.0000000","CancelledUtc":"0001-01-01T00:00:00.0000000","IsClosed":false,"RebookOfId":0,"RecurrenceId":0,"PickupLoadId":0,"Rule":{"PingSecs":0,"MissedWaitMin":0,"MissedFee":0,"CancelFee":0,"MissedAutoRebook":false,"MissedRequireContact":false,"MissedRequirePhoto":false,"PayTiming":"String","FinalPriceAfterCount":false,"PayPlanName":"String","PerPickup":0,"PerStop":0,"PerMissed":0,"PerCancel":0,"AcceptedUtc":"0001-01-01T00:00:00.0000000","Proof":{"String":"String"}},"Items":[{"CourierItemID":0,"DispatchOdRequestID":0,"Seq":0,"TagCode":"String","Custody":"String","IsOpen":false,"IsMissing":false,"MissingReason":"String","IsManual":false,"ReTagFlag":false,"Scanned":false}],"Scans":[{"TagCode":"String","Stage":"String","Result":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Proof":[{"Stage":"String","StepKey":"String","Value":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Events":[{"Kind":"String","Party":"String","Body":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Photos":[{"PhotoId":0,"Kind":"String","FileName":"String","Url":"String","TakenUtc":"0001-01-01T00:00:00.0000000"}],"PayLines":[{"DispatchLoadID":0,"Kind":"String","Label":"String","Qty":0,"Rate":0,"Amount":0}]},"Message":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}