limpieza
This commit is contained in:
@@ -1,122 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Equipo;
|
||||
use App\Models\EquipoSeguimiento;
|
||||
use App\Models\Evento;
|
||||
use App\Services\NotificacionService;
|
||||
|
||||
class SeguimientoController extends Controller
|
||||
{
|
||||
private NotificacionService $notifService;
|
||||
|
||||
public function __construct(NotificacionService $notifService)
|
||||
{
|
||||
$this->notifService = $notifService;
|
||||
}
|
||||
|
||||
private function getUserSession(): ?array
|
||||
{
|
||||
if (!session()->has('user_logged_in')) return null;
|
||||
return ['tipo' => session('user_tipo'), 'id' => session('user_id')];
|
||||
}
|
||||
|
||||
/**
|
||||
* POST /seguimiento/equipo/{id} — Toggle: seguir o dejar de seguir un equipo
|
||||
*/
|
||||
public function toggle(int $id)
|
||||
{
|
||||
$u = $this->getUserSession();
|
||||
if (!$u) {
|
||||
return response()->json(['ok' => false, 'msg' => 'Debés iniciar sesión para seguir equipos.'], 401);
|
||||
}
|
||||
|
||||
$equipo = Equipo::find($id);
|
||||
if (!$equipo) {
|
||||
return response()->json(['ok' => false, 'msg' => 'Equipo no encontrado.'], 404);
|
||||
}
|
||||
|
||||
$existing = EquipoSeguimiento::where('id_equipo', $id)
|
||||
->where('tipo_usuario', $u['tipo'])
|
||||
->where('id_usuario', (string)$u['id'])
|
||||
->first();
|
||||
|
||||
if ($existing) {
|
||||
$existing->delete();
|
||||
return response()->json(['ok' => true, 'siguiendo' => false, 'msg' => 'Dejaste de seguir este equipo.']);
|
||||
}
|
||||
|
||||
EquipoSeguimiento::create([
|
||||
'id_equipo' => $id,
|
||||
'tipo_usuario'=> $u['tipo'],
|
||||
'id_usuario' => (string)$u['id'],
|
||||
'created_at' => now(),
|
||||
]);
|
||||
|
||||
return response()->json(['ok' => true, 'siguiendo' => true, 'msg' => '¡Ahora seguís este equipo!']);
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /seguimiento/mis-equipos — Devuelve equipos seguidos y próximos partidos
|
||||
*/
|
||||
public function misEquipos()
|
||||
{
|
||||
$u = $this->getUserSession();
|
||||
if (!$u) return response()->json(['equipos' => []]);
|
||||
|
||||
$seguimientos = EquipoSeguimiento::with(['equipo.club'])
|
||||
->where('tipo_usuario', $u['tipo'])
|
||||
->where('id_usuario', (string)$u['id'])
|
||||
->get();
|
||||
|
||||
$equiposIds = $seguimientos->pluck('id_equipo');
|
||||
|
||||
// Próximos partidos de los equipos seguidos
|
||||
$proximosPartidos = Evento::with(['equipoLocal.club', 'equipoVisitante.club'])
|
||||
->where('fecha_evento', '>=', now()->toDateString())
|
||||
->where(function ($q) use ($equiposIds) {
|
||||
$q->whereIn('id_equipo_local', $equiposIds)
|
||||
->orWhereIn('id_equipo_visitante', $equiposIds);
|
||||
})
|
||||
->orderBy('fecha_evento')
|
||||
->orderBy('hora_inicio')
|
||||
->limit(10)
|
||||
->get();
|
||||
|
||||
return response()->json([
|
||||
'equipos' => $seguimientos->map(fn($s) => [
|
||||
'id' => $s->id_equipo,
|
||||
'nombre' => ($s->equipo->club->nombre ?? 'Equipo') . ' ' . $s->equipo->categoria . ($s->equipo->division ? ' ' . $s->equipo->division : ''),
|
||||
'club' => $s->equipo->club->nombre ?? '—',
|
||||
'categoria'=> $s->equipo->categoria,
|
||||
'division' => $s->equipo->division,
|
||||
]),
|
||||
'proximos_partidos' => $proximosPartidos->map(fn($e) => [
|
||||
'id' => $e->id_evento,
|
||||
'fecha' => $e->fecha_evento->format('d/m/Y'),
|
||||
'hora' => $e->hora_inicio ? $e->hora_inicio->format('H:i') : '',
|
||||
'local' => $e->equipoLocal->club->nombre ?? '?',
|
||||
'visitante'=> $e->equipoVisitante->club->nombre ?? '?',
|
||||
'sede' => $e->sede,
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* GET /seguimiento/estado/{id_equipo} — ¿El usuario sigue este equipo?
|
||||
*/
|
||||
public function estado(int $id)
|
||||
{
|
||||
$u = $this->getUserSession();
|
||||
if (!$u) return response()->json(['siguiendo' => false]);
|
||||
|
||||
$siguiendo = EquipoSeguimiento::where('id_equipo', $id)
|
||||
->where('tipo_usuario', $u['tipo'])
|
||||
->where('id_usuario', (string)$u['id'])
|
||||
->exists();
|
||||
|
||||
return response()->json(['siguiendo' => $siguiendo]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user