netgescon-master/app/helpers.php
Pikappa2 2d6fba0e60 🔧 Risoluzione errori migrazioni e aggiornamento DATA_ARCHITECTURE.md
- Corretti errori di foreign key nelle migrazioni
- Rimosso userSetting() non definito e aggiunto helpers.php
- Aggiornati modelli PianoRateizzazione e Rata con relazioni corrette
- Aggiornato DATA_ARCHITECTURE.md con nuovi modelli per ripartizione spese
- Corrette dipendenze tra tabelle nelle migrazioni
2025-07-09 00:47:16 +02:00

69 lines
1.7 KiB
PHP

<?php
if (!function_exists('userSetting')) {
/**
* Ottiene un'impostazione utente
*
* @param string $key
* @param mixed $default
* @return mixed
*/
function userSetting($key, $default = null)
{
if (!auth()->check()) {
return $default;
}
$user = auth()->user();
// Se l'utente ha un campo settings
if (isset($user->settings) && is_array($user->settings)) {
return $user->settings[$key] ?? $default;
}
// Se l'utente ha una relazione settings
if (method_exists($user, 'settings')) {
$setting = $user->settings()->where('key', $key)->first();
return $setting ? $setting->value : $default;
}
return $default;
}
}
if (!function_exists('setUserSetting')) {
/**
* Imposta un'impostazione utente
*
* @param string $key
* @param mixed $value
* @return bool
*/
function setUserSetting($key, $value)
{
if (!auth()->check()) {
return false;
}
$user = auth()->user();
// Se l'utente ha un campo settings
if (isset($user->settings)) {
$settings = is_array($user->settings) ? $user->settings : [];
$settings[$key] = $value;
$user->settings = $settings;
return $user->save();
}
// Se l'utente ha una relazione settings
if (method_exists($user, 'settings')) {
return $user->settings()->updateOrCreate(
['key' => $key],
['value' => $value]
);
}
return false;
}
}