CLUB DE DOMINO TARIRA 2.0 - ENTREGA 0.8
MOTOR INICIAL DE TORNEOS SUIZOS

Incluye la base acumulada de la entrega 0.7 y agrega:
- Configuración de 1 a 30 rondas al crear un torneo (administrador).
- swiss.php: generación de rondas y emparejamientos, captura de resultados y clasificación.
- Puntuación de torneo: victoria 2, empate 1 para cada pareja, derrota 0.
- Descanso por número impar: 2 puntos, registrado como DESCANSO y no como victoria disputada.
- Prioridad de descanso: menor puntuación acumulada y, primero, parejas que no hayan descansado.
- Emparejamientos ordenados por puntuación, diferencia y puntos a favor.
- Algoritmo de emparejamiento voraz que procura evitar rivales repetidos.
- La ronda siguiente solo se habilita cuando todos los resultados de la ronda anterior están completos.
- Clasificación con puntos de torneo, diferencia, puntos a favor y enfrentamiento directo cuando el empate es entre exactamente dos parejas empatadas en los criterios previos.
- Registro en bitácora de generación de rondas y resultados.

INSTALACION EN ENTORNO DE PRUEBAS
1. No instalar todavía en el sitio operativo.
2. Respaldar archivos y base de datos.
3. Extraer este ZIP en una carpeta de pruebas independiente.
4. Sobre la base de pruebas que ya tiene aplicadas schema.sql y migraciones 0.5, 0.6 y 0.7, ejecutar UNA SOLA VEZ:
   database/swiss_0_8.sql
5. No volver a ejecutar schema.sql ni migraciones anteriores.
6. Ingresar como administrador y crear un torneo de prueba con número de rondas.
7. Configurar la categoría en Cupos y tarifas, registrar parejas y probar generación de rondas.

REGLAS Y LIMITACIONES
- El número de rondas se define al crear el torneo; el módulo de esta entrega no permite modificarlo después.
- Se necesitan al menos dos parejas activas por torneo y categoría.
- El sistema intenta evitar repeticiones, pero en grupos pequeños o con restricciones puede repetir enfrentamientos.
- El emparejamiento es una heurística inicial, no un motor de optimización exhaustivo de todas las variantes suizas.
- El descanso otorga 2 puntos de torneo; no suma puntos a favor/en contra ni cuenta como partido jugado o victoria.
- El enfrentamiento directo se usa como criterio cuando hay exactamente dos parejas empatadas en puntos de torneo, diferencia y puntos a favor. Empates múltiples y persistentes quedan pendientes de un criterio adicional del reglamento del club.
- El módulo 0.6 de resultados anterior se conserva por compatibilidad; el módulo suizo utiliza sus propias tablas y resultados para permitir empates.
- La bitácora registra generación de rondas y resultados suizos; no registra aún todos los cambios de todos los módulos.
- No implementa todavía cierre/reapertura manual de ronda, edición/anulación de resultados, historial de cambios de programación ni informes imprimibles.
- No modifica TARIRA 1.0.
- No incluye todavía modo offline/LAN ni sincronización web.
- No integra pagos automáticos Yappy.
- Prototipo no probado en servidor real. Requiere revisión de seguridad, integridad y pruebas funcionales antes de producción.

PUNTUACION
Victoria 2 puntos; empate 1 punto para cada pareja; derrota 0.
Descanso por número impar: 2 puntos de torneo, marcado como descanso.

Requisitos: PHP 8.1+, PDO MySQL, MySQL/MariaDB.
