Completed
Push — master ( 818d6c...4fa42c )
by Konstantin
01:58
created

Note::get()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 0
crap 1
1
<?php
2
3
namespace linkprofit\AmoCRM\entities;
4
5
use linkprofit\AmoCRM\traits\FieldsTrait;
6
7
/**
8
 * Class Note
9
 * @package linkprofit\AmoCRM\entities
10
 */
11
class Note implements EntityInterface
12
{
13
    /**
14
     * Контакт
15
     */
16
    const CONTACT_ELEMENT_TYPE = 1;
17
18
    /**
19
     * Сделка
20
     */
21
    const LEAD_ELEMENT_TYPE = 2;
22
23
    /**
24
     * Компания
25
     */
26
    const COMPANY_ELEMENT_TYPE = 3;
27
28
    /**
29
     * Задача. Для задачи доступен только тип события TASK_RESULT
30
     */
31
    const TASK_ELEMENT_TYPE = 4;
32
33
    /**
34
     * Покупатель
35
     */
36
    const CUSTOMER_ELEMENT_TYPE = 12;
37
38
39
    /**
40
     * Сделка создана
41
     */
42
    const DEAL_CREATED = 1;
43
44
    /**
45
     * Контакт создан
46
     */
47
    const CONTACT_CREATED = 2;
48
49
    /**
50
     * Статус сделки изменен
51
     */
52
    const DEAL_STATUS_CHANGED = 3;
53
54
    /**
55
     * Обычное примечание
56
     */
57
    const COMMON = 4;
58
59
    /**
60
     * Входящий звонок
61
     */
62
    const CALL_IN = 10;
63
64
    /**
65
     * Исходящий звонок
66
     */
67
    const CALL_OUT = 11;
68
69
    /**
70
     * Компания создана
71
     */
72
    const COMPANY_CREATED = 12;
73
74
    /**
75
     * Результат по задаче
76
     */
77
    const TASK_RESULT = 13;
78
79
    /**
80
     * Системное сообщение
81
     */
82
    const SYSTEM = 25;
83
84
    /**
85
     * Входящее смс
86
     */
87
    const SMS_IN = 102;
88
89
    /**
90
     * Исходящее смс
91
     */
92
    const SMS_OUT = 102;
93
94
95
    /**
96
     * @var int Уникальный идентификатор обновляемой задачи
97
     */
98
    public $id;
99
100
    /**
101
     * @var int id элемента, в карточку которого будет добавлено событие
102
     */
103
    public $element_id;
104
105
    /**
106
     * @var int Тип сущности элемента, в карточку которого будет добавлено событие.
107
     */
108
    public $element_type;
109
110
    /**
111
     * @var string Текст события
112
     */
113
    public $text;
114
115
    /**
116
     * @var integer Тип добавляемого события
117
     */
118
    public $note_type;
119
120
    /**
121
     * @var string Дата создания данной задачи (необязательный параметр)
122
     */
123
    public $created_at;
124
125
    /**
126
     * @var string Дата последнего изменения данной задачи (обязательный параметр при обновлении)
127
     */
128
    public $updated_at;
129
130
    /**
131
     * @var int Уникальный идентификатор ответственного пользователя
132
     */
133
    public $responsible_user_id;
134
135
    /**
136
     * @var int Массив с передаваемой информацией для определённых типов событий
137
     */
138
    public $params;
139
140
    /**
141
     * @var array
142
     */
143
    protected $fieldList = [
144
        'id', 'element_id', 'element_type', 'note_type',
145
        'text', 'created_at', 'updated_at', 'responsible_user_id'
146
    ];
147
148
    use FieldsTrait;
149
150
    /**
151
     * @return array
152
     */
153 8
    public function get()
154
    {
155 8
        $fields = $this->getExistedValues($this->fieldList);
156
157 8
        return $fields;
158
    }
159
160
    /**
161
     * @param $array
162
     */
163 3
    public function set($array)
164
    {
165 3
        $this->setFromArray($this->fieldList, $array);
166 3
    }
167
168
    /**
169
     * @param EntityInterface $element
170
     * @return bool
171
     */
172 5
    public function linkElement(EntityInterface $element)
173
    {
174 5
        if (empty($element->id)) {
175 1
            return false;
176
        }
177
178 4
        if ($element instanceof Contact) {
179 1
            $this->element_type = self::CONTACT_ELEMENT_TYPE;
180 3
        } elseif ($element instanceof Lead) {
181 1
            $this->element_type = self::LEAD_ELEMENT_TYPE;
182 2
        } elseif($element instanceof Task) {
183 1
            $this->element_type = self::TASK_ELEMENT_TYPE;
184 1
            $this->note_type = self::TASK_RESULT;
185
        } else {
186 1
            return false;
187
        }
188
189 3
        $this->element_id = $element->id;
190
191 3
        return true;
192
    }
193
}