| GET,OPTIONS | /v1/dispatch/courier/orders/{Code} |
|---|
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 CourierOrderRequest:
code: Optional[str] = None
Python CourierOrderRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v1/dispatch/courier/orders/{Code} HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
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-01,
WindowEndUtc: 0001-01-01,
WindowText: String,
DueUtc: 0001-01-01,
DueText: String,
PingAfterUtc: 0001-01-01,
PingExpiresUtc: 0001-01-01,
CandidateCode: String,
HeldReason: String,
HeldUtc: 0001-01-01,
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-01,
ArrivedUtc: 0001-01-01,
PickedUpUtc: 0001-01-01,
IntakeUtc: 0001-01-01,
ReadyUtc: 0001-01-01,
OutForDeliveryUtc: 0001-01-01,
DeliveredUtc: 0001-01-01,
MissedUtc: 0001-01-01,
CancelledUtc: 0001-01-01,
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-01,
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-01
}
],
Proof:
[
{
Stage: String,
StepKey: String,
Value: String,
AtUtc: 0001-01-01
}
],
Events:
[
{
Kind: String,
Party: String,
Body: String,
AtUtc: 0001-01-01
}
],
Photos:
[
{
PhotoId: 0,
Kind: String,
FileName: String,
Url: String,
TakenUtc: 0001-01-01
}
],
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-01,
WindowEndUtc: 0001-01-01,
WindowText: String,
DueUtc: 0001-01-01,
DueText: String,
PingAfterUtc: 0001-01-01,
PingExpiresUtc: 0001-01-01,
CandidateCode: String,
HeldReason: String,
HeldUtc: 0001-01-01,
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-01,
ArrivedUtc: 0001-01-01,
PickedUpUtc: 0001-01-01,
IntakeUtc: 0001-01-01,
ReadyUtc: 0001-01-01,
OutForDeliveryUtc: 0001-01-01,
DeliveredUtc: 0001-01-01,
MissedUtc: 0001-01-01,
CancelledUtc: 0001-01-01,
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-01,
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-01
}
],
Proof:
[
{
Stage: String,
StepKey: String,
Value: String,
AtUtc: 0001-01-01
}
],
Events:
[
{
Kind: String,
Party: String,
Body: String,
AtUtc: 0001-01-01
}
],
Photos:
[
{
PhotoId: 0,
Kind: String,
FileName: String,
Url: String,
TakenUtc: 0001-01-01
}
],
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
}
}
}