# Changelog

Historial de cambios de CD-System. Formato basado en [Keep a Changelog](https://keepachangelog.com/). Versión según [Semantic Versioning](https://semver.org/).

---

## [2.0.0] - 2026-02-21 (actual)

### Added
- **Módulo Menu** -- Nuevo módulo para cartas de restaurante con categorías, menús y productos (2026-02-02)
- **Comando `bewpro:provision`** -- Provisión automatizada de proyectos desde un solo JSON
- **Provision templates** -- `provision-template.json` y `provision-muma.json` como referencia
- **Arquitectura DB-based** -- Configuración del proyecto almacenada en DB (tabla `settings`) con SiteConfigService
- **SiteConfigServiceProvider** -- Merge automático de config de DB con config de archivos (DB tiene prioridad)
- **CdSystemConfigServiceProvider** -- Carga configuración de módulos y demos desde DB
- **Sistema de demos** -- 16 demos disponibles con headers, footers, vistas base, CSS y skins
- **Page-headers dinámicos** -- Cada módulo se adapta visualmente al demo activo via `dynamic-header.blade.php`
- **Proceso Q/A documentado** -- Pasos 1-3 para dar de alta proyectos (brand assets, site data, módulos)
- **Integración Cloudinary** -- Assets del proyecto se suben a Cloudinary via `AssetsSeeder` y `ProjectAssetService`
- **Analytics desde DB** -- Google Analytics configurado por proyecto en DB (no en .env)
- **Módulo Traducciones** -- Soporte multiidioma para posts, productos y categorías
- **Scoping CSS por demo** -- Clase `html.demo-{nombre}` para aislamiento visual multi-tenant
- **Documentación reestructurada** -- Fundamentos, arquitectura, productos, Q/A, guías, deploy

### Changed
- **Configuración migrada a DB** -- Datos del proyecto ya no viven en `config/site.php` sino en tabla `settings`
- **Project_Seeder condicional** -- Solo ejecuta seeders de módulos activos (lee desde `cd-system.json`)
- **Orden CSS** -- Demo CSS se carga después de custom.css para que la identidad del demo prevalezca

### Products validated
- **Restaurant** (demo-restaurant) -- Proyecto referencia: Muma (2026-01-20 → 2026-02-21)
- **Law Firm** (demo-law-firm-2) -- Proyecto referencia: Bewpro Law Firm

### Projects deployed
- Muma Empanadas (demo-restaurant)
- Bewpro Law Firm (demo-law-firm-2)
- Technoa (demo-accounting-1, 2025-12-23)
- Radoc Bikes (demo-product-landing, 2025-12-23)
- Copito Helados (2025-12-26)
- Pablo Carletto PH (demo-photography-3, 2026-01-05)
- Grupo RepMan (demo-construction-2, 2026-01-13)
- Pevero Salud (demo-insurance, 2026-01-31)
- Gemafi Inversiones (2026-02-12)

---

## [1.0.0] - 2025-12-23 (base estable)

### Core
- Framework Laravel 9
- Panel admin basado en Metronic
- Sistema multi-tenant (1 DB por proyecto)
- Autenticación con Spatie Permissions

### Modules available
- blog (posts con categorías y traducciones)
- products (catálogo con categorías, tags, imágenes)
- services (servicios con categorías)
- projects (portfolio con categorías y tags)
- gallery (galería de imágenes con categorías y tags)
- team (miembros del equipo con categorías)
- references (referencias y testimonios)
- news (noticias con categorías)
- faqs (preguntas frecuentes con categorías)
- newsletter (suscripción)
- about, contact (páginas base)

### Demos available
- demo-restaurant
- demo-law-firm-2
- demo-construction
- demo-construction-2
- demo-accounting-1
- demo-accounting-2
- demo-architecture-2
- demo-creative-agency-2
- demo-digital-agency-2
- demo-photography-3
- demo-insurance
- demo-marketing-1
- demo-product-landing
- demo-business-consulting
- demo-sass
- demo-transportation-logistic

---

## Política de versionado

- **MAJOR (X.0.0):** Cambios que rompen compatibilidad con proyectos existentes (cambios de schema, de API de configuración, de estructura de JSONs)
- **MINOR (0.X.0):** Nuevos módulos, nuevos demos, nuevas funcionalidades que no rompen proyectos existentes
- **PATCH (0.0.X):** Correcciones de bugs, ajustes visuales, mejoras de documentación

### Al actualizar proyectos existentes

1. Revisar este changelog para identificar cambios que afecten
2. Si hay migraciones nuevas: `php artisan migrate`
3. Si hay cambios en seeders: re-ejecutar solo los afectados
4. Limpiar caché: `php artisan config:clear && php artisan cache:clear && php artisan view:clear`
5. Verificar que el proyecto funciona correctamente
