Sigue a tus rivales: amigos y una clasificación de amigos
Sigue a los jugadores que disfrutas venciendo, míralos ordenados en su propia pestaña de clasificación y gestiona a todos desde una nueva página de Amigos con búsqueda por apodo.

En palabras sencillas
opolyx es más divertido con gente que reconoces. Ahora puedes seguir a cualquier jugador —toca Seguir en su perfil, o encuéntralo por apodo en la nueva página de Amigos— y aparecerá en una pestaña de la clasificación que os incluye solo a ti y a las personas que sigues.
Seguir es unidireccional, como en la mayoría de las apps sociales: no hace falta que te sigan de vuelta y no hay nada que aceptar. Una clasificación es un ranking público de todos modos, así que seguir a alguien no revela nada que no hubiera hecho ya visible.
- Sigue / deja de seguir desde cualquier página de perfil con un solo botón.
- Una nueva página de Amigos con pestañas Siguiendo y Seguidores y una búsqueda por apodo para encontrar jugadores.
- Una pestaña de Amigos en la clasificación os ordena a ti y a todos los que sigues por XP.
- Los recuentos de seguidores y seguidos ahora aparecen como fichas en cada perfil.
Para los más técnicos
La migración 0033 añade una tabla follows: una arista dirigida (follower, followee) con una guarda de duplicados por clave primaria, una comprobación de no-autoseguimiento y borrado en cascada. Las lecturas usan RLS de fila propia (cada lado puede leer sus propias aristas); las escrituras pasan por dos RPC security-definer basados en auth.uid() y modelados sobre create_game.
-- follow_user / unfollow_user: idempotent, auth.uid()-scoped, security definer
-- 0031 grant lesson applied: default privileges grant EXECUTE to anon —
-- revoke from public, anon FIRST, then grant execute to authenticated only.Contar los seguidores de un usuario cualquiera lo bloquea ese RLS de fila propia, así que la migración 0034 añade get_follow_counts(p_user): una función security-definer que devuelve seguidores/seguidos. Como los recuentos no son sensibles y los perfiles son de lectura pública (un perfil se muestra a visitantes anónimos), se concede a anon + authenticated, la inversa de los RPC de escritura de 0033.
La consulta de la clasificación de Amigos es simplemente el id del espectador unido con todos a los que sigue, ordenados por XP global. Ambas migraciones se aplicaron a producción mediante la API de gestión de Supabase y se verificaron (permisos: authenticated sí / anon no para escrituras, anon sí para recuentos) antes de lanzar el cambio web.
