Completed
Push — master ( 1565b3...a35685 )
by Konstantin
03:55 queued 01:55
created

Field::linkEnumArray()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 9.4285
cc 1
eloc 3
nc 1
nop 1
crap 1
1
<?php
2
3
namespace linkprofit\AmoCRM\entities;
4
5
use linkprofit\AmoCRM\traits\FieldsMergeable;
6
7
/**
8
 * Class Field
9
 * @package linkprofit\AmoCRM\entities
10
 */
11
class Field extends BaseEntity
12
{
13
    /**
14
     * Обыное текстовое поле
15
     */
16
    const TEXT = 1;
17
18
    /**
19
     * Текстовое поле с возможностью передавать только цифры
20
     */
21
    const NUMERIC = 2;
22
23
    /**
24
     * Поле обозначающее только наличие или отсутствие свойства (например: "да"/"нет")
25
     */
26
    const CHECKBOX = 3;
27
28
    /**
29
     * Поле типа список с возможностью выбора одного элемента
30
     */
31
    const SELECT = 4;
32
33
    /**
34
     * Поле типа список c возможностью выбора нескольких элементов списка
35
     */
36
    const MULTISELECT = 5;
37
38
    /**
39
     * Поле типа дата возвращает и принимает значения в формате (Y-m-d H:i:s)
40
     */
41
    const DATE = 6;
42
43
    /**
44
     * Обычное текстовое поле предназначенное для ввода URL адресов
45
     */
46
    const URL = 7;
47
48
    /**
49
     * Поле textarea содержащее большое количество текста
50
     */
51
    const MULTITEXT = 8;
52
53
    /**
54
     * Поле textarea содержащее большое количество текста
55
     */
56
    const TEXTAREA = 9;
57
58
    /**
59
     * Поле типа переключатель
60
     */
61
    const RADIOBUTTON = 10;
62
63
    /**
64
     * Короткое поле адрес
65
     */
66
    const STREETADDRESS = 11;
67
68
    /**
69
     * Поле адрес (в интерфейсе является набором из нескольких полей)
70
     */
71
    const SMART_ADDRESS = 13;
72
73
    /**
74
     * Поле типа дата поиск по которому осуществляется без учета года, значения в формате (Y-m-d H:i:s)
75
     */
76
    const BIRTHDAY = 14;
77
78
79
    /**
80
     * Контакт
81
     */
82
    const CONTACT_ELEMENT_TYPE = 1;
83
84
    /**
85
     * Сделка
86
     */
87
    const LEAD_ELEMENT_TYPE = 2;
88
89
    /**
90
     * Компания
91
     */
92
    const COMPANY_ELEMENT_TYPE = 3;
93
94
    /**
95
     * Покупатель
96
     */
97
    const CUSTOMER_ELEMENT_TYPE = 12;
98
99
100
    /**
101
     * @var string Название поля
102
     */
103
    public $name;
104
105
    /**
106
     * @var integer Тип поля
107
     */
108
    public $field_type;
109
110
    /**
111
     * @var integer Тип сущности
112
     */
113
    public $element_type;
114
115
    /**
116
     * @var string Уникальный идентификатор сервиса, по которому будет доступно удаление и изменение поля
117
     */
118
    public $origin;
119
120
    /**
121
     * @var bool
122
     */
123
    public $is_editable;
124
125
    /**
126
     * @var string Массив значений для списка или мультисписка. Значения указываются строковыми переменными, через запятую.
127
     */
128
    public $enums;
129
130
    /**
131
     * @var integer Уникальный идентификатор записи в клиентской программе (необязательный параметр). Информация о request_id нигде не сохраняется.
132
     */
133
    public $request_id;
134
135
    /**
136
     * @var array
137
     */
138
    protected $fieldList = ['id', 'name', 'element_type', 'field_type', 'origin', 'is_editable', 'enums', 'request_id'];
139
140
    use FieldsMergeable;
141
142
    /**
143
     * @param $enum
144
     */
145 1
    public function linkEnum($enum)
146
    {
147 1
        $this->mergeStringToField($enum, 'enums');
148 1
    }
149
150
    /**
151
     * @param $enums
152
     */
153 1
    public function linkEnumArray($enums)
154
    {
155 1
        $this->enums = '';
156 1
        array_map([$this, 'linkEnum'], $enums);
157
    }
158
}