255], [['room_id'], 'exist', 'skipOnError' => true, 'targetClass' => Room::className(), 'targetAttribute' => ['room_id' => 'id']], [['board_id'], 'exist', 'skipOnError' => true, 'targetClass' => Board::className(), 'targetAttribute' => ['board_id' => 'id']], [['sort_order', 'update_interval', 'save_history_interval'], 'default', 'value' => 0], [['active'], 'default', 'value' => true], [['active'], 'boolean'], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => Yii::t('app', 'ID'), 'active' => Yii::t('app', 'Активно'), 'type' => Yii::t('app', 'Тип'), 'update_interval' => Yii::t('app', 'Интервал обновления'), 'save_history_interval' => Yii::t('app', 'Интервал сохранения в историю'), 'room_id' => Yii::t('app', 'Комната'), 'board_id' => Yii::t('app', 'Плата'), 'url' => Yii::t('app', 'Url'), 'pin' => Yii::t('app', 'Pin'), 'name' => Yii::t('app', 'Название'), 'icon' => Yii::t('app', 'Иконка'), 'bg' => Yii::t('app', 'Фон'), 'class' => Yii::t('app', 'Кастомный Класс'), 'sort_order' => Yii::t('app', 'Порядок сортировки'), ]; } /** * @return \yii\db\ActiveQuery */ public function getHistories() { return $this->hasMany(History::className(), ['item_id' => 'id'])->inverseOf('item'); } /** * @return \yii\db\ActiveQuery */ public function getRoom() { return $this->hasOne(Room::className(), ['id' => 'room_id'])->inverseOf('items'); } /** * @return \yii\db\ActiveQuery */ public function getBoard() { return $this->hasOne(Board::className(), ['id' => 'board_id'])->inverseOf('items'); } /** * @inheritdoc * @return ItemQuery the active query used by this AR class. */ public static function find() { return new ItemQuery(get_called_class()); } public static function getTypesArray() { return [ self::TYPE_SWITCH => 'Переключатель', self::TYPE_VARIABLE => 'Переменная', self::TYPE_VARIABLE_BOOLEAN => 'Переменная булев', self::TYPE_VARIABLE_BOOLEAN_DOOR => 'Переменная булев дверь', self::TYPE_VARIABLE_TEMPERATURE => 'Переменная температура', self::TYPE_VARIABLE_HUMIDITY => 'Переменная влажность', self::TYPE_RGB => 'RGB', ]; } public function getTypeLabel() { return self::getTypesArray()[$this->type]; } public static function getList() { return ArrayHelper::map(self::find()->all(), 'id', 'name'); } }