Trendsic Platform Service

<back to all web services

CourierVansRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/dispatch/courier/vans
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 CourierMoveTarget:
    driver_contact_id: int = 0
    name: Optional[str] = None
    ok: bool = False
    why: Optional[str] = None
    leave_by_text: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierVanChip:
    code: Optional[str] = None
    courier_step: Optional[str] = None
    level_code: Optional[str] = None
    level_name: Optional[str] = None
    units: int = 0
    area: Optional[str] = None
    due_utc: Optional[datetime.datetime] = None
    due_text: Optional[str] = None
    movable: bool = False
    no_move_why: Optional[str] = None
    targets: List[CourierMoveTarget] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOfficeVan:
    driver_contact_id: int = 0
    driver_code: Optional[str] = None
    name: Optional[str] = None
    online: bool = False
    zone: Optional[str] = None
    vehicle_unit: Optional[str] = None
    facility_name: Optional[str] = None
    state: Optional[str] = None
    leave_by_utc: Optional[datetime.datetime] = None
    leave_by_text: Optional[str] = None
    slack_min: Optional[int] = None
    in_van: int = 0
    committed: int = 0
    cap: Optional[Decimal] = None
    cap_unit: Optional[str] = None
    unit_many: Optional[str] = None
    critical_code: Optional[str] = None
    drive_min: int = 0
    send_note: Optional[str] = None
    aboard: List[CourierVanChip] = field(default_factory=list)
    queued: List[CourierVanChip] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierHeldView:
    code: Optional[str] = None
    area: Optional[str] = None
    units: int = 0
    unit_many: Optional[str] = None
    miles: Optional[Decimal] = None
    level_code: Optional[str] = None
    level_name: Optional[str] = None
    due_text: Optional[str] = None
    held_reason: Optional[str] = None
    held_min: Optional[int] = None
    why: List[str] = field(default_factory=list)
    best_driver_contact_id: Optional[int] = None
    best_name: Optional[str] = None
    best_leave_by_text: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierVehicleOption:
    courier_profile_id: int = 0
    equipment_i_d: int = 0
    unit_number: Optional[str] = None
    vehicle_type: Optional[str] = None
    capacity_unit: Optional[str] = None
    capacity_limit: Optional[Decimal] = None
    is_refrigerated: bool = False
    status: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierFacilityOption:
    courier_facility_i_d: int = 0
    code: Optional[str] = None
    name: Optional[str] = None
    address: Optional[str] = None
    intake_min: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierProfileOption:
    courier_profile_i_d: int = 0
    name: Optional[str] = None
    route_shape: Optional[str] = None
    enabled: bool = False
    unit_one: Optional[str] = None
    unit_many: Optional[str] = None
    facility_noun: Optional[str] = None
    facilities: List[CourierFacilityOption] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierDriverOption:
    contact_id: int = 0
    code: Optional[str] = None
    name: Optional[str] = None
    online: bool = False
    zone: Optional[str] = None
    vehicle_unit: Optional[str] = None
    equipment_i_d: Optional[int] = None
    sent_to_facility: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierDeskRow:
    code: Optional[str] = None
    courier_profile_id: int = 0
    facility_name: Optional[str] = None
    level_code: Optional[str] = None
    level_name: Optional[str] = None
    due_utc: Optional[datetime.datetime] = None
    due_text: Optional[str] = None
    units: int = 0
    units_found: Optional[int] = None
    unit_many: Optional[str] = None
    fare: Optional[Decimal] = None
    final_price: Optional[Decimal] = None
    tip_amount: Optional[Decimal] = None
    pay_mode: Optional[str] = None
    capture_mode: Optional[str] = None
    customer_name: Optional[str] = None
    area: Optional[str] = None
    intake_utc: Optional[datetime.datetime] = None
    intake_min_ago: Optional[int] = None
    damage_note: Optional[str] = None
    final_price_after_count: bool = False
    needs_price: bool = False
    item_count: int = 0
    missing_count: int = 0
    photo_count: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOfficeView:
    server_utc: datetime.datetime = datetime.datetime(1, 1, 1)
    vans: List[CourierOfficeVan] = field(default_factory=list)
    held: List[CourierHeldView] = field(default_factory=list)
    vehicles: List[CourierVehicleOption] = field(default_factory=list)
    profiles: List[CourierProfileOption] = field(default_factory=list)
    drivers: List[CourierDriverOption] = field(default_factory=list)
    desk: List[CourierDeskRow] = field(default_factory=list)
    go_count: int = 0
    held_count: int = 0
    ready_to_offer: int = 0
    intake_min: Optional[int] = None
    facility_noun: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOfficeResponse:
    office: Optional[CourierOfficeView] = None
    available: bool = False
    response_status: Optional[ResponseStatus] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierVansRequest:
    pass

Python CourierVansRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/dispatch/courier/vans HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<CourierOfficeResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <Available>false</Available>
  <Office>
    <Desk>
      <CourierDeskRow>
        <Area>String</Area>
        <CaptureMode>String</CaptureMode>
        <Code>String</Code>
        <CourierProfileId>0</CourierProfileId>
        <CustomerName>String</CustomerName>
        <DamageNote>String</DamageNote>
        <DueText>String</DueText>
        <DueUtc>0001-01-01T00:00:00</DueUtc>
        <FacilityName>String</FacilityName>
        <Fare>0</Fare>
        <FinalPrice>0</FinalPrice>
        <FinalPriceAfterCount>false</FinalPriceAfterCount>
        <IntakeMinAgo>0</IntakeMinAgo>
        <IntakeUtc>0001-01-01T00:00:00</IntakeUtc>
        <ItemCount>0</ItemCount>
        <LevelCode>String</LevelCode>
        <LevelName>String</LevelName>
        <MissingCount>0</MissingCount>
        <NeedsPrice>false</NeedsPrice>
        <PayMode>String</PayMode>
        <PhotoCount>0</PhotoCount>
        <TipAmount>0</TipAmount>
        <UnitMany>String</UnitMany>
        <Units>0</Units>
        <UnitsFound>0</UnitsFound>
      </CourierDeskRow>
    </Desk>
    <Drivers>
      <CourierDriverOption>
        <Code>String</Code>
        <ContactId>0</ContactId>
        <EquipmentID>0</EquipmentID>
        <Name>String</Name>
        <Online>false</Online>
        <SentToFacility>false</SentToFacility>
        <VehicleUnit>String</VehicleUnit>
        <Zone>String</Zone>
      </CourierDriverOption>
    </Drivers>
    <FacilityNoun>String</FacilityNoun>
    <GoCount>0</GoCount>
    <Held>
      <CourierHeldView>
        <Area>String</Area>
        <BestDriverContactId>0</BestDriverContactId>
        <BestLeaveByText>String</BestLeaveByText>
        <BestName>String</BestName>
        <Code>String</Code>
        <DueText>String</DueText>
        <HeldMin>0</HeldMin>
        <HeldReason>String</HeldReason>
        <LevelCode>String</LevelCode>
        <LevelName>String</LevelName>
        <Miles>0</Miles>
        <UnitMany>String</UnitMany>
        <Units>0</Units>
        <Why xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:string>String</d5p1:string>
        </Why>
      </CourierHeldView>
    </Held>
    <HeldCount>0</HeldCount>
    <IntakeMin>0</IntakeMin>
    <Profiles>
      <CourierProfileOption>
        <CourierProfileID>0</CourierProfileID>
        <Enabled>false</Enabled>
        <Facilities>
          <CourierFacilityOption>
            <Address>String</Address>
            <Code>String</Code>
            <CourierFacilityID>0</CourierFacilityID>
            <IntakeMin>0</IntakeMin>
            <Name>String</Name>
          </CourierFacilityOption>
        </Facilities>
        <FacilityNoun>String</FacilityNoun>
        <Name>String</Name>
        <RouteShape>String</RouteShape>
        <UnitMany>String</UnitMany>
        <UnitOne>String</UnitOne>
      </CourierProfileOption>
    </Profiles>
    <ReadyToOffer>0</ReadyToOffer>
    <ServerUtc>0001-01-01T00:00:00</ServerUtc>
    <Vans>
      <CourierOfficeVan>
        <Aboard>
          <CourierVanChip>
            <Area>String</Area>
            <Code>String</Code>
            <CourierStep>String</CourierStep>
            <DueText>String</DueText>
            <DueUtc>0001-01-01T00:00:00</DueUtc>
            <LevelCode>String</LevelCode>
            <LevelName>String</LevelName>
            <Movable>false</Movable>
            <NoMoveWhy>String</NoMoveWhy>
            <Targets>
              <CourierMoveTarget>
                <DriverContactId>0</DriverContactId>
                <LeaveByText>String</LeaveByText>
                <Name>String</Name>
                <Ok>false</Ok>
                <Why>String</Why>
              </CourierMoveTarget>
            </Targets>
            <Units>0</Units>
          </CourierVanChip>
        </Aboard>
        <Cap>0</Cap>
        <CapUnit>String</CapUnit>
        <Committed>0</Committed>
        <CriticalCode>String</CriticalCode>
        <DriveMin>0</DriveMin>
        <DriverCode>String</DriverCode>
        <DriverContactId>0</DriverContactId>
        <FacilityName>String</FacilityName>
        <InVan>0</InVan>
        <LeaveByText>String</LeaveByText>
        <LeaveByUtc>0001-01-01T00:00:00</LeaveByUtc>
        <Name>String</Name>
        <Online>false</Online>
        <Queued>
          <CourierVanChip>
            <Area>String</Area>
            <Code>String</Code>
            <CourierStep>String</CourierStep>
            <DueText>String</DueText>
            <DueUtc>0001-01-01T00:00:00</DueUtc>
            <LevelCode>String</LevelCode>
            <LevelName>String</LevelName>
            <Movable>false</Movable>
            <NoMoveWhy>String</NoMoveWhy>
            <Targets>
              <CourierMoveTarget>
                <DriverContactId>0</DriverContactId>
                <LeaveByText>String</LeaveByText>
                <Name>String</Name>
                <Ok>false</Ok>
                <Why>String</Why>
              </CourierMoveTarget>
            </Targets>
            <Units>0</Units>
          </CourierVanChip>
        </Queued>
        <SendNote>String</SendNote>
        <SlackMin>0</SlackMin>
        <State>String</State>
        <UnitMany>String</UnitMany>
        <VehicleUnit>String</VehicleUnit>
        <Zone>String</Zone>
      </CourierOfficeVan>
    </Vans>
    <Vehicles>
      <CourierVehicleOption>
        <CapacityLimit>0</CapacityLimit>
        <CapacityUnit>String</CapacityUnit>
        <CourierProfileId>0</CourierProfileId>
        <EquipmentID>0</EquipmentID>
        <IsRefrigerated>false</IsRefrigerated>
        <Status>String</Status>
        <UnitNumber>String</UnitNumber>
        <VehicleType>String</VehicleType>
      </CourierVehicleOption>
    </Vehicles>
  </Office>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
</CourierOfficeResponse>