This commit is contained in:
2025-04-12 23:28:09 +03:00
parent 3d4260d57e
commit 2ff11c2640
14 changed files with 1374 additions and 266 deletions
+35 -17
View File
@@ -7,6 +7,8 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Laravel\Sanctum\HasApiTokens;
use Illuminate\Support\Str;
class User extends Authenticatable
{
@@ -20,6 +22,7 @@ class User extends Authenticatable
*/
protected $fillable = [
'name',
'slug',
'email',
'password',
];
@@ -44,6 +47,38 @@ class User extends Authenticatable
'password' => 'hashed',
];
protected static function boot()
{
parent::boot();
static::creating(function ($user) {
$user->slug = Str::slug($user->name);
});
static::updating(function ($user) {
if ($user->isDirty('name')) {
$user->slug = Str::slug($user->name);
}
});
static::created(function ($user) {
// Create default lists
$defaultLists = [
['name' => 'Played Games', 'is_default' => true],
['name' => 'Want to Play', 'is_default' => true]
];
foreach ($defaultLists as $list) {
$user->lists()->create($list);
}
});
}
public function getRouteKeyName()
{
return 'slug';
}
public function reviews(): HasMany
{
return $this->hasMany(Review::class);
@@ -58,21 +93,4 @@ class User extends Authenticatable
{
return $this->hasMany(GameList::class);
}
protected static function boot()
{
parent::boot();
static::created(function ($user) {
// Create default lists
$defaultLists = [
['name' => 'Played Games', 'is_default' => true],
['name' => 'Want to Play', 'is_default' => true]
];
foreach ($defaultLists as $list) {
$user->lists()->create($list);
}
});
}
}