""" Options: Date: 2026-10-13 00:02:33 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: CourierVansRequest.* #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 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 # @Route("/v1/dispatch/courier/vans", "GET,OPTIONS") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierVansRequest(IReturn[CourierOfficeResponse]): pass