# Gestión de Jugadores: Roles y Funcionalidades

Este documento detalla las capacidades y restricciones para los distintos tipos de administradores al crear o importar jugadores en el sistema OnAPB.

## 1. Creación Manual (Formulario Individual)

| Característica | Súper Administrador (Rol 1) | Administrador de Club (Rol 2) |
| :--- | :--- | :--- |
| **Club de Origen** | **Editable:** Puede seleccionar cualquier club registrado. | **Editable:** Puede seleccionar cualquier club registrado (ej: para pases entre clubes). |
| **Club Actual** | **Editable:** Puede asignar al jugador a cualquier club. | **Bloqueado:** El jugador se asigna automáticamente a su propio club. |
| **Validación de DNI** | Bloqueado si el DNI ya existe. Muestra el club actual del jugador. | Bloqueado si el DNI ya existe. Muestra el club actual del jugador. |
| **Generación de ID** | Automática: Basada en Club Origen + Año Nacimiento + Secuencia. | Automática: Basada en Club Origen + Año Nacimiento + Secuencia. |
| **Estado Inicial** | Siempre `Inactivo`. Debe completarse en `/asociate`. | Siempre `Inactivo`. Debe completarse en `/asociate`. |

## 2. Importación Masiva (Archivo .CSV)

**Formato del archivo:** `DNI; Apellido; Nombre; ddmmaaaa; id_club_origen`

| Característica | Súper Administrador (Rol 1) | Administrador de Club (Rol 2) |
| :--- | :--- | :--- |
| **Clubes de Origen Permitidos** | Cualquier ID de club. | **Solo su propio Club** o ID 99 (Default). |
| **Asignación de Club Actual** | Se asigna el mismo ID del Club de Origen. | **Forzado** al ID del club del administrador. |
| **Gestión de Errores** | Omite duplicados si el DNI ya existe. | Omite duplicados; bloquea filas con IDs de otros clubes. |

---

## Reglas Generales de Validación

### Control de Duplicados (DNI)
Independientemente del rol, el sistema no permite registros duplicados por DNI. 
- **Mensaje de Error:** *"No se puede registrar al jugador dado que ya pertenece al club [Nombre del Club]."*
- Esta validación asegura que no se creen registros paralelos para el mismo jugador.

### Generación del `id_jugador`
El ID del jugador es un código único compuesto: `CCYYSSS`.
- `CC`: ID del Club de Origen.
- `YY`: Últimos dos dígitos del año de nacimiento.
- `SSS`: Secuencia incremental (ej: 01, 02) para ese club y ese año.

### Datos Automáticos
- **Edad:** Se calcula automáticamente a partir de la fecha de nacimiento.
- **Categoría:** Es dinámica. Se calcula cada año basándose en el año de nacimiento (ej: U15 para jugadores que cumplen 14 o 15 años en el año corriente).
- **Contraseña:** Si no se especifica, queda pendiente hasta la activación por el usuario.
