netgescon-master/app/Observers/UserObserver.php
2025-07-20 14:57:25 +00:00

39 lines
876 B
PHP

<?php
namespace App\Observers;
use App\Models\User;
use Illuminate\Support\Facades\DB;
class UserObserver
{
/**
* Handle the User "creating" event.
*/
public function creating(User $user): void
{
if (empty($user->codice_univoco)) {
$user->codice_univoco = $this->generateCodiceUnivoco();
}
}
/**
* Genera un codice univoco di 8 caratteri alfanumerici
*/
private function generateCodiceUnivoco(): string
{
$characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
do {
$codice = '';
for ($i = 0; $i < 8; $i++) {
$codice .= $characters[random_int(0, 35)];
}
$exists = DB::table('users')->where('codice_univoco', $codice)->exists();
} while ($exists);
return $codice;
}
}