# 📖 Manual de Usuario — OnAPB ### Sistema de Gestión de Asociación de Básquet > **Sitio:** [onapb.com](https://onapb.com) --- ## ¿A quién está dirigido este manual? OnAPB es utilizado por cuatro tipos de personas. Este manual explica paso a paso qué puede hacer cada una: | Capítulo | Perfil | |---|---| | [Capítulo 1](#cap1) | Visitantes (sin cuenta) | | [Capítulo 2](#cap2) | Jugadores federados | | [Capítulo 3](#cap3) | Aficionados / Hinchas | | [Capítulo 4](#cap4) | Administradores de Club | | [Capítulo 5](#cap5) | Súper Administradores (OnAPB) | --- ## 📌 Capítulo 1 — Visitante (Sin cuenta) Cualquier persona puede ingresar a **onapb.com** sin necesidad de registrarse y acceder a información pública de la liga. ### 1.1 Página de Inicio (`/`) Al entrar al sitio el visitante encuentra: - **Carrusel / Hero**: Diapositivas destacadas configuradas por la asociación (noticias importantes, convocatorias, avisos). - **Próximos Partidos**: Listado de los eventos más cercanos con día, hora y equipos. - **Noticias recientes**: Artículos publicados por OnAPB. - **Sponsors**: Franja rotativa con los patrocinadores de la liga visible en el pie de página. ### 1.2 Cartelera de Eventos (`/eventos`) - Ver todos los partidos programados: próximos, en curso y finalizados. - Cada tarjeta de evento muestra: equipos, categoría, fecha, hora y sede. - Hacer clic en un evento abre el **detalle del partido** con información completa. - Si el partido ya fue jugado, se muestran los marcadores finales. ### 1.3 Tabla de Posiciones y Goleadores de Torneo - Desde la sección de torneos se puede ver: - **Posiciones** por grupo o categoría. - **Tabla de goleadores** del torneo con puntos acumulados. - **Bracket de Playoffs**: diagrama del cuadro eliminatorio cuando corresponde. ### 1.4 Noticias (`/noticias`) - Listado de artículos publicados por la asociación con imagen, título y texto completo. ### 1.5 Promociones y Lugares con Beneficios (`/promos`) - Mapa y/o listado de locales comerciales asociados que ofrecen descuentos a miembros de OnAPB. - Ver información de cada comercio (nombre, dirección, beneficio). - Para **obtener el QR de descuento** es necesario tener una cuenta y estar logueado. ### 1.6 Registrarse (`/asociate`) Para obtener todos los beneficios del sistema, el visitante puede crear una cuenta. Existen dos vías: #### Vía A — Registrarse como Aficionado 1. Ir a `/asociate` y seleccionar la pestaña **"Soy Aficionado"**. 2. Completar el formulario: Nombre, Apellido, DNI, Email, Fecha de Nacimiento (opcional), Teléfono (opcional), Localidad (opcional), Contraseña. 3. Resolver el **captcha de seguridad** (Cloudflare Turnstile). 4. Hacer clic en **Registrarme**. 5. El sistema envía un **correo de bienvenida** a la dirección ingresada. 6. ✅ Listo. Ya se puede iniciar sesión con DNI y contraseña. #### Vía B — Activar cuenta como Jugador Federado > *Para jugadores que ya fueron cargados en el sistema por el administrador de su club.* 1. Ir a `/asociate` y seleccionar la pestaña **"Soy Jugador"**. 2. Ingresar Nombre, Apellido y DNI (tal como aparecen en la ficha). 3. Aceptar los términos y hacer clic en **Buscar**. 4. El sistema valida los datos con el padrón. Si hay coincidencia, muestra la ficha del jugador (nombre, club, categoría). 5. Completar el formulario de activación: Email, Teléfono (opcional), Contraseña. 6. Resolver el **captcha de seguridad**. 7. Hacer clic en **Activar mi cuenta**. 8. El sistema envía un **correo de bienvenida**. 9. ✅ Listo. La cuenta queda activa y se puede iniciar sesión. > **Nota:** Si el DNI no se encuentra en el padrón de jugadores, el sistema sugiere registrarse como Aficionado. ### 1.7 Iniciar Sesión - Desde el menú superior hacer clic en **"Iniciar Sesión"** o ir a la pantalla de login. - Se muestra un formulario con dos pestañas: - **Jugadores / Aficionados**: ingresar DNI y contraseña + captcha. - **Administradores**: ingresar usuario y contraseña + captcha. ### 1.8 Recuperar Contraseña (`/recuperar`) En caso de olvidar la contraseña: 1. Ir a `/recuperar`. 2. Ingresar el **DNI** y la **dirección de email** asociados a la cuenta. 3. El sistema envía un enlace de restablecimiento válido por **1 hora**. 4. Hacer clic en el enlace del correo y establecer la nueva contraseña (mínimo 6 caracteres, requiere confirmación). --- ## 🏅 Capítulo 2 — Jugador Federado Un jugador que ya activó su cuenta (Vía B de `/asociate`) tiene acceso a un **Panel de Usuario** con funcionalidades específicas para deportistas federados. ### 2.1 Iniciar Sesión - En la pantalla de login, pestaña **"Jugadores / Aficionados"**. - Ingresar **DNI** y **contraseña**. - El sistema detecta automáticamente si la cuenta corresponde a un Jugador o Aficionado. ### 2.2 Panel de Usuario (`/panel-usuario`) Al acceder al panel, el jugador ve de un vistazo: - Sus **datos personales**: nombre, DNI, club, categoría calculada automáticamente por edad. - Sus **equipos asignados** (puede pertenecer a varios equipos dentro de su club). - **Resumen de QRs**: cantidad de pases de eventos solicitados. - **Notificaciones** del sistema (ícono en el menú superior con contador). ### 2.3 Solicitar QR para un Partido Esta es la funcionalidad principal del jugador federado. Permite obtener un **código QR de acceso** a un evento. **Pasos:** 1. Desde el menú público o desde el panel, ir a **Eventos** y buscar el partido deseado. 2. Entrar al **detalle del partido**. 3. Si el partido está en estado *Próximo* o *En Curso*, aparece el botón **"Solicitar QR"**. 4. Hacer clic en el botón. El sistema verifica automáticamente: - Si el jugador **pertenece a uno de los equipos** del partido → genera la cantidad de QRs configurada (por defecto 3, para repartir entre familiares/acompañantes). Tipo: `invitado`. - Si el jugador es de **categoría Libre** pero no juega ese partido → genera 1 QR con descuento del 50%. Tipo: `libre_50`. - Si el jugador no cumple ninguna condición → el botón no estará disponible o muestra un mensaje explicativo. 5. ✅ El sistema genera los QRs y envía un **correo con los códigos** al email registrado. 6. El jugador es redirigido automáticamente a **Mis QRs** para ver los códigos generados. > **Restricción:** Solo se puede solicitar QR una vez por partido. Si ya se solicitó, el botón queda inhabilitado con un mensaje informativo. ### 2.4 Mis QRs (`/panel-usuario/mis-qrs`) - Lista de todos los códigos QR del jugador, ordenados del más reciente al más antiguo. - Cada QR muestra: - Imagen del código QR (escaneable) - Evento al que pertenece (equipos, fecha, hora) - Estado: **Válido** / **Usado** (según si fue escaneado en puerta) - Tipo de QR (invitado, libre_50, etc.) - Se puede filtrar por evento específico. ### 2.5 Beneficios de Promociones 1. Ir a **Promos** desde el menú principal. 2. Ver el mapa/listado de locales con beneficios. 3. Hacer clic en **"Obtener mi QR de beneficio"** en el local deseado. 4. El sistema genera un **QR de descuento único** para ese local. 5. Ver el QR en pantalla para presentarlo en el comercio. > **Restricción:** Solo se puede generar 1 QR por local por usuario. ### 2.6 Seguir Equipos - Desde la página pública de un equipo (`/equipos/{id}`), hacer clic en **"Seguir"**. - Acceder a **Mis Equipos Seguidos** desde el Panel para ver el historial de partidos de los equipos favoritos. - Hacer clic nuevamente en "Seguir" en un equipo ya seguido lo deja de seguir (toggle). ### 2.7 Notificaciones (`/notificaciones`) - El ícono de campana en el menú muestra la cantidad de notificaciones no leídas. - Las notificaciones pueden ser generadas por el sistema automáticamente (ej: "Tus QRs para el partido del sábado están disponibles"). - Desde el centro de notificaciones se puede: - **Marcar como leída** una notificación individual. - **Marcar todas como leídas**. - **Eliminar** notificaciones individuales. - **Eliminar todas** las notificaciones. ### 2.8 Editar Datos Personales Desde el Panel de Usuario, sección **"Mi Cuenta"**: - Actualizar **email** y **teléfono**. - Los jugadores no pueden modificar su nombre, DNI o fecha de nacimiento (esos datos son gestionados por el admin del club). ### 2.9 Cambiar Contraseña Desde el Panel de Usuario, sección **"Seguridad"**: 1. Ingresar la contraseña actual. 2. Ingresar la nueva contraseña (mínimo 6 caracteres). 3. Confirmar la nueva contraseña. 4. Guardar cambios. ### 2.10 Cerrar Sesión - Hacer clic en **"Cerrar Sesión"** en el menú (esquina superior derecha o menú hamburguesa en móvil). - La sesión se cierra de forma segura. --- ## 🎉 Capítulo 3 — Aficionado / Hincha El aficionado tiene las mismas capacidades que el jugador en lo que respecta a disfrute de la plataforma, con algunas diferencias en la lógica de los QRs. ### 3.1 Inicio de Sesión y Registro Idéntico al Jugador: login con DNI + contraseña. El registro es mediante la **Vía A** descripta en el Capítulo 1. ### 3.2 Panel de Usuario Igual al del Jugador, con las siguientes diferencias visibles: - **No se muestra** información de club ni categoría federada. - El campo **"Localidad"** sí es editable (además de email y teléfono). ### 3.3 Solicitar QR para un Partido El aficionado puede solicitar 1 QR por partido. A diferencia del jugador federado: - No hay distinción por equipo ni categoría. - Se genera 1 QR de tipo `publico`. - En el futuro (Fase 6), este QR estará sujeto al pago de la entrada; actualmente se genera de forma directa. El proceso es idéntico a los pasos 1–5 del apartado 2.3. ### 3.4 Mis QRs, Promociones, Notificaciones y Cuenta Funciona exactamente igual que para el Jugador (ver apartados 2.4 al 2.10). --- ## 🏢 Capítulo 4 — Administrador de Club El Admin de Club es el responsable designado de gestionar su institución dentro de OnAPB. Accede al panel de administración pero con alcance limitado exclusivamente a los datos de su club. ### 4.1 Inicio de Sesión - En la pantalla de login, pestaña **"Administradores"**. - Ingresar **usuario** (asignado por un Súper Admin) y **contraseña**. ### 4.2 Dashboard del Admin de Club (`/admin`) Al ingresar, el Admin de Club ve: - **Estadísticas rápidas** de su club: cantidad de equipos, jugadores y eventos relacionados. - Nombre e identificación de su club. - Accesos rápidos a los módulos disponibles. ### 4.3 Gestión de Jugadores (`/admin/jugadores`) #### Ver listado de jugadores - Lista de todos los jugadores pertenecientes a su club. - Búsqueda por nombre, apellido o DNI. - Cada jugador muestra: nombre, DNI, fecha de nacimiento, categoría (calculada automáticamente) y estado (activo/inactivo). #### Crear un nuevo jugador 1. Hacer clic en **"Nuevo Jugador"**. 2. Completar el formulario: - DNI, Nombre, Apellido, Fecha de Nacimiento. - Club de Origen (puede ser cualquier club del sistema — útil para jugadores con pase). - El campo "Club Actual" se asigna automáticamente al club del administrador. 3. Guardar. 4. El jugador se crea con estado **inactivo**. Necesitará completar su registro en `/asociate` para activar su cuenta. > **Validación:** Si el DNI ya existe en el sistema, se muestra un error indicando a qué club pertenece el jugador actualmente. #### Editar un jugador - Modificar datos básicos (nombre, apellido, fecha de nacimiento, teléfono). - No puede cambiar el club actual del jugador (eso requiere un pase gestionado por el SuperAdmin). #### Eliminar un jugador - El jugador se marca como eliminado (SoftDelete). No se borra físicamente. #### Importar jugadores desde CSV 1. Hacer clic en **"Importar CSV"**. 2. Subir un archivo CSV en formato CAB (Argentina Basketball) o formato interno. 3. El sistema detecta automáticamente el formato y procesa cada fila. 4. Al finalizar, muestra un resumen: nuevos creados, omitidos (ya existían), errores. #### Exportar jugadores a CSV - Descargar el listado completo de jugadores del club en formato CSV. - Compatible con el reimportador interno del sistema. ### 4.4 Gestión de Equipos (`/admin/equipos`) #### Ver listado de equipos - Lista de los equipos del club con cantidad de jugadores. #### Crear un nuevo equipo 1. Hacer clic en **"Nuevo Equipo"**. 2. Seleccionar **Categoría** (ej: U13, U15, U17, Primera) y Division (A, B, etc.). 3. El club se asigna automáticamente. #### Editar y eliminar equipos - Modificar categoría y división. - Eliminar (SoftDelete). #### Gestionar jugadores del equipo 1. Desde el listado de equipos, hacer clic en el ícono de jugadores (**"Ver Plantel"**). 2. Ver la lista de jugadores asignados a ese equipo. 3. **Agregar jugador**: buscar por nombre/apellido/DNI (búsqueda en tiempo real) y hacer clic en "Agregar". - Solo se pueden agregar jugadores del mismo club. - El sistema previene la asignación duplicada. 4. **Remover jugador**: hacer clic en "Quitar" al lado del jugador. ### 4.5 Editar Identidad Visual del Club (`/admin/clubes/{id}/editar`) El Admin de Club puede personalizar la apariencia de su club dentro del sistema: - **Logo/Escudo**: subir una imagen (JPEG, PNG, WEBP, máx. 1MB) que aparecerá asociada al club en toda la plataforma. - **Fondo de QR** (QR Background): subir una imagen que se usará como fondo decorativo en los códigos QR generados para los partidos de su club. - **Color de texto del QR**: ingresar un color hexadecimal para personalizar la tipografía sobre el QR. ### 4.6 Gestión de Pases / Traspasos (`/admin/pases`) Los pases son solicitudes formales para transferir un jugador de un club a otro. #### Solicitar un pase 1. Ir a **Pases** y hacer clic en **"Nuevo Pase"**. 2. Seleccionar el jugador a transferir y el club de destino. 3. Enviar la solicitud. 4. El Súper Admin recibirá la solicitud para aprobarla o rechazarla. #### Ver estado de pases - Listado de todos los pases solicitados por el club. - Estado posible: **Pendiente**, **Aprobado**, **Rechazado**. ### 4.7 Escanear QR en Eventos (`/admin/escanear-qr`) Esta funcionalidad es para usar en la puerta del evento el día del partido. 1. Ir a **"Escanear QR"** en el menú. 2. Seleccionar el **evento** (partido) a gestionar. Solo aparecen eventos relacionados con su club. 3. Activar la **cámara** del dispositivo o ingresar manualmente el código del QR. 4. El sistema valida el QR en tiempo real: - ✅ **QR Válido**: muestra nombre del titular, tipo de QR y pasa el estado a "Usado". - ❌ **QR Inválido o Ya Usado**: muestra el error correspondiente. ### 4.8 Cerrar Sesión - Hacer clic en **"Cerrar Sesión"** en el menú del panel administrador. --- ## 👑 Capítulo 5 — Súper Administrador (OnAPB) El Súper Admin tiene control total sobre todas las entidades del sistema. Es el personal de la asociación OnAPB. ### 5.1 Inicio de Sesión Igual que el Admin de Club: pestaña "Administradores", usuario y contraseña. ### 5.2 Dashboard del Súper Admin (`/admin`) Al ingresar, el Súper Admin ve: - **Estadísticas globales**: total de clubes, equipos, jugadores, eventos, promociones y noticias en todo el sistema. - Accesos rápidos a todos los módulos. --- ### 5.3 Módulo de Clubes (`/admin/clubes`) #### Ver todos los clubes - Lista de todos los clubes registrados con conteo de equipos y jugadores. #### Crear un club 1. Clic en **"Nuevo Club"**. 2. Ingresar ID Club (numérico) y Nombre. 3. Guardar. #### Editar un club - Modificar nombre, logo, fondo de QR y color de texto. (Igual que el Admin de Club pero con acceso a cambiar el nombre también). #### Eliminar un club - El club se marca como eliminado (SoftDelete). Los equipos y jugadores asociados quedan preservados. --- ### 5.4 Módulo de Equipos (`/admin/equipos`) Idéntico al del Admin de Club pero con visión global (todos los clubes). Al crear un equipo, el Súper Admin puede seleccionar cualquier club del sistema. --- ### 5.5 Módulo de Jugadores (`/admin/jugadores`) #### Ver todos los jugadores - Lista global de todos los jugadores de todos los clubes. - Filtro por nombre, apellido o DNI. - Paginación de 25 registros por página. #### Crear, editar, eliminar jugador - Idéntico al Admin de Club pero con acceso a cambiar el **Club Actual** (útil para finiquitar traspasos). #### Importar / Exportar CSV - Importación masiva de jugadores en formato CAB, Interno o Legado. - Importar para un club específico (seleccionado en el formulario). --- ### 5.6 Módulo de Eventos / Partidos (`/admin/eventos`) #### Ver todos los eventos - Lista de todos los partidos con filtros por estado: Próximos, En Curso, Finalizados. #### Crear un nuevo partido 1. Clic en **"Nuevo Evento"**. 2. Completar: - **Nombre del evento** (generado automáticamente en base a equipos). - **Equipo Local** y **Equipo Visitante** (deben ser de la misma categoría y grupo si pertenecen a un torneo). - **Fecha**, **Hora de Inicio** y **Hora de Fin**. - **Sede**. - **Torneo** (opcional): asignar el evento a un torneo existente. - **Límite de QRs por jugador** (configurable). 3. Guardar. El evento queda en estado **"Próximo"**. #### Editar un partido - Modificar cualquier campo del evento. #### Registrar resultados 1. Desde el listado de eventos, entrar al evento. 2. Ir a la sección **"Cargar Estadísticas"** o **"Resultado"**. 3. Ingresar marcador local y marcador visitante. 4. Registrar puntos individuales por jugador (para la tabla de goleadores). 5. Guardar. El evento cambia automáticamente a estado **"Finalizado"**. #### Eliminar un evento - El evento se marca como eliminado (SoftDelete). Los QRs asociados se limpian. --- ### 5.7 Módulo de Torneos (`/admin/torneos`) #### Crear un torneo 1. Clic en **"Nuevo Torneo"**. 2. Ingresar nombre y año. 3. Guardar. #### Añadir equipos al torneo Desde la vista del torneo: 1. Buscar el equipo a agregar. 2. Asignarle un **grupo** (ej: Grupo A, Grupo B) si aplica. 3. Guardar. #### Generar Fixture de Fase Regular 1. Desde el torneo, ir a **"Generar Fixture"**. 2. Configurar la cantidad de vueltas (ida, ida y vuelta). 3. El sistema genera un **preview** de todos los partidos a jugarse. 4. Confirmar para crear los eventos en el sistema. #### Importar resultados históricos - Subir un CSV con resultados de partidos ya jugados para cargar históricos de torneos anteriores. #### Gestionar Playoffs 1. Al finalizar la fase regular, ir a **"Playoffs"**. 2. Configurar cuántos equipos clasifican a playoffs. 3. Generar el bracket eliminatorio. 4. A medida que se juegan los partidos, **"Avanzar ganador"** al siguiente cruce. #### Ver posiciones y goleadores - Desde `/torneos/{id}/posiciones`: tabla de posiciones filtrable por grupo/categoría. - Desde `/torneos/{id}/goleadores`: ranking de anotadores. - Desde `/torneos/{id}/playoffs`: bracket visual del cuadro eliminatorio. --- ### 5.8 Módulo de Pases / Traspasos (`/admin/pases`) #### Ver todos los pases - Lista de todas las solicitudes de traspaso pendientes, aprobadas y rechazadas. #### Aprobar o rechazar un pase 1. Desde el listado, hacer clic en el pase pendiente. 2. Revisar los datos: jugador, club origen, club destino. 3. Hacer clic en **"Aprobar"** → el jugador cambia de club automáticamente. 4. O hacer clic en **"Rechazar"** → el pase queda como rechazado y el jugador permanece en su club actual. #### Crear un pase directamente El Súper Admin puede ejecutar una transferencia sin necesidad de solicitud previa, seleccionando jugador, club destino y guardando. --- ### 5.9 Módulo de Noticias (`/admin/noticias`) #### Crear una noticia 1. Clic en **"Nueva Noticia"**. 2. Completar: Título, Contenido (texto largo), Imagen (opcional). 3. Guardar. La noticia aparece en `/noticias`. #### Editar y eliminar noticias - Actualizar cualquier campo. - Eliminar elimina la noticia del sitio público. --- ### 5.10 Módulo de Promociones (`/admin/promociones`) #### Crear una promoción / local con beneficio 1. Clic en **"Nueva Promoción"**. 2. Completar: Nombre del local, Descripción del beneficio, Dirección, Imagen, Coordenadas (para el mapa). 3. Guardar. El local aparece en `/promos`. #### Editar y eliminar promociones - Actualizar información del local. - Eliminar la promoción del sistema. --- ### 5.11 Módulo de Carrusel / Hero (`/admin/carousel`) El carrusel es la sección de diapositivas destacadas en la portada del sitio. #### Agregar una diapositiva 1. Clic en **"Nueva Diapositiva"**. 2. Subir una imagen (recomendado: formato ancho/horizontal). 3. Completar un enlace opcional (ej: enlace a una noticia o evento). 4. Guardar. #### Editar y eliminar diapositivas - Actualizar imagen o enlace. - Eliminar la diapositiva del carrusel. --- ### 5.12 Módulo de Sponsors (`/admin/sponsors`) #### Agregar un sponsor 1. Clic en **"Nuevo Sponsor"**. 2. Subir el logo del patrocinador. 3. Ingresar URL del sitio del sponsor (opcional). 4. Guardar. El logo aparece en la franja rotativa del pie de página. #### Editar y eliminar sponsors - Reemplazar logo o cambiar URL. - Eliminar el sponsor de la franja. --- ### 5.13 Módulo de Usuarios Administradores (`/admin/usuarios`) #### Ver todos los administradores - Lista de todos los usuarios con acceso al panel de administración. #### Crear un nuevo administrador 1. Clic en **"Nuevo Usuario Admin"**. 2. Ingresar: - **Usuario** (nombre de login). - **Contraseña**. - **Rol**: `1 = Súper Admin` o `2 = Admin de Club`. - **Club** (solo si rol 2): asociar al club que administrará. 3. Guardar. #### Editar y eliminar administradores - Cambiar contraseña, rol o club asignado. - Eliminar el acceso de un administrador. --- ### 5.14 Módulo de Categorías (`/admin/categorias`) Las categorías definen los rangos de edad de los jugadores (ej: U13 = 12-13 años). #### Crear una categoría 1. Ingresar nombre (ej: "U13"), edad mínima (ej: 12) y edad máxima (ej: 13). 2. Marcar si es **"Categoría Libre"** (los jugadores de esta categoría obtienen 50% de descuento en entradas). 3. Guardar. #### Editar y eliminar categorías - Las categorías modificadas se aplican automáticamente a todos los jugadores ya existentes (la categoría se calcula dinámicamente). --- ### 5.15 Escanear QR en Eventos (`/admin/escanear-qr`) Idéntico al del Admin de Club, pero con visión de todos los eventos del sistema. Ver apartado 4.7 para el proceso detallado. --- ### 5.16 Configuración General (`/admin/configuracion`) Ajustes globales del sistema: - Frecuencia de backups automáticos. - Otros parámetros de comportamiento del sistema. --- ### 5.17 OnAPB Genius — Asistente de IA El portal incluye un asistente conversacional basado en IA (Google Gemini) que permite consultar y operar el sistema mediante lenguaje natural. Se invoca desde el botón flotante del chat. **Quién puede usar qué:** | Rol | Tools disponibles | |---|---| | Visitante / Aficionado / Jugador | Chat de ayuda general del portal (sin acceso a operaciones) | | Administrador de Club | Solo tools de **lectura** | | Súper Administrador | Lectura + **escritura** + **rollback** | **Tools disponibles para Súper Admin:** **Lectura (consulta de datos):** - `listar_torneos` — Lista todos los torneos con ID, nombre y fechas. Usala cuando necesites buscar el ID de un torneo por su nombre. - `listar_equipos` — Lista equipos. Filtros opcionales: `id_torneo`, `grupo` ("A", "B", ...). - `listar_eventos` — Lista partidos. Filtros opcionales: `fecha_desde`, `fecha_hasta` (formato YYYY-MM-DD), `id_torneo`. **Escritura (modifican la base de datos — requieren tu confirmación explícita):** - `crear_partido` — Crea un nuevo partido. Campos: `id_equipo_local`, `id_equipo_visitante`, `fecha_evento`, `hora_inicio`, `hora_fin`, `sede`, `id_torneo`. - `cargar_puntaje` — Actualiza el marcador de un partido existente. Campos: `id_evento` (UUID), `marcador_local`, `marcador_visitante`. - `redactar_noticia` — Publica una noticia. Campos: `titulo`, `contenido`, `id_torneo` (opcional), `categoria` (opcional). **Rollback (deshacer una creación):** - `eliminar_noticia` — Borra una noticia por su `id_noticia` (numérico). - `eliminar_partido` — Borra (soft delete) un partido por su `id_evento` (UUID). **Cómo se usa (flujo típico):** 1. Escribí en lenguaje natural lo que querés ("creá una noticia sobre el partido del sábado", "qué equipos hay en el torneo Apertura", "cargá el marcador del partido de ayer 78 a 65"). 2. Si pedís una acción de escritura, Genius **primero te muestra un resumen** con los datos a usar y te pregunta "¿Confirmás?". Tenés que responder "sí", "dale", "confirmo" u "ok" para que ejecute. 3. Tras crear algo, Genius te devuelve el ID del recurso. Guardalo por si querés revertir. 4. Para deshacer: pedile "eliminá la noticia ID X" o "borrá el partido que acabás de crear". Volverá a pedir confirmación antes de borrar. **Buenas prácticas:** - Si mencionás un torneo/equipo por nombre, Genius usa `listar_torneos` / `listar_equipos` para resolver el ID. No hace falta que lo sepas de memoria. - Verificá siempre el resumen de confirmación antes de responder "sí". La IA puede interpretar mal fechas o nombres ambiguos. - Si algo sale mal, revisá `storage/logs/laravel.log` donde quedan registrados los errores de las tools. - Los límites de la cuenta gratuita de Gemini están configurados en `.env` (`GENIUS_MAX_MESSAGES_PER_SESSION`, `GENIUS_SESSION_WINDOW_MINUTES`). Podés ajustarlos si cambia el uso. --- ## ❓ Preguntas Frecuentes **¿Cómo sé si ya tengo una cuenta de jugador?** Si sos jugador federado, tu DNI ya está en el sistema cargado por el admin de tu club. Solo debés ir a `/asociate` → pestaña "Soy Jugador" e ingresar tus datos para activar la cuenta. **¿Puedo tener cuenta de jugador Y de aficionado con el mismo DNI?** No. El sistema detecta si ya existe un registro (como jugador o aficionado) y te informa antes de permitir el registro. **¿Qué pasa si el QR que generé fue escaneado?** El estado del QR cambia a "Usado" y no puede ser utilizado nuevamente. Cada QR tiene un solo uso. **¿Puedo generar el QR de una promo más de una vez?** No. Por cada usuario y cada promoción, solo se puede generar un QR de beneficio. **¿Qué significa cada tipo de QR?** - `invitado` → Jugador que pertenece a un equipo del partido. Puede generar múltiples (para acompañantes). - `libre_50` → Jugador de categoría Libre. Obtiene descuento del 50% en la entrada. - `publico` → Aficionado. Acceso estándar. --- *Manual redactado para el Proyecto Integrador OnAPB — Taller de Integración, FCYT UADER 2026.*