Go-to-Light Service 4.0.0.2397 - 121 - API License to Cloud Demo

<back to all web services

AreMissionsAlreadyAssigned

Requires Authentication
The following routes are available for this service:
All Verbs/AreMissionsAlreadyAssigned/
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class Position implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ID=0,
        /** @var string */
        public string $Key='',
        /** @var int */
        public int $Pixel=0,
        /** @var int */
        public int $Width=0,
        /** @var int */
        public int $AreaID=0,
        /** @var string */
        public string $AreaLabel='',
        /** @var string */
        public string $Label='',
        /** @var int|null */
        public ?int $StockroomID=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['Key'])) $this->Key = $o['Key'];
        if (isset($o['Pixel'])) $this->Pixel = $o['Pixel'];
        if (isset($o['Width'])) $this->Width = $o['Width'];
        if (isset($o['AreaID'])) $this->AreaID = $o['AreaID'];
        if (isset($o['AreaLabel'])) $this->AreaLabel = $o['AreaLabel'];
        if (isset($o['Label'])) $this->Label = $o['Label'];
        if (isset($o['StockroomID'])) $this->StockroomID = $o['StockroomID'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->Key)) $o['Key'] = $this->Key;
        if (isset($this->Pixel)) $o['Pixel'] = $this->Pixel;
        if (isset($this->Width)) $o['Width'] = $this->Width;
        if (isset($this->AreaID)) $o['AreaID'] = $this->AreaID;
        if (isset($this->AreaLabel)) $o['AreaLabel'] = $this->AreaLabel;
        if (isset($this->Label)) $o['Label'] = $this->Label;
        if (isset($this->StockroomID)) $o['StockroomID'] = $this->StockroomID;
        return empty($o) ? new class(){} : $o;
    }
}

class TraceabilityMissionDetail implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $IDMissionDetail=0,
        /** @var float */
        public float $PreparedQuantity=0.0,
        /** @var string */
        public string $Batch='',
        /** @var int */
        public int $ContainerID=0,
        /** @var string */
        public string $ContainerName='',
        /** @var float */
        public float $ContainerSizeXCm=0.0,
        /** @var float */
        public float $ContainerSizeYCm=0.0,
        /** @var float */
        public float $ContainerSizeZCm=0.0,
        /** @var float */
        public float $ContainerWeight=0.0,
        /** @var int */
        public int $StockroomID=0,
        /** @var string */
        public string $StockroomName='',
        /** @var string */
        public string $Operator='',
        /** @var string */
        public string $VersionSelected=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['IDMissionDetail'])) $this->IDMissionDetail = $o['IDMissionDetail'];
        if (isset($o['PreparedQuantity'])) $this->PreparedQuantity = $o['PreparedQuantity'];
        if (isset($o['Batch'])) $this->Batch = $o['Batch'];
        if (isset($o['ContainerID'])) $this->ContainerID = $o['ContainerID'];
        if (isset($o['ContainerName'])) $this->ContainerName = $o['ContainerName'];
        if (isset($o['ContainerSizeXCm'])) $this->ContainerSizeXCm = $o['ContainerSizeXCm'];
        if (isset($o['ContainerSizeYCm'])) $this->ContainerSizeYCm = $o['ContainerSizeYCm'];
        if (isset($o['ContainerSizeZCm'])) $this->ContainerSizeZCm = $o['ContainerSizeZCm'];
        if (isset($o['ContainerWeight'])) $this->ContainerWeight = $o['ContainerWeight'];
        if (isset($o['StockroomID'])) $this->StockroomID = $o['StockroomID'];
        if (isset($o['StockroomName'])) $this->StockroomName = $o['StockroomName'];
        if (isset($o['Operator'])) $this->Operator = $o['Operator'];
        if (isset($o['VersionSelected'])) $this->VersionSelected = $o['VersionSelected'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->IDMissionDetail)) $o['IDMissionDetail'] = $this->IDMissionDetail;
        if (isset($this->PreparedQuantity)) $o['PreparedQuantity'] = $this->PreparedQuantity;
        if (isset($this->Batch)) $o['Batch'] = $this->Batch;
        if (isset($this->ContainerID)) $o['ContainerID'] = $this->ContainerID;
        if (isset($this->ContainerName)) $o['ContainerName'] = $this->ContainerName;
        if (isset($this->ContainerSizeXCm)) $o['ContainerSizeXCm'] = $this->ContainerSizeXCm;
        if (isset($this->ContainerSizeYCm)) $o['ContainerSizeYCm'] = $this->ContainerSizeYCm;
        if (isset($this->ContainerSizeZCm)) $o['ContainerSizeZCm'] = $this->ContainerSizeZCm;
        if (isset($this->ContainerWeight)) $o['ContainerWeight'] = $this->ContainerWeight;
        if (isset($this->StockroomID)) $o['StockroomID'] = $this->StockroomID;
        if (isset($this->StockroomName)) $o['StockroomName'] = $this->StockroomName;
        if (isset($this->Operator)) $o['Operator'] = $this->Operator;
        if (isset($this->VersionSelected)) $o['VersionSelected'] = $this->VersionSelected;
        return empty($o) ? new class(){} : $o;
    }
}

class TraceabilityMissionDetailPacking implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $IDMissionDetail=0,
        /** @var float */
        public float $PreparedQuantity=0.0,
        /** @var string */
        public string $Batch='',
        /** @var int */
        public int $ContainerID=0,
        /** @var string */
        public string $ContainerName='',
        /** @var float */
        public float $ContainerSizeXCm=0.0,
        /** @var float */
        public float $ContainerSizeYCm=0.0,
        /** @var float */
        public float $ContainerSizeZCm=0.0,
        /** @var float */
        public float $ContainerWeight=0.0,
        /** @var int */
        public int $StockroomID=0,
        /** @var string */
        public string $StockroomName='',
        /** @var string */
        public string $Operator='',
        /** @var string */
        public string $VersionSelected=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['IDMissionDetail'])) $this->IDMissionDetail = $o['IDMissionDetail'];
        if (isset($o['PreparedQuantity'])) $this->PreparedQuantity = $o['PreparedQuantity'];
        if (isset($o['Batch'])) $this->Batch = $o['Batch'];
        if (isset($o['ContainerID'])) $this->ContainerID = $o['ContainerID'];
        if (isset($o['ContainerName'])) $this->ContainerName = $o['ContainerName'];
        if (isset($o['ContainerSizeXCm'])) $this->ContainerSizeXCm = $o['ContainerSizeXCm'];
        if (isset($o['ContainerSizeYCm'])) $this->ContainerSizeYCm = $o['ContainerSizeYCm'];
        if (isset($o['ContainerSizeZCm'])) $this->ContainerSizeZCm = $o['ContainerSizeZCm'];
        if (isset($o['ContainerWeight'])) $this->ContainerWeight = $o['ContainerWeight'];
        if (isset($o['StockroomID'])) $this->StockroomID = $o['StockroomID'];
        if (isset($o['StockroomName'])) $this->StockroomName = $o['StockroomName'];
        if (isset($o['Operator'])) $this->Operator = $o['Operator'];
        if (isset($o['VersionSelected'])) $this->VersionSelected = $o['VersionSelected'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->IDMissionDetail)) $o['IDMissionDetail'] = $this->IDMissionDetail;
        if (isset($this->PreparedQuantity)) $o['PreparedQuantity'] = $this->PreparedQuantity;
        if (isset($this->Batch)) $o['Batch'] = $this->Batch;
        if (isset($this->ContainerID)) $o['ContainerID'] = $this->ContainerID;
        if (isset($this->ContainerName)) $o['ContainerName'] = $this->ContainerName;
        if (isset($this->ContainerSizeXCm)) $o['ContainerSizeXCm'] = $this->ContainerSizeXCm;
        if (isset($this->ContainerSizeYCm)) $o['ContainerSizeYCm'] = $this->ContainerSizeYCm;
        if (isset($this->ContainerSizeZCm)) $o['ContainerSizeZCm'] = $this->ContainerSizeZCm;
        if (isset($this->ContainerWeight)) $o['ContainerWeight'] = $this->ContainerWeight;
        if (isset($this->StockroomID)) $o['StockroomID'] = $this->StockroomID;
        if (isset($this->StockroomName)) $o['StockroomName'] = $this->StockroomName;
        if (isset($this->Operator)) $o['Operator'] = $this->Operator;
        if (isset($this->VersionSelected)) $o['VersionSelected'] = $this->VersionSelected;
        return empty($o) ? new class(){} : $o;
    }
}

class Container implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ContainerID=0,
        /** @var string */
        public string $ContainerCode='',
        /** @var string */
        public string $Location='',
        /** @var Object|null */
        public ?Object $DimensionX=null,
        /** @var Object|null */
        public ?Object $DimensionY=null,
        /** @var Object|null */
        public ?Object $DimensionZ=null,
        /** @var bool|null */
        public ?bool $Deleted=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ContainerID'])) $this->ContainerID = $o['ContainerID'];
        if (isset($o['ContainerCode'])) $this->ContainerCode = $o['ContainerCode'];
        if (isset($o['Location'])) $this->Location = $o['Location'];
        if (isset($o['DimensionX'])) $this->DimensionX = JsonConverters::from('Object', $o['DimensionX']);
        if (isset($o['DimensionY'])) $this->DimensionY = JsonConverters::from('Object', $o['DimensionY']);
        if (isset($o['DimensionZ'])) $this->DimensionZ = JsonConverters::from('Object', $o['DimensionZ']);
        if (isset($o['Deleted'])) $this->Deleted = $o['Deleted'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ContainerID)) $o['ContainerID'] = $this->ContainerID;
        if (isset($this->ContainerCode)) $o['ContainerCode'] = $this->ContainerCode;
        if (isset($this->Location)) $o['Location'] = $this->Location;
        if (isset($this->DimensionX)) $o['DimensionX'] = JsonConverters::to('Object', $this->DimensionX);
        if (isset($this->DimensionY)) $o['DimensionY'] = JsonConverters::to('Object', $this->DimensionY);
        if (isset($this->DimensionZ)) $o['DimensionZ'] = JsonConverters::to('Object', $this->DimensionZ);
        if (isset($this->Deleted)) $o['Deleted'] = $this->Deleted;
        return empty($o) ? new class(){} : $o;
    }
}

class StockAdditional implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $StockID=0,
        /** @var string */
        public string $Gtin='',
        /** @var string */
        public string $StockLocation='',
        /** @var float */
        public float $PhysicalQuantityStockLocation=0.0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['StockID'])) $this->StockID = $o['StockID'];
        if (isset($o['Gtin'])) $this->Gtin = $o['Gtin'];
        if (isset($o['StockLocation'])) $this->StockLocation = $o['StockLocation'];
        if (isset($o['PhysicalQuantityStockLocation'])) $this->PhysicalQuantityStockLocation = $o['PhysicalQuantityStockLocation'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->StockID)) $o['StockID'] = $this->StockID;
        if (isset($this->Gtin)) $o['Gtin'] = $this->Gtin;
        if (isset($this->StockLocation)) $o['StockLocation'] = $this->StockLocation;
        if (isset($this->PhysicalQuantityStockLocation)) $o['PhysicalQuantityStockLocation'] = $this->PhysicalQuantityStockLocation;
        return empty($o) ? new class(){} : $o;
    }
}

class Stock implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $StockID=0,
        /** @var string */
        public string $ProductID='',
        /** @var string */
        public string $ProductAttributeID='',
        /** @var string */
        public string $Reference='',
        /** @var string */
        public string $Gtin='',
        /** @var string */
        public string $GtinAttribute='',
        /** @var string */
        public string $Label='',
        /** @var string */
        public string $StockLocation='',
        /** @var float */
        public float $PhysicalQuantityStockLocation=0.0,
        /** @var string */
        public string $ReserveStockLocation='',
        /** @var float */
        public float $PhysicalQuantityReserveStockLocation=0.0,
        /** @var int|null */
        public ?int $NbSKUInPackage=null,
        /** @var string */
        public string $PackageReference='',
        /** @var int|null */
        public ?int $NbSKUInPackage2=null,
        /** @var string */
        public string $PackageReference2='',
        /** @var string */
        public string $Weight='',
        /** @var bool|null */
        public ?bool $FillInBatchNumber=null,
        /** @var bool|null */
        public ?bool $FillInDate=null,
        /** @var string */
        public string $PictureURL='',
        /** @var array<StockAdditional>|null */
        public ?array $StockAdditionals=null,
        /** @var string */
        public string $SearchKey=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['StockID'])) $this->StockID = $o['StockID'];
        if (isset($o['ProductID'])) $this->ProductID = $o['ProductID'];
        if (isset($o['ProductAttributeID'])) $this->ProductAttributeID = $o['ProductAttributeID'];
        if (isset($o['Reference'])) $this->Reference = $o['Reference'];
        if (isset($o['Gtin'])) $this->Gtin = $o['Gtin'];
        if (isset($o['GtinAttribute'])) $this->GtinAttribute = $o['GtinAttribute'];
        if (isset($o['Label'])) $this->Label = $o['Label'];
        if (isset($o['StockLocation'])) $this->StockLocation = $o['StockLocation'];
        if (isset($o['PhysicalQuantityStockLocation'])) $this->PhysicalQuantityStockLocation = $o['PhysicalQuantityStockLocation'];
        if (isset($o['ReserveStockLocation'])) $this->ReserveStockLocation = $o['ReserveStockLocation'];
        if (isset($o['PhysicalQuantityReserveStockLocation'])) $this->PhysicalQuantityReserveStockLocation = $o['PhysicalQuantityReserveStockLocation'];
        if (isset($o['NbSKUInPackage'])) $this->NbSKUInPackage = $o['NbSKUInPackage'];
        if (isset($o['PackageReference'])) $this->PackageReference = $o['PackageReference'];
        if (isset($o['NbSKUInPackage2'])) $this->NbSKUInPackage2 = $o['NbSKUInPackage2'];
        if (isset($o['PackageReference2'])) $this->PackageReference2 = $o['PackageReference2'];
        if (isset($o['Weight'])) $this->Weight = $o['Weight'];
        if (isset($o['FillInBatchNumber'])) $this->FillInBatchNumber = $o['FillInBatchNumber'];
        if (isset($o['FillInDate'])) $this->FillInDate = $o['FillInDate'];
        if (isset($o['PictureURL'])) $this->PictureURL = $o['PictureURL'];
        if (isset($o['StockAdditionals'])) $this->StockAdditionals = JsonConverters::fromArray('StockAdditional', $o['StockAdditionals']);
        if (isset($o['SearchKey'])) $this->SearchKey = $o['SearchKey'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->StockID)) $o['StockID'] = $this->StockID;
        if (isset($this->ProductID)) $o['ProductID'] = $this->ProductID;
        if (isset($this->ProductAttributeID)) $o['ProductAttributeID'] = $this->ProductAttributeID;
        if (isset($this->Reference)) $o['Reference'] = $this->Reference;
        if (isset($this->Gtin)) $o['Gtin'] = $this->Gtin;
        if (isset($this->GtinAttribute)) $o['GtinAttribute'] = $this->GtinAttribute;
        if (isset($this->Label)) $o['Label'] = $this->Label;
        if (isset($this->StockLocation)) $o['StockLocation'] = $this->StockLocation;
        if (isset($this->PhysicalQuantityStockLocation)) $o['PhysicalQuantityStockLocation'] = $this->PhysicalQuantityStockLocation;
        if (isset($this->ReserveStockLocation)) $o['ReserveStockLocation'] = $this->ReserveStockLocation;
        if (isset($this->PhysicalQuantityReserveStockLocation)) $o['PhysicalQuantityReserveStockLocation'] = $this->PhysicalQuantityReserveStockLocation;
        if (isset($this->NbSKUInPackage)) $o['NbSKUInPackage'] = $this->NbSKUInPackage;
        if (isset($this->PackageReference)) $o['PackageReference'] = $this->PackageReference;
        if (isset($this->NbSKUInPackage2)) $o['NbSKUInPackage2'] = $this->NbSKUInPackage2;
        if (isset($this->PackageReference2)) $o['PackageReference2'] = $this->PackageReference2;
        if (isset($this->Weight)) $o['Weight'] = $this->Weight;
        if (isset($this->FillInBatchNumber)) $o['FillInBatchNumber'] = $this->FillInBatchNumber;
        if (isset($this->FillInDate)) $o['FillInDate'] = $this->FillInDate;
        if (isset($this->PictureURL)) $o['PictureURL'] = $this->PictureURL;
        if (isset($this->StockAdditionals)) $o['StockAdditionals'] = JsonConverters::toArray('StockAdditional', $this->StockAdditionals);
        if (isset($this->SearchKey)) $o['SearchKey'] = $this->SearchKey;
        return empty($o) ? new class(){} : $o;
    }
}

class MissionDetailComment implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ID=0,
        /** @var int */
        public int $MissionDetailID=0,
        /** @var string */
        public string $Comment='',
        /** @var DateTime|null */
        public ?DateTime $Timestamp=null,
        /** @var string */
        public string $Operator=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['MissionDetailID'])) $this->MissionDetailID = $o['MissionDetailID'];
        if (isset($o['Comment'])) $this->Comment = $o['Comment'];
        if (isset($o['Timestamp'])) $this->Timestamp = JsonConverters::from('DateTime', $o['Timestamp']);
        if (isset($o['Operator'])) $this->Operator = $o['Operator'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->MissionDetailID)) $o['MissionDetailID'] = $this->MissionDetailID;
        if (isset($this->Comment)) $o['Comment'] = $this->Comment;
        if (isset($this->Timestamp)) $o['Timestamp'] = JsonConverters::to('DateTime', $this->Timestamp);
        if (isset($this->Operator)) $o['Operator'] = $this->Operator;
        return empty($o) ? new class(){} : $o;
    }
}

class MissionDetail implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ID=0,
        /** @var int */
        public int $MissionID=0,
        /** @var string */
        public string $Label='',
        /** @var string */
        public string $Reference='',
        /** @var float|null */
        public ?float $Quantity=null,
        /** @var float|null */
        public ?float $PreparedQuantity=null,
        /** @var float */
        public float $PackedQuantity=0.0,
        /** @var array<Position>|null */
        public ?array $Positions=null,
        /** @var string */
        public string $Tray='',
        /** @var string */
        public string $StockLocation='',
        /** @var int|null */
        public ?int $LineNumber=null,
        /** @var string */
        public string $Info='',
        /** @var string */
        public string $GTIN='',
        /** @var string */
        public string $SupplierReference='',
        /** @var int */
        public int $PickingIndex=0,
        /** @var array<TraceabilityMissionDetail>|null */
        public ?array $TraceabilityDetails=null,
        /** @var array<TraceabilityMissionDetailPacking>|null */
        public ?array $TraceabilityDetailsPacking=null,
        /** @var bool|null */
        public ?bool $Substitutable=null,
        /** @var string */
        public string $SubstitutionRef='',
        /** @var string */
        public string $TraceabilityBatch='',
        /** @var string */
        public string $Data1='',
        /** @var string */
        public string $Data2='',
        /** @var string */
        public string $Data3='',
        /** @var string */
        public string $Data4='',
        /** @var string */
        public string $Data5='',
        /** @var string */
        public string $Data6='',
        /** @var string */
        public string $Data7='',
        /** @var string */
        public string $Data8='',
        /** @var string */
        public string $Data9='',
        /** @var string */
        public string $Data10='',
        /** @var string */
        public string $Data11='',
        /** @var string */
        public string $Data12='',
        /** @var string */
        public string $PackageReference='',
        /** @var int|null */
        public ?int $NbSKUInPackage=null,
        /** @var string */
        public string $PackageReference2='',
        /** @var int|null */
        public ?int $NbSKUInPackage2=null,
        /** @var int|null */
        public ?int $ContainerID=null,
        /** @var Container|null */
        public ?Container $Container=null,
        /** @var float|null */
        public ?float $WeightPerItemInKg=null,
        /** @var float|null */
        public ?float $VolumePerItemInM3=null,
        /** @var string */
        public string $PictureURL='',
        /** @var Stock|null */
        public ?Stock $Stock=null,
        /** @var string */
        public string $QuantityUnit='',
        /** @var MissionDetailComment|null */
        public ?MissionDetailComment $Comments=null,
        /** @var float|null */
        public ?float $ShortageQuantity=null,
        /** @var DateTime|null */
        public ?DateTime $ItemPreparationDate=null,
        /** @var DateTime|null */
        public ?DateTime $CreationDateTime=null,
        /** @var int|null */
        public ?int $QuantityDispatched=null,
        /** @var array<string>|null */
        public ?array $Versions=null,
        /** @var int */
        public int $QuantityBreakage=0,
        /** @var bool|null */
        public ?bool $IsProductCritical=null,
        /** @var string */
        public string $Owner='',
        /** @var int */
        public int $StockroomID=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['MissionID'])) $this->MissionID = $o['MissionID'];
        if (isset($o['Label'])) $this->Label = $o['Label'];
        if (isset($o['Reference'])) $this->Reference = $o['Reference'];
        if (isset($o['Quantity'])) $this->Quantity = $o['Quantity'];
        if (isset($o['PreparedQuantity'])) $this->PreparedQuantity = $o['PreparedQuantity'];
        if (isset($o['PackedQuantity'])) $this->PackedQuantity = $o['PackedQuantity'];
        if (isset($o['Positions'])) $this->Positions = JsonConverters::fromArray('Position', $o['Positions']);
        if (isset($o['Tray'])) $this->Tray = $o['Tray'];
        if (isset($o['StockLocation'])) $this->StockLocation = $o['StockLocation'];
        if (isset($o['LineNumber'])) $this->LineNumber = $o['LineNumber'];
        if (isset($o['Info'])) $this->Info = $o['Info'];
        if (isset($o['GTIN'])) $this->GTIN = $o['GTIN'];
        if (isset($o['SupplierReference'])) $this->SupplierReference = $o['SupplierReference'];
        if (isset($o['PickingIndex'])) $this->PickingIndex = $o['PickingIndex'];
        if (isset($o['TraceabilityDetails'])) $this->TraceabilityDetails = JsonConverters::fromArray('TraceabilityMissionDetail', $o['TraceabilityDetails']);
        if (isset($o['TraceabilityDetailsPacking'])) $this->TraceabilityDetailsPacking = JsonConverters::fromArray('TraceabilityMissionDetailPacking', $o['TraceabilityDetailsPacking']);
        if (isset($o['Substitutable'])) $this->Substitutable = $o['Substitutable'];
        if (isset($o['SubstitutionRef'])) $this->SubstitutionRef = $o['SubstitutionRef'];
        if (isset($o['TraceabilityBatch'])) $this->TraceabilityBatch = $o['TraceabilityBatch'];
        if (isset($o['Data1'])) $this->Data1 = $o['Data1'];
        if (isset($o['Data2'])) $this->Data2 = $o['Data2'];
        if (isset($o['Data3'])) $this->Data3 = $o['Data3'];
        if (isset($o['Data4'])) $this->Data4 = $o['Data4'];
        if (isset($o['Data5'])) $this->Data5 = $o['Data5'];
        if (isset($o['Data6'])) $this->Data6 = $o['Data6'];
        if (isset($o['Data7'])) $this->Data7 = $o['Data7'];
        if (isset($o['Data8'])) $this->Data8 = $o['Data8'];
        if (isset($o['Data9'])) $this->Data9 = $o['Data9'];
        if (isset($o['Data10'])) $this->Data10 = $o['Data10'];
        if (isset($o['Data11'])) $this->Data11 = $o['Data11'];
        if (isset($o['Data12'])) $this->Data12 = $o['Data12'];
        if (isset($o['PackageReference'])) $this->PackageReference = $o['PackageReference'];
        if (isset($o['NbSKUInPackage'])) $this->NbSKUInPackage = $o['NbSKUInPackage'];
        if (isset($o['PackageReference2'])) $this->PackageReference2 = $o['PackageReference2'];
        if (isset($o['NbSKUInPackage2'])) $this->NbSKUInPackage2 = $o['NbSKUInPackage2'];
        if (isset($o['ContainerID'])) $this->ContainerID = $o['ContainerID'];
        if (isset($o['Container'])) $this->Container = JsonConverters::from('Container', $o['Container']);
        if (isset($o['WeightPerItemInKg'])) $this->WeightPerItemInKg = $o['WeightPerItemInKg'];
        if (isset($o['VolumePerItemInM3'])) $this->VolumePerItemInM3 = $o['VolumePerItemInM3'];
        if (isset($o['PictureURL'])) $this->PictureURL = $o['PictureURL'];
        if (isset($o['Stock'])) $this->Stock = JsonConverters::from('Stock', $o['Stock']);
        if (isset($o['QuantityUnit'])) $this->QuantityUnit = $o['QuantityUnit'];
        if (isset($o['Comments'])) $this->Comments = JsonConverters::from('MissionDetailComment', $o['Comments']);
        if (isset($o['ShortageQuantity'])) $this->ShortageQuantity = $o['ShortageQuantity'];
        if (isset($o['ItemPreparationDate'])) $this->ItemPreparationDate = JsonConverters::from('DateTime', $o['ItemPreparationDate']);
        if (isset($o['CreationDateTime'])) $this->CreationDateTime = JsonConverters::from('DateTime', $o['CreationDateTime']);
        if (isset($o['QuantityDispatched'])) $this->QuantityDispatched = $o['QuantityDispatched'];
        if (isset($o['Versions'])) $this->Versions = JsonConverters::fromArray('string', $o['Versions']);
        if (isset($o['QuantityBreakage'])) $this->QuantityBreakage = $o['QuantityBreakage'];
        if (isset($o['IsProductCritical'])) $this->IsProductCritical = $o['IsProductCritical'];
        if (isset($o['Owner'])) $this->Owner = $o['Owner'];
        if (isset($o['StockroomID'])) $this->StockroomID = $o['StockroomID'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->MissionID)) $o['MissionID'] = $this->MissionID;
        if (isset($this->Label)) $o['Label'] = $this->Label;
        if (isset($this->Reference)) $o['Reference'] = $this->Reference;
        if (isset($this->Quantity)) $o['Quantity'] = $this->Quantity;
        if (isset($this->PreparedQuantity)) $o['PreparedQuantity'] = $this->PreparedQuantity;
        if (isset($this->PackedQuantity)) $o['PackedQuantity'] = $this->PackedQuantity;
        if (isset($this->Positions)) $o['Positions'] = JsonConverters::toArray('Position', $this->Positions);
        if (isset($this->Tray)) $o['Tray'] = $this->Tray;
        if (isset($this->StockLocation)) $o['StockLocation'] = $this->StockLocation;
        if (isset($this->LineNumber)) $o['LineNumber'] = $this->LineNumber;
        if (isset($this->Info)) $o['Info'] = $this->Info;
        if (isset($this->GTIN)) $o['GTIN'] = $this->GTIN;
        if (isset($this->SupplierReference)) $o['SupplierReference'] = $this->SupplierReference;
        if (isset($this->PickingIndex)) $o['PickingIndex'] = $this->PickingIndex;
        if (isset($this->TraceabilityDetails)) $o['TraceabilityDetails'] = JsonConverters::toArray('TraceabilityMissionDetail', $this->TraceabilityDetails);
        if (isset($this->TraceabilityDetailsPacking)) $o['TraceabilityDetailsPacking'] = JsonConverters::toArray('TraceabilityMissionDetailPacking', $this->TraceabilityDetailsPacking);
        if (isset($this->Substitutable)) $o['Substitutable'] = $this->Substitutable;
        if (isset($this->SubstitutionRef)) $o['SubstitutionRef'] = $this->SubstitutionRef;
        if (isset($this->TraceabilityBatch)) $o['TraceabilityBatch'] = $this->TraceabilityBatch;
        if (isset($this->Data1)) $o['Data1'] = $this->Data1;
        if (isset($this->Data2)) $o['Data2'] = $this->Data2;
        if (isset($this->Data3)) $o['Data3'] = $this->Data3;
        if (isset($this->Data4)) $o['Data4'] = $this->Data4;
        if (isset($this->Data5)) $o['Data5'] = $this->Data5;
        if (isset($this->Data6)) $o['Data6'] = $this->Data6;
        if (isset($this->Data7)) $o['Data7'] = $this->Data7;
        if (isset($this->Data8)) $o['Data8'] = $this->Data8;
        if (isset($this->Data9)) $o['Data9'] = $this->Data9;
        if (isset($this->Data10)) $o['Data10'] = $this->Data10;
        if (isset($this->Data11)) $o['Data11'] = $this->Data11;
        if (isset($this->Data12)) $o['Data12'] = $this->Data12;
        if (isset($this->PackageReference)) $o['PackageReference'] = $this->PackageReference;
        if (isset($this->NbSKUInPackage)) $o['NbSKUInPackage'] = $this->NbSKUInPackage;
        if (isset($this->PackageReference2)) $o['PackageReference2'] = $this->PackageReference2;
        if (isset($this->NbSKUInPackage2)) $o['NbSKUInPackage2'] = $this->NbSKUInPackage2;
        if (isset($this->ContainerID)) $o['ContainerID'] = $this->ContainerID;
        if (isset($this->Container)) $o['Container'] = JsonConverters::to('Container', $this->Container);
        if (isset($this->WeightPerItemInKg)) $o['WeightPerItemInKg'] = $this->WeightPerItemInKg;
        if (isset($this->VolumePerItemInM3)) $o['VolumePerItemInM3'] = $this->VolumePerItemInM3;
        if (isset($this->PictureURL)) $o['PictureURL'] = $this->PictureURL;
        if (isset($this->Stock)) $o['Stock'] = JsonConverters::to('Stock', $this->Stock);
        if (isset($this->QuantityUnit)) $o['QuantityUnit'] = $this->QuantityUnit;
        if (isset($this->Comments)) $o['Comments'] = JsonConverters::to('MissionDetailComment', $this->Comments);
        if (isset($this->ShortageQuantity)) $o['ShortageQuantity'] = $this->ShortageQuantity;
        if (isset($this->ItemPreparationDate)) $o['ItemPreparationDate'] = JsonConverters::to('DateTime', $this->ItemPreparationDate);
        if (isset($this->CreationDateTime)) $o['CreationDateTime'] = JsonConverters::to('DateTime', $this->CreationDateTime);
        if (isset($this->QuantityDispatched)) $o['QuantityDispatched'] = $this->QuantityDispatched;
        if (isset($this->Versions)) $o['Versions'] = JsonConverters::toArray('string', $this->Versions);
        if (isset($this->QuantityBreakage)) $o['QuantityBreakage'] = $this->QuantityBreakage;
        if (isset($this->IsProductCritical)) $o['IsProductCritical'] = $this->IsProductCritical;
        if (isset($this->Owner)) $o['Owner'] = $this->Owner;
        if (isset($this->StockroomID)) $o['StockroomID'] = $this->StockroomID;
        return empty($o) ? new class(){} : $o;
    }
}

class Work implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $WorkID=0,
        /** @var int */
        public int $MissionID=0,
        /** @var string */
        public string $Owner='',
        /** @var DateInterval|null */
        public ?DateInterval $Duration=null,
        /** @var DateTime|null */
        public ?DateTime $DateBegin=null,
        /** @var DateTime|null */
        public ?DateTime $DateEnd=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['WorkID'])) $this->WorkID = $o['WorkID'];
        if (isset($o['MissionID'])) $this->MissionID = $o['MissionID'];
        if (isset($o['Owner'])) $this->Owner = $o['Owner'];
        if (isset($o['Duration'])) $this->Duration = JsonConverters::from('TimeSpan', $o['Duration']);
        if (isset($o['DateBegin'])) $this->DateBegin = JsonConverters::from('DateTime', $o['DateBegin']);
        if (isset($o['DateEnd'])) $this->DateEnd = JsonConverters::from('DateTime', $o['DateEnd']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->WorkID)) $o['WorkID'] = $this->WorkID;
        if (isset($this->MissionID)) $o['MissionID'] = $this->MissionID;
        if (isset($this->Owner)) $o['Owner'] = $this->Owner;
        if (isset($this->Duration)) $o['Duration'] = JsonConverters::to('TimeSpan', $this->Duration);
        if (isset($this->DateBegin)) $o['DateBegin'] = JsonConverters::to('DateTime', $this->DateBegin);
        if (isset($this->DateEnd)) $o['DateEnd'] = JsonConverters::to('DateTime', $this->DateEnd);
        return empty($o) ? new class(){} : $o;
    }
}

enum MissionState : string
{
    case New = 'New';
    case PickingStarted = 'PickingStarted';
    case PickingFinished = 'PickingFinished';
    case PickingManuallyValidated = 'PickingManuallyValidated';
    case RamasseFinished = 'RamasseFinished';
    case PackingFinished = 'PackingFinished';
}

class ShippingDetails implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $MissionID=0,
        /** @var float */
        public float $ShippingWeight=0.0,
        /** @var float */
        public float $ShippingHeight=0.0,
        /** @var float */
        public float $ShippingLenght=0.0,
        /** @var float */
        public float $ShippingWidth=0.0,
        /** @var string */
        public string $ShippingCompany='',
        /** @var string */
        public string $ShippingLastname='',
        /** @var string */
        public string $ShippingFirstname='',
        /** @var string */
        public string $ShippingAddress1='',
        /** @var string */
        public string $ShippingAddress2='',
        /** @var string */
        public string $ShippingAddress3='',
        /** @var string */
        public string $ShippingPostcode='',
        /** @var string */
        public string $ShippingCountry='',
        /** @var string */
        public string $ShippingCity='',
        /** @var string */
        public string $ShippingOther='',
        /** @var string */
        public string $ShippingPhone='',
        /** @var string */
        public string $ShippingMobilePhone='',
        /** @var string */
        public string $ShippingMail='',
        /** @var string */
        public string $CarrierName='',
        /** @var string */
        public string $CarrierProductCode='',
        /** @var string */
        public string $CarrierTrackingNumber=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['MissionID'])) $this->MissionID = $o['MissionID'];
        if (isset($o['ShippingWeight'])) $this->ShippingWeight = $o['ShippingWeight'];
        if (isset($o['ShippingHeight'])) $this->ShippingHeight = $o['ShippingHeight'];
        if (isset($o['ShippingLenght'])) $this->ShippingLenght = $o['ShippingLenght'];
        if (isset($o['ShippingWidth'])) $this->ShippingWidth = $o['ShippingWidth'];
        if (isset($o['ShippingCompany'])) $this->ShippingCompany = $o['ShippingCompany'];
        if (isset($o['ShippingLastname'])) $this->ShippingLastname = $o['ShippingLastname'];
        if (isset($o['ShippingFirstname'])) $this->ShippingFirstname = $o['ShippingFirstname'];
        if (isset($o['ShippingAddress1'])) $this->ShippingAddress1 = $o['ShippingAddress1'];
        if (isset($o['ShippingAddress2'])) $this->ShippingAddress2 = $o['ShippingAddress2'];
        if (isset($o['ShippingAddress3'])) $this->ShippingAddress3 = $o['ShippingAddress3'];
        if (isset($o['ShippingPostcode'])) $this->ShippingPostcode = $o['ShippingPostcode'];
        if (isset($o['ShippingCountry'])) $this->ShippingCountry = $o['ShippingCountry'];
        if (isset($o['ShippingCity'])) $this->ShippingCity = $o['ShippingCity'];
        if (isset($o['ShippingOther'])) $this->ShippingOther = $o['ShippingOther'];
        if (isset($o['ShippingPhone'])) $this->ShippingPhone = $o['ShippingPhone'];
        if (isset($o['ShippingMobilePhone'])) $this->ShippingMobilePhone = $o['ShippingMobilePhone'];
        if (isset($o['ShippingMail'])) $this->ShippingMail = $o['ShippingMail'];
        if (isset($o['CarrierName'])) $this->CarrierName = $o['CarrierName'];
        if (isset($o['CarrierProductCode'])) $this->CarrierProductCode = $o['CarrierProductCode'];
        if (isset($o['CarrierTrackingNumber'])) $this->CarrierTrackingNumber = $o['CarrierTrackingNumber'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->MissionID)) $o['MissionID'] = $this->MissionID;
        if (isset($this->ShippingWeight)) $o['ShippingWeight'] = $this->ShippingWeight;
        if (isset($this->ShippingHeight)) $o['ShippingHeight'] = $this->ShippingHeight;
        if (isset($this->ShippingLenght)) $o['ShippingLenght'] = $this->ShippingLenght;
        if (isset($this->ShippingWidth)) $o['ShippingWidth'] = $this->ShippingWidth;
        if (isset($this->ShippingCompany)) $o['ShippingCompany'] = $this->ShippingCompany;
        if (isset($this->ShippingLastname)) $o['ShippingLastname'] = $this->ShippingLastname;
        if (isset($this->ShippingFirstname)) $o['ShippingFirstname'] = $this->ShippingFirstname;
        if (isset($this->ShippingAddress1)) $o['ShippingAddress1'] = $this->ShippingAddress1;
        if (isset($this->ShippingAddress2)) $o['ShippingAddress2'] = $this->ShippingAddress2;
        if (isset($this->ShippingAddress3)) $o['ShippingAddress3'] = $this->ShippingAddress3;
        if (isset($this->ShippingPostcode)) $o['ShippingPostcode'] = $this->ShippingPostcode;
        if (isset($this->ShippingCountry)) $o['ShippingCountry'] = $this->ShippingCountry;
        if (isset($this->ShippingCity)) $o['ShippingCity'] = $this->ShippingCity;
        if (isset($this->ShippingOther)) $o['ShippingOther'] = $this->ShippingOther;
        if (isset($this->ShippingPhone)) $o['ShippingPhone'] = $this->ShippingPhone;
        if (isset($this->ShippingMobilePhone)) $o['ShippingMobilePhone'] = $this->ShippingMobilePhone;
        if (isset($this->ShippingMail)) $o['ShippingMail'] = $this->ShippingMail;
        if (isset($this->CarrierName)) $o['CarrierName'] = $this->CarrierName;
        if (isset($this->CarrierProductCode)) $o['CarrierProductCode'] = $this->CarrierProductCode;
        if (isset($this->CarrierTrackingNumber)) $o['CarrierTrackingNumber'] = $this->CarrierTrackingNumber;
        return empty($o) ? new class(){} : $o;
    }
}

class Mission implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ID=0,
        /** @var string */
        public string $Name='',
        /** @var string */
        public string $Info='',
        /** @var bool|null */
        public ?bool $DeleteWhenComplete=null,
        /** @var DateTime|null */
        public ?DateTime $DateBegin=null,
        /** @var DateTime|null */
        public ?DateTime $DateEnd=null,
        /** @var string */
        public string $Owner='',
        /** @var string */
        public string $FinderKey='',
        /** @var array<MissionDetail>|null */
        public ?array $Details=null,
        /** @var array<Container>|null */
        public ?array $Containers=null,
        /** @var array<Work>|null */
        public ?array $Works=null,
        /** @var string */
        public string $Type='',
        /** @var string */
        public string $Trolley='',
        /** @var string */
        public string $Printer='',
        /** @var bool|null */
        public ?bool $Cancelled=null,
        /** @var bool|null */
        public ?bool $Blocked=null,
        /** @var string */
        public string $MissionModification='',
        /** @var string */
        public string $Carrier='',
        /** @var string */
        public string $BatchId='',
        /** @var MissionState|null */
        public ?MissionState $State=null,
        /** @var array<Container>|null */
        public ?array $RelatedContainersFromOtherMissions=null,
        /** @var float */
        public float $TotalQuantity=0.0,
        /** @var float */
        public float $TotalQuantityPrepared=0.0,
        /** @var float */
        public float $TotalQuantityDispatched=0.0,
        /** @var float */
        public float $TotalQuantityPacked=0.0,
        /** @var string */
        public string $GenericData1='',
        /** @var string */
        public string $GenericData2='',
        /** @var string */
        public string $GenericData3='',
        /** @var string */
        public string $Message='',
        /** @var bool|null */
        public ?bool $TransportLabelPrinted=null,
        /** @var bool|null */
        public ?bool $OutputFileGenerated=null,
        /** @var ShippingDetails|null */
        public ?ShippingDetails $ShippingDetails=null,
        /** @var string */
        public string $ConnectorOrigin='',
        /** @var string */
        public string $DispatchAnomalyTempTray=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Info'])) $this->Info = $o['Info'];
        if (isset($o['DeleteWhenComplete'])) $this->DeleteWhenComplete = $o['DeleteWhenComplete'];
        if (isset($o['DateBegin'])) $this->DateBegin = JsonConverters::from('DateTime', $o['DateBegin']);
        if (isset($o['DateEnd'])) $this->DateEnd = JsonConverters::from('DateTime', $o['DateEnd']);
        if (isset($o['Owner'])) $this->Owner = $o['Owner'];
        if (isset($o['FinderKey'])) $this->FinderKey = $o['FinderKey'];
        if (isset($o['Details'])) $this->Details = JsonConverters::fromArray('MissionDetail', $o['Details']);
        if (isset($o['Containers'])) $this->Containers = JsonConverters::fromArray('Container', $o['Containers']);
        if (isset($o['Works'])) $this->Works = JsonConverters::fromArray('Work', $o['Works']);
        if (isset($o['Type'])) $this->Type = $o['Type'];
        if (isset($o['Trolley'])) $this->Trolley = $o['Trolley'];
        if (isset($o['Printer'])) $this->Printer = $o['Printer'];
        if (isset($o['Cancelled'])) $this->Cancelled = $o['Cancelled'];
        if (isset($o['Blocked'])) $this->Blocked = $o['Blocked'];
        if (isset($o['MissionModification'])) $this->MissionModification = $o['MissionModification'];
        if (isset($o['Carrier'])) $this->Carrier = $o['Carrier'];
        if (isset($o['BatchId'])) $this->BatchId = $o['BatchId'];
        if (isset($o['State'])) $this->State = JsonConverters::from('MissionState', $o['State']);
        if (isset($o['RelatedContainersFromOtherMissions'])) $this->RelatedContainersFromOtherMissions = JsonConverters::fromArray('Container', $o['RelatedContainersFromOtherMissions']);
        if (isset($o['TotalQuantity'])) $this->TotalQuantity = $o['TotalQuantity'];
        if (isset($o['TotalQuantityPrepared'])) $this->TotalQuantityPrepared = $o['TotalQuantityPrepared'];
        if (isset($o['TotalQuantityDispatched'])) $this->TotalQuantityDispatched = $o['TotalQuantityDispatched'];
        if (isset($o['TotalQuantityPacked'])) $this->TotalQuantityPacked = $o['TotalQuantityPacked'];
        if (isset($o['GenericData1'])) $this->GenericData1 = $o['GenericData1'];
        if (isset($o['GenericData2'])) $this->GenericData2 = $o['GenericData2'];
        if (isset($o['GenericData3'])) $this->GenericData3 = $o['GenericData3'];
        if (isset($o['Message'])) $this->Message = $o['Message'];
        if (isset($o['TransportLabelPrinted'])) $this->TransportLabelPrinted = $o['TransportLabelPrinted'];
        if (isset($o['OutputFileGenerated'])) $this->OutputFileGenerated = $o['OutputFileGenerated'];
        if (isset($o['ShippingDetails'])) $this->ShippingDetails = JsonConverters::from('ShippingDetails', $o['ShippingDetails']);
        if (isset($o['ConnectorOrigin'])) $this->ConnectorOrigin = $o['ConnectorOrigin'];
        if (isset($o['DispatchAnomalyTempTray'])) $this->DispatchAnomalyTempTray = $o['DispatchAnomalyTempTray'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Info)) $o['Info'] = $this->Info;
        if (isset($this->DeleteWhenComplete)) $o['DeleteWhenComplete'] = $this->DeleteWhenComplete;
        if (isset($this->DateBegin)) $o['DateBegin'] = JsonConverters::to('DateTime', $this->DateBegin);
        if (isset($this->DateEnd)) $o['DateEnd'] = JsonConverters::to('DateTime', $this->DateEnd);
        if (isset($this->Owner)) $o['Owner'] = $this->Owner;
        if (isset($this->FinderKey)) $o['FinderKey'] = $this->FinderKey;
        if (isset($this->Details)) $o['Details'] = JsonConverters::toArray('MissionDetail', $this->Details);
        if (isset($this->Containers)) $o['Containers'] = JsonConverters::toArray('Container', $this->Containers);
        if (isset($this->Works)) $o['Works'] = JsonConverters::toArray('Work', $this->Works);
        if (isset($this->Type)) $o['Type'] = $this->Type;
        if (isset($this->Trolley)) $o['Trolley'] = $this->Trolley;
        if (isset($this->Printer)) $o['Printer'] = $this->Printer;
        if (isset($this->Cancelled)) $o['Cancelled'] = $this->Cancelled;
        if (isset($this->Blocked)) $o['Blocked'] = $this->Blocked;
        if (isset($this->MissionModification)) $o['MissionModification'] = $this->MissionModification;
        if (isset($this->Carrier)) $o['Carrier'] = $this->Carrier;
        if (isset($this->BatchId)) $o['BatchId'] = $this->BatchId;
        if (isset($this->State)) $o['State'] = JsonConverters::to('MissionState', $this->State);
        if (isset($this->RelatedContainersFromOtherMissions)) $o['RelatedContainersFromOtherMissions'] = JsonConverters::toArray('Container', $this->RelatedContainersFromOtherMissions);
        if (isset($this->TotalQuantity)) $o['TotalQuantity'] = $this->TotalQuantity;
        if (isset($this->TotalQuantityPrepared)) $o['TotalQuantityPrepared'] = $this->TotalQuantityPrepared;
        if (isset($this->TotalQuantityDispatched)) $o['TotalQuantityDispatched'] = $this->TotalQuantityDispatched;
        if (isset($this->TotalQuantityPacked)) $o['TotalQuantityPacked'] = $this->TotalQuantityPacked;
        if (isset($this->GenericData1)) $o['GenericData1'] = $this->GenericData1;
        if (isset($this->GenericData2)) $o['GenericData2'] = $this->GenericData2;
        if (isset($this->GenericData3)) $o['GenericData3'] = $this->GenericData3;
        if (isset($this->Message)) $o['Message'] = $this->Message;
        if (isset($this->TransportLabelPrinted)) $o['TransportLabelPrinted'] = $this->TransportLabelPrinted;
        if (isset($this->OutputFileGenerated)) $o['OutputFileGenerated'] = $this->OutputFileGenerated;
        if (isset($this->ShippingDetails)) $o['ShippingDetails'] = JsonConverters::to('ShippingDetails', $this->ShippingDetails);
        if (isset($this->ConnectorOrigin)) $o['ConnectorOrigin'] = $this->ConnectorOrigin;
        if (isset($this->DispatchAnomalyTempTray)) $o['DispatchAnomalyTempTray'] = $this->DispatchAnomalyTempTray;
        return empty($o) ? new class(){} : $o;
    }
}

class AreMissionsAlreadyAssigned implements JsonSerializable
{
    public function __construct(
        /** @description Missions list */
        // @ApiMember(Description="Missions list", IsRequired=true)
        /** @var array<Mission>|null */
        public ?array $Missions=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Missions'])) $this->Missions = JsonConverters::fromArray('Mission', $o['Missions']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Missions)) $o['Missions'] = JsonConverters::toArray('Mission', $this->Missions);
        return empty($o) ? new class(){} : $o;
    }
}

PHP AreMissionsAlreadyAssigned DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /AreMissionsAlreadyAssigned/ HTTP/1.1 
Host: clouddemo.pickeos.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Missions: 
	[
		{
			ID: 0,
			Name: String,
			Info: String,
			DeleteWhenComplete: False,
			DateBegin: 0001-01-01,
			DateEnd: 0001-01-01,
			Owner: String,
			FinderKey: String,
			Details: 
			[
				{
					ID: 0,
					MissionID: 0,
					Label: String,
					Reference: String,
					Quantity: 0,
					PreparedQuantity: 0,
					PackedQuantity: 0,
					Positions: 
					[
						{
							ID: 0,
							Key: String,
							Pixel: 0,
							Width: 0,
							AreaID: 0,
							AreaLabel: String,
							Label: String,
							StockroomID: 0
						}
					],
					Tray: String,
					StockLocation: String,
					LineNumber: 0,
					Info: String,
					GTIN: String,
					SupplierReference: String,
					PickingIndex: 0,
					TraceabilityDetails: 
					[
						{
							IDMissionDetail: 0,
							PreparedQuantity: 0,
							Batch: String,
							ContainerID: 0,
							ContainerName: String,
							ContainerSizeXCm: 0,
							ContainerSizeYCm: 0,
							ContainerSizeZCm: 0,
							ContainerWeight: 0,
							StockroomID: 0,
							StockroomName: String,
							Operator: String,
							VersionSelected: String
						}
					],
					TraceabilityDetailsPacking: 
					[
						{
							IDMissionDetail: 0,
							PreparedQuantity: 0,
							Batch: String,
							ContainerID: 0,
							ContainerName: String,
							ContainerSizeXCm: 0,
							ContainerSizeYCm: 0,
							ContainerSizeZCm: 0,
							ContainerWeight: 0,
							StockroomID: 0,
							StockroomName: String,
							Operator: String,
							VersionSelected: String
						}
					],
					Substitutable: False,
					SubstitutionRef: String,
					TraceabilityBatch: String,
					Data1: String,
					Data2: String,
					Data3: String,
					Data4: String,
					Data5: String,
					Data6: String,
					Data7: String,
					Data8: String,
					Data9: String,
					Data10: String,
					Data11: String,
					Data12: String,
					PackageReference: String,
					NbSKUInPackage: 0,
					PackageReference2: String,
					NbSKUInPackage2: 0,
					ContainerID: 0,
					Container: 
					{
						ContainerID: 0,
						ContainerCode: String,
						Location: String,
						DimensionX: {},
						DimensionY: {},
						DimensionZ: {},
						Deleted: False
					},
					WeightPerItemInKg: 0,
					VolumePerItemInM3: 0,
					PictureURL: String,
					Stock: 
					{
						StockID: 0,
						ProductID: String,
						ProductAttributeID: String,
						Reference: String,
						Gtin: String,
						GtinAttribute: String,
						Label: String,
						StockLocation: String,
						PhysicalQuantityStockLocation: 0,
						ReserveStockLocation: String,
						PhysicalQuantityReserveStockLocation: 0,
						NbSKUInPackage: 0,
						PackageReference: String,
						NbSKUInPackage2: 0,
						PackageReference2: String,
						Weight: String,
						FillInBatchNumber: False,
						FillInDate: False,
						PictureURL: String,
						StockAdditionals: 
						[
							{
								StockID: 0,
								Gtin: String,
								StockLocation: String,
								PhysicalQuantityStockLocation: 0
							}
						],
						SearchKey: String-String-String-String-String
					},
					QuantityUnit: String,
					Comments: 
					{
						ID: 0,
						MissionDetailID: 0,
						Comment: String,
						Timestamp: 0001-01-01,
						Operator: String
					},
					ShortageQuantity: 0,
					ItemPreparationDate: 0001-01-01,
					CreationDateTime: 0001-01-01,
					QuantityDispatched: 0,
					Versions: 
					[
						String
					],
					QuantityBreakage: 0,
					IsProductCritical: False,
					Owner: String,
					StockroomID: 0
				}
			],
			Containers: 
			[
				{
					ContainerID: 0,
					ContainerCode: String,
					Location: String,
					DimensionX: {},
					DimensionY: {},
					DimensionZ: {},
					Deleted: False
				}
			],
			Works: 
			[
				{
					WorkID: 0,
					MissionID: 0,
					Owner: String,
					Duration: PT0S,
					DateBegin: 0001-01-01,
					DateEnd: 0001-01-01
				}
			],
			Type: String,
			Trolley: String,
			Printer: String,
			Cancelled: False,
			Blocked: False,
			MissionModification: String,
			Carrier: String,
			BatchId: String,
			State: New,
			RelatedContainersFromOtherMissions: 
			[
				{
					ContainerID: 0,
					ContainerCode: String,
					Location: String,
					DimensionX: {},
					DimensionY: {},
					DimensionZ: {},
					Deleted: False
				}
			],
			TotalQuantity: 0,
			TotalQuantityPrepared: 0,
			TotalQuantityDispatched: 0,
			TotalQuantityPacked: 0,
			GenericData1: String,
			GenericData2: String,
			GenericData3: String,
			Message: String,
			TransportLabelPrinted: False,
			OutputFileGenerated: False,
			ShippingDetails: 
			{
				MissionID: 0,
				ShippingWeight: 0,
				ShippingHeight: 0,
				ShippingLenght: 0,
				ShippingWidth: 0,
				ShippingCompany: String,
				ShippingLastname: String,
				ShippingFirstname: String,
				ShippingAddress1: String,
				ShippingAddress2: String,
				ShippingAddress3: String,
				ShippingPostcode: String,
				ShippingCountry: String,
				ShippingCity: String,
				ShippingOther: String,
				ShippingPhone: String,
				ShippingMobilePhone: String,
				ShippingMail: String,
				CarrierName: String,
				CarrierProductCode: String,
				CarrierTrackingNumber: String
			},
			ConnectorOrigin: String,
			DispatchAnomalyTempTray: String
		}
	]
}