""" Options: Date: 2026-09-09 09:27:11 Version: 10.08 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://services.acct.2service.nl #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: PostNewOrder.* #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 Object = TypeVar('Object') @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class NewOrderItem: # @ApiMember(Description="Unique ID for the part.", IsRequired=true, ParameterType="body") part_id: int = 0 """ Unique ID for the part. """ # @ApiMember(Description="Quantity to order.", IsRequired=true, ParameterType="body") quantity: int = 0 """ Quantity to order. """ # @ApiMember(Description="Custom reference.", ParameterType="body") reference: Optional[str] = None """ Custom reference. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class NewOrderItemList(List[NewOrderItem]): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class NewOrderAddress(IAddress): # @ApiMember(Description="Company name.", ParameterType="body") company_name: Optional[str] = None """ Company name. """ # @ApiMember(Description="First name.", ParameterType="body") first_name: Optional[str] = None """ First name. """ # @ApiMember(Description="Last name.", ParameterType="body") last_name: Optional[str] = None """ Last name. """ # @ApiMember(Description="Street name.", IsRequired=true, ParameterType="body") street_name: Optional[str] = None """ Street name. """ # @ApiMember(Description="House number.", IsRequired=true, ParameterType="body") house_number: Optional[str] = None """ House number. """ # @ApiMember(Description="House number addition.", ParameterType="body") house_number_addition: Optional[str] = None """ House number addition. """ # @ApiMember(Description="Postal code.", IsRequired=true, ParameterType="body") postal_code: Optional[str] = None """ Postal code. """ # @ApiMember(Description="City.", IsRequired=true, ParameterType="body") city: Optional[str] = None """ City. """ # @ApiMember(Description="Country code.", IsRequired=true, ParameterType="body") country_code: Optional[str] = None """ Country code. """ # @ApiMember(Description="Telephone number.", ParameterType="body") telephone_number: Optional[str] = None """ Telephone number. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class AuthenticatedRequest: # @ApiMember(Description="Session token received from successful authentication.", IsRequired=true, ParameterType="query") session_token: Optional[str] = None """ Session token received from successful authentication. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class NewOrderResult: # @ApiMember(Description="Number for the order that has been placed.", ParameterType="model") order_number: Optional[str] = None """ Number for the order that has been placed. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class OperationResult: # @ApiMember(Description="Specifies if the operation was successful.", ParameterType="model") is_successful: bool = False """ Specifies if the operation was successful. """ # @ApiMember(Description="States error message in case of unsuccessful operation.", ParameterType="model") error_message: Optional[str] = None """ States error message in case of unsuccessful operation. """ T = TypeVar('T') @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class OperationResult1(Generic[T], OperationResult): # @ApiMember(Description="Result value", ParameterType="model") result: Optional[T] = None """ Result value """ class AddressType(str, Enum): INVOICE = 'Invoice' DELIVERY = 'Delivery' DROPSHIPMENT = 'Dropshipment' class IAddress(ITaxRateContainer): id: int = 0 customer_id: int = 0 type: Optional[AddressType] = None company_name: Optional[str] = None first_name: Optional[str] = None last_name: Optional[str] = None street_name: Optional[str] = None house_number: Optional[str] = None house_number_addition: Optional[str] = None postal_code: Optional[str] = None city: Optional[str] = None country_code: Optional[str] = None telephone_number: Optional[str] = None class ITaxRateContainer: tax_rate: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class NewOrderResponse(OperationResult1[NewOrderResult]): pass # @Route("/dealers/order", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PostNewOrder(AuthenticatedRequest, IReturn[NewOrderResponse]): # @ApiMember(Description="Items to order.", IsRequired=true, ParameterType="body") items: Optional[NewOrderItemList] = None """ Items to order. """ # @ApiMember(Description="Dropshipment indication.", ParameterType="body") use_dropshipment: Optional[bool] = None """ Dropshipment indication. """ # @ApiMember(Description="Delivery address.", ParameterType="body") delivery_address: Optional[NewOrderAddress] = None """ Delivery address. """