Completed
Push — master ( 2f7f6c...a88bdd )
by Alexey
05:49
created

Option::relations()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 12

Duplication

Lines 18
Ratio 100 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 12
c 1
b 0
f 0
nc 1
nop 0
dl 18
loc 18
rs 9.4285
1
<?php
2
3
/**
4
 * Item option
5
 *
6
 * @author Alexey Krupskiy <[email protected]>
7
 * @link http://inji.ru/
8
 * @copyright 2015 Alexey Krupskiy
9
 * @license https://github.com/injitools/cms-Inji/blob/master/LICENSE
10
 */
11
12
namespace Ecommerce\Item\Offer;
13
14 View Code Duplication
class Option extends \Model
15
{
16
    public static $objectName = 'Свойство предложения';
17
    public static $cols = [
18
        //Основные параметры
19
        'name' => ['type' => 'text'],
20
        'filter_name' => ['type' => 'text'],
21
        'image_file_id' => ['type' => 'image'],
22
        'code' => ['type' => 'text'],
23
        'type' => ['type' => 'text'],
24
        'postfix' => ['type' => 'text'],
25
        'default_val' => ['type' => 'text'],
26
        'view' => ['type' => 'bool'],
27
        'searchable' => ['type' => 'bool'],
28
        //Системные
29
        'weight' => ['type' => 'number'],
30
        'user_id' => ['type' => 'select', 'source' => 'relation', 'relation' => 'user'],
31
        'advance' => ['type' => 'text'],
32
        'date_create' => ['type' => 'dateTime'],
33
        //Менеджеры
34
        'item' => ['type' => 'dataManager', 'relation' => 'items'],
35
    ];
36
    public static $labels = [
37
        'name' => 'Название',
38
        'filter_name' => 'Название в фильтре',
39
        'image_file_id' => 'Иконка',
40
        'code' => 'Код',
41
        'type' => 'Тип',
42
        'postfix' => 'Постфикс',
43
        'default_val' => 'Значение по умолчанию',
44
        'view' => 'Отображается',
45
        'searchable' => 'Используется при поиске',
46
        'weight' => 'Вес сортировки',
47
        'advance' => 'Дополнительные параметры',
48
        'user_id' => 'Создатель',
49
        'date_create' => 'Дата создания',
50
        'item' => 'Значения для списка'
51
    ];
52
    public static $dataManagers = [
53
        'manager' => [
54
            'name' => 'Свойства предложения',
55
            'cols' => [
56
                'name', 'code', 'type', 'item', 'view', 'searchable', 'user_id', 'date_create'
57
            ]
58
        ]
59
    ];
60
    public static $forms = [
61
        'manager' => [
62
            'map' => [
63
                ['name', 'filter_name'],
64
                ['code', 'type', 'image_file_id'],
65
                ['default_val', 'postfix'],
66
                ['view', 'searchable'],
67
                ['item']
68
            ]
69
        ]
70
    ];
71
72
    public static function relations()
73
    {
74
        return [
75
            'user' => [
76
                'model' => 'Users\User',
77
                'col' => 'user_id'
78
            ],
79
            'items' => [
80
                'type' => 'many',
81
                'model' => 'Ecommerce\Item\Offer\Option\Item',
82
                'col' => 'item_offer_option_id'
83
            ],
84
            'image' => [
85
                'model' => 'Files\File',
86
                'col' => 'image_file_id'
87
            ],
88
        ];
89
    }
90
91
    public function beforeSave()
92
    {
93
        if (!isset($this->id)) {
94
            $this->user_id = \Users\User::$cur->id;
95
        }
96
    }
97
98
}
99