# TEMPLATE: AGREGAR NUEVOS TAROTISTAS/AGENTES
# Fecha: _____________
# Cantidad de agentes a agregar: _____________

## DATOS DE LOS AGENTES

### AGENTE 1
- Código (3-4 dígitos): _______________
- Nombre: _______________
- Apellidos: _______________
- Teléfono (móvil/fijo): _______________
- Password inicial: _______________
- Servicios asignados: _______________

### AGENTE 2
- Código (3-4 dígitos): _______________
- Nombre: _______________
- Apellidos: _______________
- Teléfono (móvil/fijo): _______________
- Password inicial: _______________
- Servicios asignados: _______________

### AGENTE 3
- Código (3-4 dígitos): _______________
- Nombre: _______________
- Apellidos: _______________
- Teléfono (móvil/fijo): _______________
- Password inicial: _______________
- Servicios asignados: _______________

(Agregar más si necesario)

## PASOS A EJECUTAR

### 1. BACKUP
```bash
# Ejecutado por: _______________ Fecha/Hora: _______________
mysqldump -u asteriskuser -p asterisk agentes > backup_agentes_$(date +%Y%m%d_%H%M%S).sql
mysqldump -u asteriskuser -p panel_tarot tarotistas > backup_tarotistas_$(date +%Y%m%d_%H%M%S).sql
```

### 2. VERIFICAR CÓDIGOS DISPONIBLES
```sql
-- Verificar que los códigos no existan
SELECT usuario FROM asterisk.agentes WHERE usuario IN ('___', '___', '___');
SELECT codigo_agente FROM panel_tarot.tarotistas WHERE codigo_agente IN ('___', '___', '___');
```

### 3. INSERTAR EN BASE DE DATOS ASTERISK
```sql
-- AGENTE 1
INSERT INTO asterisk.agentes (
    usuario,
    nombre,
    apellidos,
    password,
    telefono,
    estado_login,
    estado_ocupacion,
    dnd_status,
    activo,
    descripcion
) VALUES (
    '_______________',     -- Código
    '_______________',     -- Nombre
    '_______________',     -- Apellidos
    '_______________',     -- Password
    '_______________',     -- Teléfono
    0,                    -- Deslogueado inicialmente
    0,                    -- Libre
    0,                    -- Sin DND
    1,                    -- Activo
    'Agregado el _______________'
);

-- AGENTE 2
INSERT INTO asterisk.agentes (
    usuario,
    nombre,
    apellidos,
    password,
    telefono,
    estado_login,
    estado_ocupacion,
    dnd_status,
    activo,
    descripcion
) VALUES (
    '_______________',
    '_______________',
    '_______________',
    '_______________',
    '_______________',
    0,
    0,
    0,
    1,
    'Agregado el _______________'
);

-- Repetir para cada agente...
```

### 4. INSERTAR EN PANEL_TAROT (Si usa panel web)
```sql
-- AGENTE 1
INSERT INTO panel_tarot.tarotistas (
    codigo_agente,
    nombre,
    apellidos,
    estado_actual,
    activo,
    telefono_contacto,
    sync_with_asterisk
) VALUES (
    '_______________',     -- Mismo código que en agentes
    '_______________',     -- Nombre
    '_______________',     -- Apellidos
    'offline',            -- Estado inicial
    1,                    -- Activo
    '_______________',     -- Teléfono
    1                     -- Sincronizar
);

-- Obtener ID del tarotista insertado
SET @tarotista_id = LAST_INSERT_ID();

-- Crear mapeo de sincronización
INSERT INTO asterisk.sync_tarotistas_agentes (
    tarotista_id,
    tarotista_extension,
    agente_usuario,
    sync_enabled
) VALUES (
    @tarotista_id,
    '_______________',     -- Código agente
    '_______________',     -- Mismo código
    1
);

-- Repetir para cada agente...
```

### 5. ASIGNAR A SERVICIOS
```sql
-- Opción A: Agregar a servicios específicos
UPDATE [TABLA_SERVICIOS] 
SET prio2 = CONCAT(prio2, ',_______________')
WHERE numero IN ('918123456', '918999999');

-- Opción B: Agregar a todos los servicios de un tipo
UPDATE [TABLA_SERVICIOS] 
SET prio2 = CONCAT(prio2, ',_______________')
WHERE prio1 = 'TipoTarot';
```

### 6. CONFIGURAR ORDEN DE PRIORIDAD (Opcional)
```sql
-- Establecer orden de llamada
UPDATE asterisk.agentes SET orden_display = 10 WHERE usuario = '_______________';
UPDATE asterisk.agentes SET orden_display = 20 WHERE usuario = '_______________';
UPDATE asterisk.agentes SET orden_display = 30 WHERE usuario = '_______________';
```

### 7. PRUEBAS

#### Test 1: Verificar inserción correcta
```sql
-- En Asterisk
SELECT usuario, nombre, telefono, activo 
FROM asterisk.agentes 
WHERE usuario IN ('___', '___', '___');

-- En Panel
SELECT codigo_agente, nombre, estado_actual 
FROM panel_tarot.tarotistas 
WHERE codigo_agente IN ('___', '___', '___');

-- Sincronización
SELECT * FROM asterisk.sync_tarotistas_agentes 
WHERE agente_usuario IN ('___', '___', '___');
```

#### Test 2: Prueba de login
```bash
# Simular login de agente
# El agente debe llamar y marcar *10
# Código: _______________
# Password: _______________
```

#### Test 3: Verificar en servicios
```sql
SELECT numero, prio2 FROM [TABLA_SERVICIOS] 
WHERE prio2 LIKE '%___%';
```

#### Test 4: Llamada de prueba
```bash
# Hacer login como agente
# Verificar que recibe llamadas de los servicios asignados
```

### 8. COMUNICACIÓN A AGENTES

#### Información a proporcionar:
- [ ] Código de agente
- [ ] Password inicial
- [ ] Números a los que llamar para login (*10)
- [ ] Horarios de servicio
- [ ] Servicios asignados
- [ ] Procedimientos de trabajo

#### Plantilla de comunicación:
```
Estimado/a _______________:

Bienvenido/a al equipo de tarotistas.

Sus datos de acceso son:
- Código de agente: _______________
- Contraseña: _______________
- Teléfono registrado: _______________

Para iniciar sesión:
1. Llame al número del sistema: _______________
2. Marque *10
3. Ingrese su código de agente
4. Ingrese su contraseña

Para activar "No Molestar": Marque *14

Servicios asignados:
- _______________
- _______________

Horario de trabajo: _______________

Ante cualquier duda contacte a: _______________
```

### 9. DOCUMENTACIÓN

#### Actualizar CHANGELOG
```bash
echo "## [$(date +%Y-%m-%d)] - Agregados nuevos agentes
- Agente _______________: _______________
- Agente _______________: _______________
- Agente _______________: _______________
- Servicios asignados: _______________" >> /var/www/html/CHANGELOG.md
```

#### Actualizar lista maestra de agentes
- [ ] Documento Excel/CSV con todos los agentes
- [ ] Wiki interna
- [ ] Sistema de RRHH

## VERIFICACIÓN POST-IMPLEMENTACIÓN

### Primer día:
- [ ] Agentes pudieron hacer login
- [ ] Reciben llamadas correctamente
- [ ] Sin errores en logs

### Primera semana:
- [ ] Estadísticas de llamadas atendidas
- [ ] Tiempo promedio de conversación
- [ ] Satisfacción del servicio

## CHECKLIST DE BAJA DE AGENTE (Para futuro)

```sql
-- Desactivar agente
UPDATE asterisk.agentes SET activo = 0 WHERE usuario = '_______________';
UPDATE panel_tarot.tarotistas SET activo = 0 WHERE codigo_agente = '_______________';

-- Quitar de servicios
UPDATE [TABLA_SERVICIOS] 
SET prio2 = REPLACE(REPLACE(prio2, ',_______________', ''), '_______________,', '')
WHERE prio2 LIKE '%___%';

-- Forzar logout si está logueado
UPDATE asterisk.agentes 
SET estado_login = 0, estado_ocupacion = 0 
WHERE usuario = '_______________';
```

## NOTAS/OBSERVACIONES

_________________________________
_________________________________
_________________________________

## FIRMAS

Implementado por: _______________ Fecha: _______________
Revisado por: _______________ Fecha: _______________
RRHH notificado: _______________ Fecha: _______________