Files
fitness/app/Http/Resources/ExerciseResource.php
2026-08-10 19:18:25 +03:00

38 lines
1.5 KiB
PHP

<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class ExerciseResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'name' => $this->display_name,
'original_name' => $this->name,
'slug' => $this->slug,
'gif_url' => $this->gif_url,
'poster_url' => $this->poster_url,
'instructions' => $this->instructions,
'body_parts' => $this->whenLoaded('bodyParts', fn () => $this->bodyParts->map(fn ($m) => [
'id' => $m->id, 'name' => $m->name, 'slug' => $m->slug,
])),
'target_muscles' => $this->whenLoaded('targetMuscles', fn () => $this->targetMuscles->map(fn ($m) => [
'id' => $m->id, 'name' => $m->name, 'slug' => $m->slug,
])),
'secondary_muscles' => $this->whenLoaded('secondaryMuscles', fn () => $this->secondaryMuscles->map(fn ($m) => [
'id' => $m->id, 'name' => $m->name, 'slug' => $m->slug,
])),
'equipments' => $this->whenLoaded('equipments', fn () => $this->equipments->map(fn ($m) => [
'id' => $m->id, 'name' => $m->name, 'slug' => $m->slug,
])),
'is_favorited' => $request->user()
? $request->user()->favoriteExercises()->where('exercise_id', $this->id)->exists()
: false,
];
}
}