""" Options: Date: 2026-09-21 22:51:02 Version: 8.52 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: http://clouddemo.pickeos.com:1337 #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: StockUpdate.* #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 StockAdditional: stock_i_d: int = 0 gtin: Optional[str] = None stock_location: Optional[str] = None physical_quantity_stock_location: float = 0.0 # @Route("/UpdateStock") # @Route("/StockUpdate") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class StockUpdate: # @ApiMember(Description="Internal DB identifier", IsRequired=true) stock_i_d: int = 0 """ Internal DB identifier """ # @ApiMember(Description="Global Trade Item Number : usually is the barcode of product (EAN, UPC, Gencode, etc...)", IsRequired=true) gtin: Optional[str] = None """ Global Trade Item Number : usually is the barcode of product (EAN, UPC, Gencode, etc...) """ # @ApiMember(Description="Location of main stock or stock address") stock_location: Optional[str] = None """ Location of main stock or stock address """ # @ApiMember(Description="Quantity physically stocked at this location") physical_quantity_stock_location: float = 0.0 """ Quantity physically stocked at this location """ # @ApiMember(Description="Location of reserve stock (2nd stock location address)") reserve_stock_location: Optional[str] = None """ Location of reserve stock (2nd stock location address) """ # @ApiMember(Description="Quantity physically stocked at this location") physical_quantity_reserve_stock_location: float = 0.0 """ Quantity physically stocked at this location """ # @ApiMember(Description="Product ID") product_i_d: Optional[str] = None """ Product ID """ # @ApiMember(Description="Second product ID E.g. in case of variant") product_attribute_i_d: Optional[str] = None """ Second product ID E.g. in case of variant """ # @ApiMember(Description="Product reference") reference: Optional[str] = None """ Product reference """ # @ApiMember(Description="GTIN of variant") gtin_attribute: Optional[str] = None """ GTIN of variant """ # @ApiMember(Description="Product label") label: Optional[str] = None """ Product label """ # @ApiMember(Description="NbSKUInPackage") nb_s_k_u_in_package: Optional[int] = None """ NbSKUInPackage """ # @ApiMember(Description="PackageReference") package_reference: Optional[str] = None """ PackageReference """ # @ApiMember(Description="NbSKUInPackage2") nb_s_k_u_in_package2: Optional[int] = None """ NbSKUInPackage2 """ # @ApiMember(Description="PackageReference2") package_reference2: Optional[str] = None """ PackageReference2 """ # @ApiMember(Description="Weight") weight: Optional[str] = None """ Weight """ # @ApiMember(Description="List of stock Additional") stock_additionals: List[StockAdditional] = field(default_factory=list) """ List of stock Additional """