latest update

This commit is contained in:
ghassan committed 2026-03-11 11:21:33 +03:00
1 parent 9ad842dcd5
commit 062c0e896f
42 files changed
+7052 -2921

No files matched your search

+53 -3
View File
@@ -19,6 +19,16 @@ class User extends Authenticatable
'password',
'avatar',
'role',
'bio',
'website',
'twitter',
'instagram',
'facebook',
'youtube',
'linkedin',
'tiktok',
'birthday',
'location',
];
protected $hidden = [
@@ -52,12 +62,18 @@ class User extends Authenticatable
return $this->hasMany(Comment::class);
}
public function playlists()
{
return $this->hasMany(Playlist::class);
}
public function getAvatarUrlAttribute()
{
if ($this->avatar) {
return asset('storage/avatars/' . $this->avatar);
return asset('storage/avatars/'.$this->avatar);
}
return 'https://i.pravatar.cc/150?u=' . $this->id;
return 'https://i.pravatar.cc/150?u='.$this->id;
}
// Role helper methods
@@ -82,5 +98,39 @@ class User extends Authenticatable
// For now, return a placeholder - in production this would come from a subscriptions table
return rand(100, 10000);
}
}
// Get social links as an array
public function getSocialLinksAttribute()
{
return [
'twitter' => $this->twitter,
'instagram' => $this->instagram,
'facebook' => $this->facebook,
'youtube' => $this->youtube,
'linkedin' => $this->linkedin,
'tiktok' => $this->tiktok,
];
}
// Check if user has any social links
public function hasSocialLinks()
{
return $this->twitter || $this->instagram || $this->facebook ||
$this->youtube || $this->linkedin || $this->tiktok;
}
// Get formatted website URL
public function getWebsiteUrlAttribute()
{
if (! $this->website) {
return null;
}
// Add https:// if no protocol is specified
if (! preg_match('/^https?:\/\//', $this->website)) {
return 'https://'.$this->website;
}
return $this->website;
}
}