feat: add comment for playlist

This commit is contained in:
2026-05-30 08:42:30 +03:30
parent 2352c34062
commit bac1e46848
3 changed files with 45 additions and 15 deletions
+2 -1
View File
@@ -127,10 +127,11 @@ private function getModelClass($type)
$models = [
'music' => \App\Models\Music::class,
'media' => \App\Models\Media::class,
'playlist' => \App\Models\MusicPlaylist::class,
];
if (!isset($models[$type])) {
abort(404, 'Invalid model type');
abort(404, 'Invalid model type. Supported types: music, media, playlist');
}
return $models[$type];
@@ -55,19 +55,41 @@ public function store(Request $request)
}
public function show($id)
{
$playlist = MusicPlaylist::with([
'category',
'image',
'musics' => function($q) {
$q->where('is_active', true)
->with(['image', 'tags'])
->orderBy('order');
}
])->findOrFail($id);
return response()->json($playlist);
}
{
$playlist = MusicPlaylist::with([
'category',
'subcategory',
'image',
'musics' => function($q) {
$q->where('is_active', true)
->with(['image', 'tags'])
->orderBy('order');
},
'comments' => function($q) { // Add comments relationship
$q->with('user')->latest()->limit(10);
}
])->findOrFail($id);
$userComment = $playlist->userComment();
$comments = $playlist->comments()
->with('user')
->latest()
->paginate(15);
return response()->json([
'playlist' => $playlist,
'statistics' => [
'total_musics' => $playlist->musics->count(),
'total_duration' => $playlist->total_duration,
'total_comments' => $playlist->comments_count,
],
'user_interaction' => [
'has_commented' => $playlist->has_user_commented,
'user_comment' => $playlist->user_comment,
'user_comment_id' => $playlist->user_comment_id,
],
'comments' => $comments,
]);
}
public function update(Request $request, $id)
{