feat: add total duration for playlist
This commit is contained in:
@@ -126,7 +126,7 @@ public function grouped($id)
|
|||||||
'description' => $sub->description,
|
'description' => $sub->description,
|
||||||
'image_url' => $sub->image?->url,
|
'image_url' => $sub->image?->url,
|
||||||
],
|
],
|
||||||
'playlists' => $sub->playlists,
|
'playlists' => $sub->playlists->each(fn ($p) => $p->append('duration')),
|
||||||
])->values(),
|
])->values(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,6 +98,8 @@ public function show($id)
|
|||||||
->latest()
|
->latest()
|
||||||
->paginate(15);
|
->paginate(15);
|
||||||
|
|
||||||
|
$playlist->append('duration');
|
||||||
|
|
||||||
return response()->json(array_merge(
|
return response()->json(array_merge(
|
||||||
$playlist->toArray(),
|
$playlist->toArray(),
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -71,4 +71,10 @@ public function getTotalDurationAttribute()
|
|||||||
{
|
{
|
||||||
return $this->musics()->where('music.is_active', true)->sum('music.duration');
|
return $this->musics()->where('music.is_active', true)->sum('music.duration');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Total play time of the playlist = sum of its active musics' durations.
|
||||||
|
public function getDurationAttribute()
|
||||||
|
{
|
||||||
|
return $this->total_duration;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user