<?php /* * SPDX-FileCopyrightText: 2022 Andreas Palm * * SPDX-License-Identifier: AGPL-3.0-only */ namespace Xentral\Carrier\SendCloud\Data; class ParcelItem { public string $HsCode; /** * @var int weight in grams */ public int $Weight; public int $Quantity; public string $Description; public string $OriginCountry; public float $Price; public ?string $Sku = null; public ?string $ProductId = null; public function toApiRequest(): array { return [ 'hs_code' => $this->HsCode, 'weight' => number_format($this->Weight / 1000, 3, '.', null), 'quantity' => $this->Quantity, 'description' => $this->Description, 'value' => $this->Price, 'origin_country' => $this->OriginCountry, 'sku' => $this->Sku ?? '', 'product_id' => $this->ProductId ?? '', ]; } public static function fromApiResponse(object $data): ParcelItem { $obj = new ParcelItem(); $obj->HsCode = $data->hs_code; $obj->Weight = intval(floatval($data->weight)*1000); $obj->Quantity = $data->quantity; $obj->Description = $data->description; $obj->Price = $data->value; $obj->OriginCountry = $data->origin_country; $obj->Sku = $data->sku; $obj->ProductId = $data->product_id; return $obj; } }