# Módulo: References

> **Estado:** ✅ Production-ready (2026-04-28)
> **Doc técnica:** [`docs/backend3.0/references/README.md`](../../backend3.0/references/README.md)

---

## 1. Identidad

| Campo | Valor |
|-------|-------|
| **Nombre** | References |
| **Slug** | `references` |
| **Cores que lo usan** | 3 (law-firm-digital, financial-wealth, agency) |
| **Productos a la venta** | 1 de 8 (law-firm-digital) |
| **Modelo principal** | `App\Modules\References\Models\Reference` |
| **Tabla principal** | `references` |
| **Campos relevantes** | name, position, company, description (= testimonial), logo, featured |
| **CRUD admin** | `/admin/references` |

---

## 2. Defaults JSON

5 references genéricas (3 clientes + 2 aliados) en 2 categorías. Cada una con `logo` apuntando a `cd-project/img/defaults/references/reference-{N}.png` y `testimonial` con texto realista.

**Mapeo seed → schema** (post-fix 2026-04-27):
- JSON `testimonial` → DB `description`
- JSON `position` → DB `position`
- JSON `company` → DB `company`

---

## 3. Asset pack — `public/cd-project/img/defaults/references/`

6 logos placeholder (reference-8.png a reference-13.png) reutilizados de `cd-project/img/logos/`.

---

## 4. ViewComposer

| Variable | Origen |
|----------|--------|
| `$featuredReferences` | módulo references (featured=1) |

---

## 5. Vistas

| Archivo | Notas |
|---------|-------|
| `modules/references/frontend/references.blade.php` | Listing con logos en grid |

### Demo embebido (uso como testimonios)
- demo-law-firm-2 welcome.blade L259-289 — sección testimonios usa `$featuredReferences` cuando módulo `testimonials` no está activo (post-fix 2026-04-28)
- demo-law-firm-2 about.blade L226-269 — grid 3 columnas con cards de testimonio + logo

---

## 6. CRUD admin

`/admin/references`

---

## 7. Comandos artisan

| Comando | Función |
|---------|---------|
| `bewpro:clean-references` | Limpia |
| `bewpro:refresh-references` | Re-seedea |

---

## 8. Bug arreglado 2026-04-27

`ReferencesSeeder` ignoraba 3 campos opcionales del JSON (`testimonial`, `position`, `company`). Las references quedaban con `description=NULL` → la sección de testimonios renderizaba comillas vacías. Fix: mapear los 3 campos vía null coalescing.

## 9. Mejora 2026-04-28

`defaults/references.json`: 3 → 5 items con `position`, `company`, `testimonial` y `logo` apuntando a defaults/references/. Mapeo del seeder ya soporta los 3 nuevos campos.

---

## 10. Auditoría — 30 items

| Bloque | Estado |
|--------|--------|
| Todos los 6 bloques | ✅ |
| **TOTAL** | **30/30** | ✅ |

**Veredicto**: ✅ Production-ready

---

## 11. Referencias

- [`docs/backend3.0/references/README.md`](../../backend3.0/references/README.md)
- Bug fix transversal: [`docs/bewpro2.0/products/CORE-TRANSVERSAL.md`](../products/CORE-TRANSVERSAL.md)
