'datetime', 'password' => 'hashed', // Other 'name' => 'string', 'email' => 'string', 'locale' => 'string', 'roles' => 'json', 'tag_blacklist' => 'array', // Discord 'discord_id' => 'integer', 'discord_avatar' => 'string', ]; /** * Has Many Playlists. */ public function playlists(): HasMany { return $this->hasMany(Playlist::class); } /** * Has Many Watched Episodes. */ public function watched(): HasMany { return $this->hasMany(Watched::class); } /** * Has Many Watched Episodes. */ public function likes(): int { return DB::table('markable_likes')->where('user_id', $this->id)->count(); } /** * Has Many Comments. */ public function commentCount(): int { return DB::table('comments')->where('commenter_id', $this->id)->count(); } /** * Returns the user avatar image url. */ public function getAvatar(): string { if ($this->discord_id && $this->discord_avatar && !$this->avatar) { return "https://external-content.duckduckgo.com/iu/?u=https://cdn.discordapp.com/avatars/{$this->discord_id}/{$this->discord_avatar}.webp"; } if ($this->avatar) { return Storage::url($this->avatar); } return asset('images/default-avatar.webp'); } }