File: /var/www/heifetz/heifetz-app/models/UsersMeta.php
<?php
namespace Models;
use Core\DbLib\NewDbModel;
use Core\Models\CoreHelper;
/**
* @property int $user_id
* @property string $key
* @property string $value
* @property int $company_id
*/
class UsersMeta extends NewDbModel
{
static string $tableName = 'users_meta';
static array $primaryKeys = ['user_id', 'key', 'value', 'company_id'];
const TICKET_SOUND_NOTIFICATION = 'ticket_sound_notification';
public static array $keys = [
self::TICKET_SOUND_NOTIFICATION,
];
public static function getRules(): array
{
return [
'user_id' => 'required|integer',
'key' => 'required|size:255',
'value' => 'required|text',
];
}
protected static function getTranslations(): array
{
return [
'user_id' => 'ID пользователя',
'key' => 'Ключ',
'value' => 'Значение',
];
}
public static function getByUserIdAndKey(int $userId, string $key): ?string
{
$value = self::model(['value'])->where('user_id = ?', $userId)->where('key = ?', $key)->fetchCol();
return $value[0] ?? null;
}
public static function add(int $userId, string $key, string $value): void
{
if (!in_array($key, self::$keys)) {
return;
}
$newUserMeta = new self();
$newUserMeta->user_id = $userId;
$newUserMeta->key = $key;
$newUserMeta->value = $value;
$newUserMeta->save();
}
public static function removeMeta(int $userId, string $key): void
{
self::delete(['user_id' => $userId, 'key' => $key, 'company_id' => CoreHelper::$companyId]);
}
}