<?php
namespace App\Repositories;
use App\Facades\License;
use App\Models\Playlist;
use App\Models\User;
use Illuminate\Support\Collection;
/** @extends Repository<Playlist> */
class PlaylistRepository extends Repository
{
/** @return Collection<Playlist>|array<array-key, Playlist> */
public function getAllAccessibleByUser(User $user): Collection
{
$relation = License::isCommunity() ? $user->ownedPlaylists() : $user->playlists();
return $relation
->leftJoin('playlist_playlist_folder', 'playlists.id', '=', 'playlist_playlist_folder.playlist_id')
->distinct()
->get(['playlists.*', 'playlist_playlist_folder.folder_id']);
}
}