<?php
namespace App\Services;
use App\Exceptions\NonSmartPlaylistException;
use App\Models\Playlist;
use App\Models\Song;
use App\Models\User;
use App\Repositories\SongRepository;
use Illuminate\Database\Eloquent\Collection;
class SmartPlaylistService
{
public function __construct(private readonly SongRepository $songRepository)
{
}
/** @return Collection|array<array-key, Song> */
public function getSongs(Playlist $playlist, User $user): Collection
{
throw_unless($playlist->is_smart, NonSmartPlaylistException::create($playlist));
return $this->songRepository->getByPlaylist($playlist, $user);
}
}