<?php
namespace App\Builders;
use App\Builders\Concerns\CanScopeByUser;
use Illuminate\Database\Query\JoinClause;
use LogicException;
class PodcastBuilder extends FavoriteableBuilder
{
use CanScopeByUser;
public function subscribed(): self
{
throw_if(!$this->user, new LogicException('User must be set to query subscribed podcasts.'));
return $this->join('podcast_user', function (JoinClause $join): void {
$join->on('podcasts.id', 'podcast_user.podcast_id')
->where('podcast_user.user_id', $this->user->id);
});
}
}