<?php

namespace App\Http\Controllers\Coach;

use App\Http\Controllers\Controller;
use App\Models\Exercise;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class ExerciseLookupController extends Controller
{
    /**
     * برای دراپ‌داون انتخاب حرکت در Workout Builder — بند ۲۱: با انتخاب حرکت،
     * GIF/عضله/تجهیزات خودکار در Card پر می‌شود. Coach هیچ دسترسی مدیریتی
     * (create/update/delete) به Exercise ندارد، فقط این یک Endpoint فقط-خواندنی.
     */
    public function search(Request $request): JsonResponse
    {
        $exercises = Exercise::query()
            ->active()
            ->with('mainMuscle')
            ->when($request->filled('q'), fn ($q) => $q->where('name', 'like', '%'.$request->string('q').'%'))
            ->limit(20)
            ->get()
            ->map(fn (Exercise $e) => [
                'id' => $e->id,
                'name' => $e->name,
                'main_muscle' => $e->mainMuscle?->name,
                'gif_url' => $e->gif_path ? Storage::disk('public')->url($e->gif_path) : null,
                'difficulty' => $e->difficulty->label(),
            ]);

        return response()->json($exercises);
    }
}
