49 lines
1.2 KiB
PHP
49 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Features\Settings\Repositories;
|
|
|
|
use App\Features\Settings\Models\SaveFile;
|
|
use App\Features\Settings\Models\UserSetting;
|
|
use App\Models\User;
|
|
|
|
class SettingsRepository
|
|
{
|
|
public function __construct(
|
|
private SaveFile $saveFileModel,
|
|
private UserSetting $userSettingModel
|
|
) {}
|
|
|
|
public function getUserSaves(User $user)
|
|
{
|
|
return $this->saveFileModel
|
|
->where('user_id', $user->id)
|
|
->with('game')
|
|
->get();
|
|
}
|
|
|
|
public function getUserSettings(User $user)
|
|
{
|
|
return $this->userSettingModel
|
|
->where('user_id', $user->id)
|
|
->get();
|
|
}
|
|
|
|
public function getSetting(User $user, string $key, mixed $default = null): mixed
|
|
{
|
|
$setting = $this->userSettingModel
|
|
->where('user_id', $user->id)
|
|
->where('setting_key', $key)
|
|
->first();
|
|
|
|
return $setting?->setting_value ?? $default;
|
|
}
|
|
|
|
public function setSetting(User $user, string $key, mixed $value): void
|
|
{
|
|
$this->userSettingModel->updateOrCreate(
|
|
['user_id' => $user->id, 'setting_key' => $key],
|
|
['setting_value' => $value]
|
|
);
|
|
}
|
|
}
|