""" Options: Date: 2026-10-12 02:59:42 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: CourierRunsRequest.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ 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 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 CourierStopView: sequence: int = 0 status: Optional[str] = None dispatch_od_request_i_d: int = 0 code: Optional[str] = None courier_step: Optional[str] = None address: Optional[str] = None unit: Optional[str] = None city: Optional[str] = None zip: Optional[str] = None lat: Optional[Decimal] = None lng: Optional[Decimal] = None customer_name: Optional[str] = None customer_phone: Optional[str] = None handoff: Optional[str] = None gate_code: Optional[str] = None instructions: Optional[str] = None units: int = 0 due_text: Optional[str] = None note: Optional[str] = None needs: List[str] = field(default_factory=list) items: List[CourierItemView] = field(default_factory=list) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierRunView: courier_run_i_d: int = 0 code: Optional[str] = None status: Optional[str] = None courier_profile_id: int = 0 profile_name: Optional[str] = None courier_facility_id: int = 0 facility_name: Optional[str] = None facility_address: Optional[str] = None driver_contact_id: Optional[int] = None driver_name: Optional[str] = None equipment_i_d: Optional[int] = None vehicle_unit: Optional[str] = None unit_one: Optional[str] = None unit_many: Optional[str] = None units: int = 0 stop_count: int = 0 stops_done: int = 0 pay: Optional[Decimal] = None built_utc: Optional[datetime.datetime] = None started_utc: Optional[datetime.datetime] = None completed_utc: Optional[datetime.datetime] = None to_load: int = 0 to_return: int = 0 stops: List[CourierStopView] = field(default_factory=list) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierRunResponse: runs: List[CourierRunView] = field(default_factory=list) run: Optional[CourierRunView] = None message: Optional[str] = None response_status: Optional[ResponseStatus] = None # @Route("/v1/dispatch/courier/runs", "GET,OPTIONS") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierRunsRequest(IReturn[CourierRunResponse]): status: Optional[str] = None