# Guía de Pruebas para Envío de SMS

## ✅ Flujo del Sistema

El sistema funciona así:

1. **Usuario agrega contacto** con número completo: `+51943967759` (código país + número)
2. **Usuario selecciona contacto** de la lista
3. **Usuario escribe mensaje** en el chat (máximo 160 caracteres)
4. **Usuario hace clic en enviar**
5. **Sistema toma:**
   - Número del contacto: `selectedContact.phone` (ej: `+51943967759`)
   - Mensaje del input: `messageInput.value`
6. **Sistema envía a Twilio** con esos datos
7. **Sistema guarda en BD** el mensaje con estado

## 🧪 Cómo Probar

### Prueba en Local

**Requisitos:**
- ✅ Archivo `.env` configurado con credenciales de Twilio
- ✅ Composer instalado: `composer require twilio/sdk`
- ✅ Servidor local funcionando (XAMPP, WAMP, PHP built-in)
- ✅ Base de datos local configurada

**Pasos:**

1. **Inicia tu servidor local:**
   ```powershell
   # Si usas PHP built-in
   cd gpsphonnex/src
   php -S localhost:8000
   ```

2. **Abre la aplicación:**
   ```
   http://localhost:8000/administrador/envio-sms/envio-sms.php
   ```

3. **Agrega un contacto de prueba:**
   - Haz clic en "Agregar Contacto" (+)
   - Nombre: `Test Local`
   - Teléfono: `+51943967759` (o tu número verificado en Twilio)
   - Guarda

4. **Envía un mensaje:**
   - Selecciona el contacto
   - Escribe un mensaje: `Hola, esto es una prueba desde local`
   - Haz clic en enviar

5. **Verifica:**
   - ✅ Deberías ver el mensaje en el chat
   - ✅ Deberías recibir el SMS en tu teléfono
   - ✅ Revisa la consola del navegador (F12) por errores
   - ✅ Revisa los logs de Twilio: https://console.twilio.com/us1/monitor/logs/sms

### Prueba en Producción

**Pasos:**

1. **Accede a la aplicación en producción:**
   ```
   https://tu-dominio.com/administrador/envio-sms/envio-sms.php
   ```

2. **Agrega un contacto:**
   - Nombre: `Test Produccion`
   - Teléfono: `+51943967759` (número verificado en Twilio)

3. **Envía un mensaje de prueba**

4. **Verifica en Twilio Console:**
   - Ve a: https://console.twilio.com/us1/monitor/logs/sms
   - Deberías ver el mensaje enviado con estado "delivered" o "sent"

## ⚠️ Importante: Modo Trial de Twilio

**En modo TRIAL solo puedes enviar a números VERIFICADOS:**

1. Ve a: https://console.twilio.com/us1/develop/phone-numbers/manage/verified
2. Haz clic en "Add a new number"
3. Ingresa el número de destino (ej: `+51943967759`)
4. Verifica el número con el código que recibes por SMS
5. Una vez verificado, podrás enviar SMS a ese número

## 🔍 Verificación del Flujo

### Lo que el sistema hace automáticamente:

1. ✅ Toma el número del contacto (`+51943967759`)
2. ✅ Limpia el número (remueve espacios, guiones, etc.)
3. ✅ Valida formato E.164
4. ✅ Toma el mensaje del input
5. ✅ Guarda en BD con estado "enviando"
6. ✅ Envía a Twilio
7. ✅ Actualiza estado a "enviado" o "error"
8. ✅ Guarda `twilio_sid` para seguimiento

### Formato de Número Esperado:

- ✅ Correcto: `+51943967759` (Perú)
- ✅ Correcto: `+1234567890` (USA)
- ❌ Incorrecto: `943967759` (falta código país)
- ❌ Incorrecto: `51943967759` (falta el +)

## 🐛 Solución de Problemas

### Error: "Invalid phone number format"
- Verifica que el número tenga el formato `+[código país][número]`
- Ejemplo Perú: `+51943967759`
- El sistema limpia automáticamente espacios y guiones

### Error: "The number +XXXXXXXXXX is unverified"
- En modo trial, debes verificar el número en Twilio primero
- Ve a Verified Caller IDs y agrega el número

### Error: "Twilio credentials not configured"
- Verifica que el archivo `.env` existe en `src/api/.env`
- Verifica que tiene las variables: `TWILIO_ACCOUNT_SID`, `TWILIO_AUTH_TOKEN`, `TWILIO_PHONE_NUMBER`

### No recibo el SMS
- Verifica que el número esté verificado (modo trial)
- Revisa los logs en Twilio Console
- Verifica que tu cuenta tenga crédito suficiente

## 📝 Checklist de Prueba

- [ ] Archivo `.env` configurado con credenciales
- [ ] Twilio SDK instalado (`composer require twilio/sdk`)
- [ ] Número de destino verificado en Twilio (modo trial)
- [ ] Contacto agregado con formato correcto (`+51943967759`)
- [ ] Mensaje escrito en el chat
- [ ] Mensaje enviado correctamente
- [ ] SMS recibido en el teléfono
- [ ] Mensaje guardado en BD con estado correcto
- [ ] `twilio_sid` guardado en BD para seguimiento
