<?php /* * SPDX-FileCopyrightText: 2022 Andreas Palm * * SPDX-License-Identifier: LicenseRef-EGPL-3.1 */ namespace Xentral\Modules\ShippingMethod\Model; class Product { const SERVICE_COD = 'cod'; const SERVICE_PREMIUM = 'premium'; public string $Id; public string $Name; public float $LengthMin = 0; public float $LengthMax = 500; public float $WidthMin = 0; public float $WidthMax = 500; public float $HeightMin = 0; public float $HeightMax = 500; public float $WeightMin = 0; public float $WeightMax = 100; public array $AvailableServices = []; public static function Create(string $id, string $name):Product { $obj = new Product(); $obj->Id = $id; $obj->Name = $name; return $obj; } public function WithLength(float $min, float $max): Product { $this->LengthMin = $min; $this->LengthMax = $max; return $this; } public function WithWidth(float $min, float $max): Product { $this->WidthMin = $min; $this->WidthMax = $max; return $this; } public function WithHeight(float $min, float $max): Product { $this->HeightMin = $min; $this->HeightMax = $max; return $this; } public function WithWeight(float $min, float $max): Product { $this->WeightMin = $min; $this->WeightMax = $max; return $this; } public function WithServices(array $services): Product { $this->AvailableServices = $services; return $this; } }