feat: add detail image media and play list

This commit is contained in:
2026-06-06 19:08:27 +03:30
parent 0b578e15dd
commit fcf9c35697
5 changed files with 91 additions and 10 deletions
@@ -13,7 +13,7 @@ class MusicPlaylistController extends Controller
public function index(Request $request, $categoryId = null)
{
$query = MusicPlaylist::with(['categories', 'subcategories', 'image']);
$query = MusicPlaylist::with(['categories', 'subcategories', 'image', 'detailImage']);
$categoryId = $categoryId ?? $request->input('category_id');
@@ -46,6 +46,8 @@ public function store(Request $request)
'description' => 'nullable|string',
'image_id' => 'nullable|exists:images,id',
'image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
'detail_image_id' => 'nullable|exists:images,id',
'detail_image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
'order' => 'nullable|integer',
'is_active' => 'nullable|boolean',
]);
@@ -61,6 +63,7 @@ public function store(Request $request)
// An uploaded image file takes precedence over a provided image_id.
$data['image_id'] = $this->uploadedImageId($request) ?? ($data['image_id'] ?? null);
$data['detail_image_id'] = $this->uploadedImageId($request, 'detail_image') ?? ($data['detail_image_id'] ?? null);
$playlist = MusicPlaylist::create($data);
@@ -69,7 +72,7 @@ public function store(Request $request)
return response()->json([
'message' => 'Playlist created successfully',
'playlist' => $playlist->load(['categories', 'subcategories', 'image'])
'playlist' => $playlist->load(['categories', 'subcategories', 'image', 'detailImage'])
], 201);
}
@@ -79,6 +82,7 @@ public function show($id)
'categories',
'subcategories',
'image',
'detailImage',
'musics' => function($q) {
$q->where('music.is_active', true)
->with(['image', 'tags'])
@@ -127,6 +131,8 @@ public function update(Request $request, $id)
'description' => 'nullable|string',
'image_id' => 'nullable|exists:images,id',
'image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
'detail_image_id' => 'nullable|exists:images,id',
'detail_image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
'order' => 'nullable|integer',
'is_active' => 'nullable|boolean',
]);
@@ -139,6 +145,9 @@ public function update(Request $request, $id)
if (($uploadedImageId = $this->uploadedImageId($request)) !== null) {
$data['image_id'] = $uploadedImageId;
}
if (($uploadedDetailImageId = $this->uploadedImageId($request, 'detail_image')) !== null) {
$data['detail_image_id'] = $uploadedDetailImageId;
}
$playlist->update($data);
@@ -152,7 +161,7 @@ public function update(Request $request, $id)
return response()->json([
'message' => 'Playlist updated successfully',
'playlist' => $playlist->load(['categories', 'subcategories', 'image'])
'playlist' => $playlist->load(['categories', 'subcategories', 'image', 'detailImage'])
]);
}