# TICKET-LOGO — Intake
## Feature
- **ID:** TICKET-LOGO
- **Title:** TPV ticket header: allow custom text or logo upload
- **Type:** feature
- **Priority:** med
- **Risk:** low
## Análisis
### Estado Actual
**ReceiptModal.tsx** muestra:
```tsx
{/* Logo */}
{/* Custom header text */}
{receipt.header &&
{receipt.header}
} ``` **Hallazgos:** 1. ✅ **Custom text**: Ya existe! `receipt.header` viene de `store.receipt_header` 2. ❌ **Logo upload**: NO existe - hardcodeado como `/images/logo-main.png` ### Lo que falta Para permitir logo custom: 1. Campo `logo_url` en `pos_stores` o tabla de configuración 2. Upload de imagen (endpoint + almacenamiento) 3. Mostrar logo custom en ReceiptModal (con fallback a default) ### Impacto - Requiere migración de DB (nuevo campo) - Requiere endpoint de upload o URL manual - Bajo riesgo si se usa fallback al logo default ## Preguntas Pendientes - [ ] ¿Cómo se provee el logo? (URL manual vs upload) - [ ] ¿Solo un logo o múltiples opciones? - [ ] ¿Placeholder cuando no hay logo?