|
| 1 | +# Changelog |
| 2 | + |
| 3 | +Todos los cambios notables de este proyecto serán documentados en este archivo. |
| 4 | + |
| 5 | +## [2.0.0] - 2024-12-19 |
| 6 | + |
| 7 | +### 🚀 Nuevas Características |
| 8 | + |
| 9 | +#### Compatibilidad Extendida |
| 10 | +- ✅ **Soporte para Laravel 12.x** - Compatibilidad completa con Laravel 5.5 a 12.x |
| 11 | +- ✅ **PHP 8.3** - Soporte para PHP 7.4 a 8.3 |
| 12 | +- ✅ **Guzzle 7.x** - Compatibilidad con Guzzle 6.2+ y 7.x |
| 13 | + |
| 14 | +#### API y Funcionalidades |
| 15 | +- ✅ **Codificación UCS2/Unicode** - Soporte completo para emojis y caracteres especiales |
| 16 | +- ✅ **Programación de envíos** - Métodos para programar SMS en el futuro |
| 17 | +- ✅ **Validación avanzada** - Validación automática de números, mensajes y configuración |
| 18 | +- ✅ **Método sendMessage()** - Nuevo método para envío de mensajes individuales |
| 19 | +- ✅ **Método create()** - Factory method para creación rápida de mensajes |
| 20 | + |
| 21 | +#### Configuración y Gestión |
| 22 | +- ✅ **Archivo de configuración** - Nuevo archivo `config/smsup.php` con opciones avanzadas |
| 23 | +- ✅ **Variables de entorno** - Configuración completa vía `.env` |
| 24 | +- ✅ **Logging configurable** - Sistema de logs personalizable |
| 25 | +- ✅ **Timeouts HTTP** - Configuración de timeouts para peticiones |
| 26 | +- ✅ **Modo de prueba mejorado** - Mejor manejo del modo test |
| 27 | + |
| 28 | +#### Manejo de Errores |
| 29 | +- ✅ **Excepciones específicas** - Nueva clase `ValidationException` |
| 30 | +- ✅ **Mensajes en español** - Todos los errores traducidos |
| 31 | +- ✅ **Validación de entrada** - Validación exhaustiva antes del envío |
| 32 | +- ✅ **Manejo de errores HTTP** - Mejor gestión de errores de red |
| 33 | + |
| 34 | +#### Respuestas y Tracking |
| 35 | +- ✅ **Métodos de utilidad** - `isSuccessful()`, `getMessageCount()`, etc. |
| 36 | +- ✅ **Información detallada** - Métodos para obtener estadísticas de envío |
| 37 | +- ✅ **Serialización** - Métodos `toArray()`, `toJson()`, `__toString()` |
| 38 | +- ✅ **Estados de mensaje** - Verificación de estados (pending, rejected, etc.) |
| 39 | + |
| 40 | +### 🔧 Mejoras |
| 41 | + |
| 42 | +#### SmsUpMessage |
| 43 | +- ✅ **Métodos de programación** - `sendInMinutes()`, `sendInHours()`, `sendNow()` |
| 44 | +- ✅ **Métodos de codificación** - `gsm7()`, `unicode()`, `encoding()` |
| 45 | +- ✅ **Cálculo de SMS** - `getSmsCount()` para estimar número de SMS |
| 46 | +- ✅ **Validación integrada** - `validate()` para verificar completitud |
| 47 | +- ✅ **Factory method** - `create()` para creación rápida |
| 48 | + |
| 49 | +#### SmsUpManager |
| 50 | +- ✅ **Arquitectura mejorada** - Separación de responsabilidades |
| 51 | +- ✅ **Validación previa** - Validación antes de envío |
| 52 | +- ✅ **Logging integrado** - Logs automáticos de éxito y error |
| 53 | +- ✅ **Manejo de reintentos** - Configuración de reintentos automáticos |
| 54 | +- ✅ **Soporte para enlaces** - Detección automática de mensajes con links |
| 55 | + |
| 56 | +#### SmsUpResponse y SmsUpResponseMessage |
| 57 | +- ✅ **Métodos de estado** - `isSuccessful()`, `hasError()`, `isPending()` |
| 58 | +- ✅ **Estadísticas** - Contadores de mensajes exitosos/fallidos |
| 59 | +- ✅ **Información detallada** - `getSummary()`, `getStatusInfo()` |
| 60 | +- ✅ **Serialización** - Conversión a array/JSON |
| 61 | + |
| 62 | +#### SmsUpChannel (Notifications) |
| 63 | +- ✅ **Inyección de dependencias** - Mejor integración con el container |
| 64 | +- ✅ **Detección automática** - Múltiples formas de obtener números de teléfono |
| 65 | +- ✅ **Manejo de errores** - Excepciones específicas para notificaciones |
| 66 | +- ✅ **Configuración automática** - Aplicación de valores por defecto |
| 67 | + |
| 68 | +#### SmsUpServiceProvider |
| 69 | +- ✅ **Configuración publicable** - `vendor:publish` para configuración |
| 70 | +- ✅ **Compatibilidad versiones** - Soporte para diferentes versiones de Laravel |
| 71 | +- ✅ **Registro mejorado** - Mejor registro de servicios y aliases |
| 72 | +- ✅ **Validación de configuración** - Verificación de configuración al inicio |
| 73 | + |
| 74 | +### 📚 Documentación |
| 75 | + |
| 76 | +- ✅ **README.md actualizado** - Documentación completa en español |
| 77 | +- ✅ **USAGE.md nuevo** - Guía detallada de uso con ejemplos |
| 78 | +- ✅ **Comentarios en código** - Documentación completa en español |
| 79 | +- ✅ **Ejemplos prácticos** - Casos de uso reales y avanzados |
| 80 | + |
| 81 | +### 🔄 Cambios de Compatibilidad |
| 82 | + |
| 83 | +#### Configuración |
| 84 | +- ⚠️ **Nueva configuración** - Migración de `config/services.php` a `config/smsup.php` |
| 85 | +- ⚠️ **Variables de entorno** - Nuevas variables `SMSUP_*` en lugar de `SMSUP_KEY` |
| 86 | +- ⚠️ **Canal de notificaciones** - Cambio de `smsUp` a `smsup` (minúsculas) |
| 87 | + |
| 88 | +#### API |
| 89 | +- ✅ **Retrocompatibilidad** - Los métodos existentes siguen funcionando |
| 90 | +- ✅ **Nuevos métodos** - Métodos adicionales sin romper la API existente |
| 91 | +- ✅ **Mejores respuestas** - Objetos de respuesta más informativos |
| 92 | + |
| 93 | +### 🐛 Correcciones |
| 94 | + |
| 95 | +- ✅ **Manejo de JSON** - Mejor manejo de respuestas JSON malformadas |
| 96 | +- ✅ **Validación de teléfonos** - Validación más robusta de números |
| 97 | +- ✅ **Codificación de caracteres** - Mejor soporte para caracteres especiales |
| 98 | +- ✅ **Timeouts** - Configuración de timeouts para evitar colgados |
| 99 | +- ✅ **Memory leaks** - Optimizaciones de memoria |
| 100 | + |
| 101 | +### 📦 Dependencias |
| 102 | + |
| 103 | +#### Actualizadas |
| 104 | +- `illuminate/*` - Soporte para Laravel 12.x |
| 105 | +- `guzzlehttp/guzzle` - Soporte para Guzzle 7.x |
| 106 | +- `nesbot/carbon` - Soporte para Carbon 3.x |
| 107 | + |
| 108 | +#### Nuevas (dev) |
| 109 | +- `phpunit/phpunit` - Para testing |
| 110 | +- `orchestra/testbench` - Para testing con Laravel |
| 111 | +- `mockery/mockery` - Para mocking en tests |
| 112 | + |
| 113 | +### 🔧 Configuración de Migración |
| 114 | + |
| 115 | +Para migrar desde la versión 1.x: |
| 116 | + |
| 117 | +1. **Publicar nueva configuración:** |
| 118 | + ```bash |
| 119 | + php artisan vendor:publish --tag=smsup-config |
| 120 | + ``` |
| 121 | + |
| 122 | +2. **Actualizar variables de entorno:** |
| 123 | + ```env |
| 124 | + # Antes |
| 125 | + SMSUP_KEY=tu_clave |
| 126 | + |
| 127 | + # Ahora |
| 128 | + SMSUP_API_KEY=tu_clave |
| 129 | + SMSUP_DEFAULT_FROM=TuEmpresa |
| 130 | + SMSUP_TEST_MODE=false |
| 131 | + ``` |
| 132 | + |
| 133 | +3. **Actualizar notificaciones:** |
| 134 | + ```php |
| 135 | + // Antes |
| 136 | + public function via($notifiable) { |
| 137 | + return ['smsUp']; |
| 138 | + } |
| 139 | + |
| 140 | + // Ahora (recomendado) |
| 141 | + public function via($notifiable) { |
| 142 | + return ['smsup']; |
| 143 | + } |
| 144 | + ``` |
| 145 | + |
| 146 | +### 🎯 Próximas Características (Roadmap) |
| 147 | + |
| 148 | +- 📱 **Soporte para MMS** - Envío de mensajes multimedia |
| 149 | +- 📊 **Dashboard de estadísticas** - Panel de control para métricas |
| 150 | +- 🔄 **Queue jobs** - Integración con colas de Laravel |
| 151 | +- 📧 **Plantillas** - Sistema de plantillas para mensajes |
| 152 | +- 🌍 **Internacionalización** - Soporte para múltiples idiomas |
| 153 | +- 🧪 **Testing helpers** - Helpers para testing de SMS |
| 154 | + |
| 155 | +--- |
| 156 | + |
| 157 | +## [1.x] - Versiones Anteriores |
| 158 | + |
| 159 | +Las versiones 1.x proporcionaban funcionalidad básica de envío de SMS con soporte limitado para versiones de Laravel. |
| 160 | + |
| 161 | +### Características de 1.x |
| 162 | +- Envío básico de SMS |
| 163 | +- Integración con Laravel Notifications |
| 164 | +- Soporte para Laravel 5.5-11.x |
| 165 | +- Configuración en `config/services.php` |
| 166 | +- Funcionalidad básica de webhooks |
0 commit comments