1
0
mirror of synced 2025-01-09 10:47:08 +03:00
DeliveryModuleBundle/Model/DeliveryDataField.php

158 lines
4.6 KiB
PHP
Raw Normal View History

2019-12-26 17:47:33 +03:00
<?php
namespace RetailCrm\DeliveryModuleBundle\Model;
use JMS\Serializer\Annotation as Serializer;
class DeliveryDataField
{
const TYPE_INTEGER = 'integer';
const TYPE_TEXT = 'text';
const TYPE_AUTOCOMPLETE = 'autocomplete';
const TYPE_CHECKBOX = 'checkbox';
const TYPE_CHOICE = 'choice';
const TYPE_DATE = 'date';
/**
* Код поля.
*
* @var string
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("code")
* @Serializer\Type("string")
*/
public $code;
/**
* Имя поля.
*
* @var string
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("label")
* @Serializer\Type("string")
*/
public $label;
/**
* Пояснение к полю.
*
* @var string
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("hint")
* @Serializer\Type("string")
*/
public $hint;
/**
* Тип поля. Возможны варианты (
* integer - числовое поле,
* text - текстовое поле,
* autocomplete - автокомплит поле,
* checkbox,
* choice - выпадающий список,
* date - поле с датой).
*
* @var string
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("type")
* @Serializer\Type("string")
*/
public $type;
/**
* Указывается для типа поля choice. Означает что можно выбирать несколько вариантов.
*
* @var bool
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("multiple")
* @Serializer\Type("boolean")
*/
public $multiple = false;
/**
* Указывается для типа поля choice. Список возможных вариантов в выпадающем списке. Обязателен если тип поля choice.
*
* @var array
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("choices")
* @Serializer\Type("array")
*/
public $choices;
/**
* Указывается для типа поля autocomplete. Адрес, по окторому можно получить данные для автокомплит поля.
*
* @var string
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("autocompleteUrl")
* @Serializer\Type("string")
*/
public $autocompleteUrl;
/**
* Указывается для типа поля autocomplete. Можно искать без указания строки поиска
* (при нажатии на поле сразу вывалится список с вариантами).
*
* @var bool
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("allowedEmptyTerm")
* @Serializer\Type("boolean")
*/
public $allowedEmptyTerm = false;
/**
* Видимость поля на форме.
*
* @var bool
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("visible")
* @Serializer\Type("boolean")
*/
public $isVisible = true;
/**
* Поле обязательно для заполнения.
*
* @var bool
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("required")
* @Serializer\Type("boolean")
*/
public $isRequired = false;
/**
* Поле влияет на стоимость доставки. Если true - значение поля используется в методе calculate.
*
* @var bool
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("affectsCost")
* @Serializer\Type("boolean")
*/
public $isAffectsCost = false;
/**
* Разрешено ли редактировать поле.
* Если false - поле информационное - заполняется только данными,
* полученными напрямую от службы доставки (
* например стоимость страховки - может заполняться после оформления доставки или при расчете стоимости).
*
* @var bool
*
* @Serializer\Groups({"get", "set"})
* @Serializer\SerializedName("editable")
* @Serializer\Type("boolean")
*/
public $isEditable = true;
}