# Scope completo del dev frontend — mapping autoritativo

> **Source of truth** de qué puede editar un dev frontend en el repo `cd-frontend-dev`, mapeado contra cada item del sidebar admin y cada superficie del frontend público.
>
> **Última actualización**: 2026-05-16 (post-extensión scope clients/support/tokko/cd-base apps + faqs)
> **Sustituye**: parcialmente `admin-metronic-scope.md` (mantenido para detalle de seguridad)

---

## TL;DR

| Categoría | Items | Estado |
|---|---|---|
| ✅ Editables (sidebar admin) | **31** | Vía volúmenes Docker en `cd-frontend-dev` |
| 🚫 NO editables (intencional) | **4** | Vive solo en cd-system: project-setup, form-reseller, qa-checklist, home* |
| 🚫 Backend (todo) | — | app/, config/, routes/, database/, migrations |

\* `home` es frontend público, está cubierto pero en otro grupo de volúmenes.

---

## 1. Mapping completo del sidebar admin

Cada item que aparece en `/admin` del cd-frontend-dev, contra el path real, la carpeta de código, y si Maxi puede editarlo.

### 1.1 MI SITIO (Cliente)

| Item sidebar | Path | Carpeta editable | Status |
|---|---|---|---|
| Panel | `my-projects` | `modules/clients/admin/` | ✅ |
| Mis Pagos | `my-projects/billing` | `modules/clients/admin/` | ✅ |
| Soporte (cliente) | `my-projects/support` | `modules/support/admin/` | ✅ |
| Centro de Ayuda | `my-projects/help` | `modules/clients/admin/` | ✅ |

### 1.2 RESELLER

| Item sidebar | Path | Carpeta editable | Status |
|---|---|---|---|
| Panel Reseller | `reseller` | `modules/clients/admin/` | ✅ |
| Nuevo Proyecto | `reseller/projects/new` | `modules/clients/admin/` | ✅ |
| Proyectos-Cliente | `reseller/projects` | `modules/clients/admin/` | ✅ |
| Mis Clientes | `reseller/customers` | `modules/clients/admin/` | ✅ |
| Mi Actividad | `reseller/activity` | `modules/clients/admin/` | ✅ |

### 1.3 PANEL COMERCIAL (System Admin)

| Item sidebar | Path | Carpeta editable | Status |
|---|---|---|---|
| Dashboard | `admin/dashboard` | `modules/clients/admin/dashboard.blade.php` | ✅ |
| Customers | `admin/customers` | `modules/clients/admin/customers/` | ✅ |
| Resellers | `admin/resellers` | `modules/clients/admin/resellers/` | ✅ |
| Tenants | `admin/tenants` | `modules/clients/admin/tenants.blade.php` | ✅ |
| Audit Log | `admin/audit-log` | `modules/clients/admin/audit-log.blade.php` | ✅ |
| Onboarding | `admin/onboarding` | `admin/onboarding/` | ✅ |

### 1.4 MI SITIO (vistas base)

| Item sidebar | Path | Carpeta editable | Status |
|---|---|---|---|
| Mi Marca | `admin/onboarding` | `admin/onboarding/` | ✅ |
| Inicio (Welcome) | `site-data?tab=welcome` | `admin/site-data/` | ✅ |
| Empresa (About) | `site-data?tab=about` | `admin/site-data/` | ✅ |
| Contacto | `site-data?tab=contact` | `admin/site-data/` | ✅ |

### 1.5 Módulos (CRUDs por módulo)

| Item sidebar | Path | Carpeta editable | Status |
|---|---|---|---|
| Blog | `blog-settings` | `modules/blog/admin/` | ✅ |
| Servicios | `services-settings` | `modules/services/admin/` | ✅ |
| Proyectos | `project-settings` | `modules/projects/admin/` | ✅ |
| Galería | `gallery-settings` | `modules/gallery/admin/` | ✅ |
| Productos | `products-settings` | `modules/products/admin/` | ✅ |
| Preguntas (FAQs) | `faqs-settings` | `modules/cd-base/faqs/` | ✅ (sumado 2026-05-16) |
| Equipo | `team-settings` | `modules/team-members/admin/` | ✅ |
| Referencias | `references-settings` | `modules/references/admin/` | ✅ |
| Testimonios | `testimonials-settings` | `modules/testimonials/admin/` | ✅ |
| Menú | `menu-settings` | `modules/menu/admin/` | ✅ |
| Noticias | `news-settings` | `modules/cd-base/news/` | ✅ |

### 1.6 HERRAMIENTAS

| Item sidebar | Path | Carpeta editable | Status |
|---|---|---|---|
| Mensajes | `admin/contact-messages` | `modules/cd-base/apps/contact-messages/` | ✅ |
| Suscriptores | `subscribers` | `modules/cd-base/apps/subscribers/` | ✅ |
| Soporte (staff) | `admin/support` | `modules/support/admin/` | ✅ |

### 1.7 SISTEMA (solo System Admin)

| Item sidebar | Path | Carpeta editable | Status |
|---|---|---|---|
| Mantenimiento | `pages/settings` | `modules/cd-base/apps/pages/settings/` | ✅ |
| Alta Proyecto | `project-setup` | — | 🚫 **DevOps** |
| Form Reseller | `form-reseller` | — | 🚫 **Comercial** |
| Q/A Checklist | `cd-system/qa` | — | 🚫 **Interno** |
| Import masivo | `admin/content-import` | `admin/content-import/` | ✅ |

---

## 2. Frontend público (sitios de cliente final)

Todo lo que el visitante final ve en `https://{tenant}.bewpro.com` también es editable:

| Carpeta editable | Qué contiene |
|---|---|
| `layout/front/master.blade.php` | `<head>`, meta, scripts globales |
| `layout/front/headers/<demo>.blade.php` | Header por demo (16 demos) |
| `layout/front/footers/<demo>.blade.php` | Footer por demo |
| `layout/front/partials/page-header-<demo>.blade.php` | Banner internas |
| `layout/front/partials/_*.blade.php` | Orquestadores (_header, _footer, _styles, _scripts, _whatsapp) |
| `modules/cd-base/frontend/demos/<demo>/` | Welcome / about / contact por demo |
| `modules/<mod>/frontend/` | Listados y detalles públicos de cada módulo |
| `components/` | Blade components compartidos |
| `legal/` | Páginas legales públicas (terms, privacy, refund) |
| `public/template/css/demos/<demo>.css` | Layout + typography del demo |
| `public/template/css/skins/<skin>.css` | Paleta de colores |
| `public/template/js/demos/<demo>.js` | JS custom (opcional) |

---

## 3. CSS admin

| Archivo | Qué controla |
|---|---|
| `admin-brand.css` | Brand colors del panel admin |
| `admin-components.css` | Overrides de componentes Metronic |
| `cd-system-base.css` | Reset + tokens base |
| `custom.css` | Overrides ad-hoc |
| `template/css/modules/` | CSS por módulo (admin + frontend) |

---

## 4. Lo que NO se monta (intencional)

| Carpeta | Por qué |
|---|---|
| `admin/form-reseller/` | Form que rellena el equipo comercial (Coke) para onboardear un reseller. No es UI pública, no requiere ajustes frontend |
| `admin/project-setup/` | DevOps — provisión de tenants. Lógica de infra, no UI |
| `admin/qa-checklist.blade.php` | Check interno post-provisión del equipo |
| `app/`, `config/`, `routes/`, `database/`, `migrations/` | Backend completo |
| `composer.json`, `package.json` (en cd-system) | Dependencias backend |
| `.env*`, secrets, keys | Por seguridad |

---

## 5. Workflow para sumar un módulo nuevo al scope

Cuando bewpro agregue un módulo nuevo (ej. `events`, `courses`):

1. **Verificar que existen las vistas** en cd-system:
   ```bash
   ls /Applications/XAMPP/xamppfiles/htdocs/cd-system/resources/views/modules/events/
   # Debería tener: admin/ y/o frontend/
   ```

2. **Agregar volumen en `cd-frontend-dev/docker-compose.yml`**:
   ```yaml
   - ./resources/views/modules/events/admin:/var/www/html/resources/views/modules/events/admin
   - ./resources/views/modules/events/frontend:/var/www/html/resources/views/modules/events/frontend
   ```

3. **Copiar el código al repo**:
   ```bash
   mkdir -p resources/views/modules/events/{admin,frontend}
   cp -R /path/cd-system/resources/views/modules/events/admin/. resources/views/modules/events/admin/
   cp -R /path/cd-system/resources/views/modules/events/frontend/. resources/views/modules/events/frontend/
   ```

4. **Recrear el container**:
   ```bash
   docker compose up -d --force-recreate app
   ```

5. **Actualizar este doc** (sección 1.5) + `admin-metronic-scope.md` con la nueva carpeta.

6. **Commit + push** a `cd-frontend-dev/main`.

---

## 6. Comandos esenciales (cheat sheet)

Documentación completa: [`cd-frontend-dev/docs/comandos/setup-y-cambio-demos.md`](https://github.com/LACOMPANIADIGITAL/cd-frontend-dev/blob/main/docs/comandos/setup-y-cambio-demos.md)

```bash
# Setup
docker compose pull app && docker compose up -d app

# Cambiar producto/core completo (demo + módulos del core)
docker compose exec app php artisan cd-system:set-demo personal-brand
docker compose exec app php artisan cd-system:set-demo law-firm-digital

# Cambiar SOLO demo visual (sin tocar módulos)
docker compose exec app php artisan cd-system:set-demo demo-restaurant --no-modules

# Habilitar TODOS los módulos (modo dev sidebar completo)
docker compose exec app php artisan cd-system:set-modules --all

# Toggle granular de módulos
docker compose exec app php artisan cd-system:set-modules gallery,services
docker compose exec app php artisan cd-system:set-modules gallery=on,blog=off
docker compose exec app php artisan cd-system:set-modules --list
```

---

## 7. Flujo de PRs y sync (resumen)

```
[Maxi edita en cd-frontend-dev local]
       ↓ git push origin main
[GitHub Actions: sync-to-main.yml]
       ↓ abre PR frontend-sync/pending → cd-system:staging-frontend
[Maintainer revisa, mergea]
       ↓
[cd-system:staging-frontend → cd-system:main → cd-system:cd-system (prod)]
       ↓
[Imagen Docker ghcr.io/lacompaniadigital/cd-system:latest rebuildeada]
       ↓
[Maxi hace docker compose pull para recibir el rebuild]
```

Detalle: [`workflow-prs-issues.md`](workflow-prs-issues.md) + [`../infrastructure/06-frontend-pr-workflow.md`](../infrastructure/06-frontend-pr-workflow.md)

---

## 8. Validación rápida (después de modificar el scope)

Script Python para auditar que cada item del sidebar tiene su carpeta editable:

```python
# Corre desde /Applications/XAMPP/xamppfiles/htdocs/cd-system
python3 -c "
import re, os
yml = open('/Applications/XAMPP/xamppfiles/htdocs/cd-frontend-dev/docker-compose.yml').read()
mounted = set(re.findall(r'\\./(resources/views/[a-z0-9/_-]+)', yml))
menu = open('config/demo1/menu.php').read()
paths = set(re.findall(r\"'path'\\s*=>\\s*'([^']+)'\", menu))
print(f'Paths del sidebar: {len(paths)}')
print(f'Volúmenes montados: {len(mounted)}')
# Buscar el blade real de cada path requiere mapping manual (ver sección 1)
"
```

Para auditoría completa con mapping, usar el script de la sección 1 de este doc.

---

## 9. Historia del scope

| Fecha | Cambio | Doc |
|---|---|---|
| 2026-05-04 | v2 — sumado layout (headers/footers/partials) + css/demos + css/skins + js/demos | `anatomia-de-un-demo.md` |
| 2026-05-13 | Sumado admin Metronic (layout/demo1, auth, admin/site-data + content-import + onboarding + partials, 9 CRUDs admin) | `admin-metronic-scope.md` |
| 2026-05-15 | Fix `set-demo` (3 fuentes de verdad) + nuevo comando `set-modules` granular | `set-demo-fix.md` |
| 2026-05-16 | Sumado clients/admin + support/admin + tokko/admin + cd-base/apps + cd-base/news + cd-base/newsletter + cd-base/faqs (6 carpetas, 36+8 blades) | este doc |

---

## Referencias cruzadas

- Comandos detallados: `cd-frontend-dev/docs/comandos/setup-y-cambio-demos.md`
- Setup quirúrgico inicial: [`admin-metronic-scope.md`](admin-metronic-scope.md)
- Sync architecture: [`sync-architecture.md`](sync-architecture.md)
- Workflow PRs: [`workflow-prs-issues.md`](workflow-prs-issues.md)
- Anatomía de un demo: [`anatomia-de-un-demo.md`](anatomia-de-un-demo.md)
- Guía de uso: [`guia-de-uso.md`](guia-de-uso.md)
- Fix set-demo: [`set-demo-fix.md`](set-demo-fix.md)
