""" Options: Date: 2026-09-05 07:40:07 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: DispatchPayPlanSaveRequest.* #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 DispatchRateConfigView: fuel_surcharge_pct: Decimal = decimal.Decimal(0) transport_per_mile: Decimal = decimal.Decimal(0) transport_job_min: Decimal = decimal.Decimal(0) transport_enclosed_uplift_pct: Decimal = decimal.Decimal(0) od_base: Decimal = decimal.Decimal(0) od_per_bag: Decimal = decimal.Decimal(0) od_premium_uplift_pct: Decimal = decimal.Decimal(0) haul_basis: Optional[str] = None facility: Optional[str] = None unit: Optional[str] = None load_qty: Decimal = decimal.Decimal(0) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DispatchLaneRateView: dispatch_site_i_d: Optional[int] = None dispatch_supplier_i_d: Optional[int] = None source_label: Optional[str] = None supplier_name: Optional[str] = None dispatch_lane_rate_i_d: Optional[int] = None miles: Optional[Decimal] = None rate_per_ton: Optional[Decimal] = None rate_per_load: Optional[Decimal] = None rate_per_ton_mile: Optional[Decimal] = None rate_per_hour: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DispatchZoneRateView: zone: Optional[str] = None dispatch_zone_rate_i_d: Optional[int] = None base: Optional[Decimal] = None per_bag: Optional[Decimal] = None premium_uplift_pct: Optional[Decimal] = None drivers: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DispatchPayPlanView: dispatch_pay_plan_i_d: int = 0 name: Optional[str] = None basis: Optional[str] = None rate: Decimal = decimal.Decimal(0) rate2: Optional[Decimal] = None effective_date: Optional[datetime.datetime] = None is_active: bool = False drivers: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DispatchRatesResponse: config: Optional[DispatchRateConfigView] = None lanes: List[DispatchLaneRateView] = field(default_factory=list) zones: List[DispatchZoneRateView] = field(default_factory=list) plans: List[DispatchPayPlanView] = field(default_factory=list) repriced: Optional[int] = None still_no_revenue: Optional[int] = None still_no_pay: Optional[int] = None response_status: Optional[ResponseStatus] = None # @Route("/v1/dispatch/rates/plan", "PUT,OPTIONS") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DispatchPayPlanSaveRequest(IReturn[DispatchRatesResponse]): plan: Optional[DispatchPayPlanView] = None