44 lines
1.5 KiB
PHP
44 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\AI\Tools;
|
|
|
|
use App\Models\Evento;
|
|
use Illuminate\Support\Str;
|
|
|
|
class CrearPartidoTool
|
|
{
|
|
public function __invoke(
|
|
int $id_equipo_local,
|
|
int $id_equipo_visitante,
|
|
string $fecha_evento,
|
|
string $hora_inicio,
|
|
string $hora_fin,
|
|
string $sede,
|
|
int $id_torneo,
|
|
?float $precio = null
|
|
): string {
|
|
try {
|
|
$evento = Evento::create([
|
|
'id_evento' => (string) Str::uuid(),
|
|
'id_equipo_local' => $id_equipo_local,
|
|
'id_equipo_visitante' => $id_equipo_visitante,
|
|
'fecha_evento' => $fecha_evento,
|
|
'hora_inicio' => str_contains($hora_inicio, ':') ? $hora_inicio . (strlen($hora_inicio) === 5 ? ':00' : '') : $hora_inicio,
|
|
'hora_fin' => str_contains($hora_fin, ':') ? $hora_fin . (strlen($hora_fin) === 5 ? ':00' : '') : $hora_fin,
|
|
'sede' => $sede,
|
|
'id_torneo' => $id_torneo,
|
|
'precio' => $precio ?? 0,
|
|
'fase' => Evento::FASE_REGULAR,
|
|
]);
|
|
|
|
return json_encode([
|
|
'success' => true,
|
|
'id_evento' => $evento->id_evento,
|
|
'mensaje' => "Partido creado correctamente. ID: {$evento->id_evento}",
|
|
]);
|
|
} catch (\Throwable $e) {
|
|
return json_encode(['error' => 'No se pudo crear el partido: ' . $e->getMessage()]);
|
|
}
|
|
}
|
|
}
|