""" Options: Date: 2026-05-19 09:48:45 Version: 8.22 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://dev-api-booster.richemont.com #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: CreateBasket.* #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 BasketStrapItem: # @ApiMember(Description="Article reference") speaking_article_code: Optional[str] = None """ Article reference """ # @ApiMember(Description="Buckle type Description") buckle_type_description: Optional[str] = None """ Buckle type Description """ # @ApiMember(Description="Buckle type") buckle_type_code: Optional[str] = None """ Buckle type """ # @ApiMember(Description="watch 6 Length") watch6_length: Optional[int] = None """ watch 6 Length """ # @ApiMember(Description="watch 12 Length") watch12_length: Optional[int] = None """ watch 12 Length """ # @ApiMember(Description="Article Material Code") material_code: Optional[str] = None """ Article Material Code """ # @ApiMember(Description="Article Material Description") material_description: Optional[str] = None """ Article Material Description """ # @ApiMember(Description="Article Color Code") color_code: Optional[str] = None """ Article Color Code """ # @ApiMember(Description="Article Color Description") color_description: Optional[str] = None """ Article Color Description """ # @ApiMember(Description="Buckle Witdh") buckle_width: Optional[str] = None """ Buckle Witdh """ # @ApiMember(Description="Article Lining Code") lining_code: Optional[str] = None """ Article Lining Code """ # @ApiMember(Description="Article Lining Description") lining_description: Optional[str] = None """ Article Lining Description """ # @ApiMember(Description="Article Stitching Code") stitching_code: Optional[str] = None """ Article Stitching Code """ # @ApiMember(Description="Article Stitching Description") stitching_description: Optional[str] = None """ Article Stitching Description """ # @ApiMember(Description="Article Edge Code") edge_code: Optional[str] = None """ Article Edge Code """ # @ApiMember(Description="Article Edge Description") edge_description: Optional[str] = None """ Article Edge Description """ # @ApiMember(Description="Article Padding Code") padding_code: Optional[str] = None """ Article Padding Code """ # @ApiMember(Description="Article Padding Description") padding_description: Optional[str] = None """ Article Padding Description """ # @ApiMember(Description="Article Speciality Code") specialty_code: Optional[str] = None """ Article Speciality Code """ # @ApiMember(Description="Article Speciality Description") specialty_description: Optional[str] = None """ Article Speciality Description """ # @ApiMember(Description="Nuancier Code") nuancier_code: Optional[str] = None """ Nuancier Code """ # @ApiMember(Description="Strap Vip Order") is_strap_vip_order: Optional[bool] = None """ Strap Vip Order """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BasketItem: # @ApiMember(Description="Reference ID of the article/product", IsRequired=true) article_code: Optional[str] = None """ Reference ID of the article/product """ # @ApiMember(Description="Desired quantity of the article") quantity: int = 0 """ Desired quantity of the article """ # @ApiMember(Description="Strap definition") strap: Optional[BasketStrapItem] = None """ Strap definition """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BasketItemResponse: # @ApiMember(Description="Line number of the article") line: int = 0 """ Line number of the article """ # @ApiMember(Description="Reference ID of the article/product") article_code: Optional[str] = None """ Reference ID of the article/product """ # @ApiMember(Description="Old reference ID of the article/product") old_article_code: Optional[str] = None """ Old reference ID of the article/product """ # @ApiMember(Description="Quantity of the article") quantity: int = 0 """ Quantity of the article """ # @ApiMember(Description="Delivery date of the article") delivery_date: datetime.datetime = datetime.datetime(1, 1, 1) """ Delivery date of the article """ # @ApiMember(Description="Strap definition") strap: Optional[BasketStrapItem] = None """ Strap definition """ # @ApiMember(Description="Errors for the article") errors: Optional[List[str]] = None """ Errors for the article """ # @ApiMember(Description="Warnings for the article") warnings: Optional[List[str]] = None """ Warnings for the article """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CreateBasketResponse: # @ApiMember(Description="ID of the newly created Purchase Order / Basket", IsRequired=true) purchase_order_id: int = 0 """ ID of the newly created Purchase Order / Basket """ # @ApiMember(Description="Validation results of each basket item") validation_results: Optional[List[BasketItemResponse]] = None """ Validation results of each basket item """ # @Route("/purchase/basket", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CreateBasket(IReturn[CreateBasketResponse]): # @ApiMember(Description="Brand Trigram of the intended order", IsRequired=true) brand: Optional[str] = None """ Brand Trigram of the intended order """ # @ApiMember(Description="Pos Code for the intended order e.g. ES03-10415-01", IsRequired=true) pos_code: Optional[str] = None """ Pos Code for the intended order e.g. ES03-10415-01 """ # @ApiMember(Description="Customer Reference", IsRequired=true) customer_reference: Optional[str] = None """ Customer Reference """ # @ApiMember(Description="Additional Notes regarding the order", IsRequired=true) notes: Optional[str] = None """ Additional Notes regarding the order """ # @ApiMember(Description="List of Articles to be added in the basket") order_items: Optional[List[BasketItem]] = None """ List of Articles to be added in the basket """ # @ApiMember(Description="Brand Context ID") booster_context_id: Optional[str] = None """ Brand Context ID """