Files

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]
);
}
}