<?php

namespace App\AI\Tools;

use App\Models\Equipo;

class ListarEquiposTool
{
    public function __invoke(?int $id_torneo = null, ?string $grupo = null): string
    {
        $query = Equipo::with('club');

        if ($id_torneo !== null) {
            $query->join('torneo_equipo', 'equipos.id_equipo', '=', 'torneo_equipo.id_equipo')
                  ->where('torneo_equipo.id_torneo', $id_torneo);

            if ($grupo !== null) {
                $query->where('torneo_equipo.grupo', $grupo);
            }

            $query->select('equipos.id_equipo', 'equipos.categoria', 'equipos.division', 'equipos.id_club');
        }

        $equipos = $query->get()->map(fn($e) => [
            'id_equipo' => $e->id_equipo,
            'categoria' => $e->categoria,
            'division'  => $e->division,
            'club'      => $e->club?->nombre,
        ]);

        return json_encode($equipos);
    }
}
