97 lines
2.3 KiB
PHP
97 lines
2.3 KiB
PHP
<?php
|
||
|
||
namespace RetailCrm\DeliveryModuleBundle\Model;
|
||
|
||
use Symfony\Component\Validator\Mapping\ClassMetadata;
|
||
use Symfony\Component\Validator\Constraints as Assert;
|
||
use JMS\Serializer\Annotation as Serializer;
|
||
|
||
class Package
|
||
{
|
||
/**
|
||
* Идентификатор упаковки
|
||
* @var string
|
||
*
|
||
* @Serializer\Groups({"request"})
|
||
* @Serializer\SerializedName("packageId")
|
||
* @Serializer\Type("string")
|
||
*/
|
||
public $packageId;
|
||
|
||
/**
|
||
* Вес г.
|
||
* @var float
|
||
*
|
||
* @Serializer\Groups({"request", "calculate"})
|
||
* @Serializer\SerializedName("weight")
|
||
* @Serializer\Type("float")
|
||
*/
|
||
public $weight;
|
||
|
||
/**
|
||
* Ширина мм.
|
||
* @var integer
|
||
*
|
||
* @Serializer\Groups({"request", "calculate"})
|
||
* @Serializer\SerializedName("width")
|
||
* @Serializer\Type("integer")
|
||
*/
|
||
public $width;
|
||
|
||
/**
|
||
* Длина мм.
|
||
* @var integer
|
||
*
|
||
* @Serializer\Groups({"request", "calculate"})
|
||
* @Serializer\SerializedName("length")
|
||
* @Serializer\Type("integer")
|
||
*/
|
||
public $length;
|
||
|
||
/**
|
||
* Высота мм.
|
||
* @var integer
|
||
*
|
||
* @Serializer\Groups({"request", "calculate"})
|
||
* @Serializer\SerializedName("height")
|
||
* @Serializer\Type("integer")
|
||
*/
|
||
public $height;
|
||
|
||
/**
|
||
* Содержимое упаковки
|
||
* @var PackageItem[]
|
||
*
|
||
* @Serializer\Groups({"request"})
|
||
* @Serializer\SerializedName("items")
|
||
* @Serializer\Type("array<RetailCrm\DeliveryModuleBundle\Model\PackageItem>")
|
||
*/
|
||
public $items;
|
||
|
||
public function __construct($weight = null, $width = null, $length = null, $height = null)
|
||
{
|
||
$this->weight = $weight;
|
||
$this->width = $width;
|
||
$this->length = $length;
|
||
$this->height = $height;
|
||
}
|
||
|
||
public function getVolume()
|
||
{
|
||
if (!is_null($this->length)
|
||
&& !is_null($this->width)
|
||
&& !is_null($this->height)
|
||
) {
|
||
return $this->length * $this->width * $this->height;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public static function loadValidatorMetadata(ClassMetadata $metadata)
|
||
{
|
||
$metadata
|
||
->addPropertyConstraint('weight', new Assert\NotBlank());
|
||
}
|
||
}
|