""" Options: Date: 2026-10-14 06:34:39 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: CourierBookPageRequest.* #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 CourierTrackBusiness: name: Optional[str] = None phone: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierBookLevel: code: Optional[str] = None name: Optional[str] = None ready: Optional[str] = None within_min: int = 0 in_by: Optional[str] = None surcharge: Decimal = decimal.Decimal(0) days: List[int] = field(default_factory=list) deadline_min: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HandoffOptions: hand: bool = False porch: bool = False desk: bool = False sig_required: bool = False id_required: bool = False code_required: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierBookProfile: code: Optional[str] = None name: Optional[str] = None shape: Optional[str] = None template: Optional[str] = None unit_one: Optional[str] = None unit_many: Optional[str] = None unit_one_es: Optional[str] = None unit_many_es: Optional[str] = None facility_noun: Optional[str] = None facility_noun_es: Optional[str] = None facility_name: Optional[str] = None levels: List[CourierBookLevel] = field(default_factory=list) asap: bool = False recurring: bool = False pay_timing: Optional[str] = None final_after_count: bool = False cancel_fee: Decimal = decimal.Decimal(0) missed_fee: Decimal = decimal.Decimal(0) missed_wait_min: int = 0 service_area: List[str] = field(default_factory=list) zips: List[str] = field(default_factory=list) handoffs: Optional[HandoffOptions] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierBookProfileLink: code: Optional[str] = None name: Optional[str] = None shape: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierBookPageView: available: bool = False booking_on: bool = False business: Optional[CourierTrackBusiness] = None profile: Optional[CourierBookProfile] = None profiles: List[CourierBookProfileLink] = field(default_factory=list) card_enabled: bool = False publishable_key: Optional[str] = None app_url: Optional[str] = None today: Optional[str] = None weekday: int = 0 now_min: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierBookPageResponse: page: Optional[CourierBookPageView] = None response_status: Optional[ResponseStatus] = None # @Route("/v1/book/{Slug}", "GET,OPTIONS") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CourierBookPageRequest(IReturn[CourierBookPageResponse]): slug: Optional[str] = None profile: Optional[str] = None