feat(TICKET-LOGO): completed feature
This commit is contained in:
59
work/artifacts/TICKET-LOGO/implementer.md
Normal file
59
work/artifacts/TICKET-LOGO/implementer.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# TICKET-LOGO — Implementer Report
|
||||
|
||||
## Feature
|
||||
**ID:** TICKET-LOGO
|
||||
**Title:** TPV ticket header: allow custom text or logo upload
|
||||
|
||||
## Cambios Realizados
|
||||
|
||||
### 1. Migration (nueva)
|
||||
**Archivo:** `project/migrations/063_pos_store_logo_url.js`
|
||||
- Agrega columna `logo_url` (text, nullable) a `pos_stores`
|
||||
|
||||
### 2. Domain Types
|
||||
**Archivo:** `project/src/modules/pos/domain/pos-sale.ts`
|
||||
- Agregado `logoUrl: string | null` a interface `PosReceipt`
|
||||
|
||||
### 3. Build Receipt
|
||||
**Archivo:** `project/src/modules/pos/application/build-pos-receipt.ts`
|
||||
- Query SQL incluye `store.logo_url`
|
||||
- Receipt incluye `logoUrl` del store
|
||||
- `buildPosReturnReceipt` propaga `logoUrl`
|
||||
|
||||
### 4. API Routes
|
||||
**Archivo:** `project/src/modules/pos/api/pos.routes.ts`
|
||||
- POST `/pos/admin/stores`: acepta `logoUrl` (URL válida, max 500)
|
||||
- PATCH `/pos/admin/receipt-settings`: actualiza `logo_url`
|
||||
|
||||
### 5. Admin UI
|
||||
**Archivo:** `project/apps/admin/src/app/(dashboard)/pos/page.tsx`
|
||||
- Interface `ReceiptSettings` incluye `logoUrl`
|
||||
- Campo input para URL del logo
|
||||
- Empty state incluye `logoUrl: ''`
|
||||
|
||||
### 6. POS Receipt Modal
|
||||
**Archivo:** `project/apps/pos/src/components/ReceiptModal.tsx`
|
||||
- Logo usa `receipt.logoUrl ?? '/images/logo-main.png'`
|
||||
|
||||
### 7. POS Types
|
||||
**Archivo:** `project/apps/pos/src/types/checkout.ts`
|
||||
- `PosReceipt` interface incluye `logoUrl`
|
||||
|
||||
## Archivos Modificados/Creados
|
||||
1. `project/migrations/063_pos_store_logo_url.js` (nuevo)
|
||||
2. `project/src/modules/pos/domain/pos-sale.ts`
|
||||
3. `project/src/modules/pos/application/build-pos-receipt.ts`
|
||||
4. `project/src/modules/pos/api/pos.routes.ts`
|
||||
5. `project/apps/admin/src/app/(dashboard)/pos/page.tsx`
|
||||
6. `project/apps/pos/src/components/ReceiptModal.tsx`
|
||||
7. `project/apps/pos/src/types/checkout.ts`
|
||||
|
||||
## Testing Recomendado
|
||||
1. Admin: crear/editar store con logoUrl → guardar
|
||||
2. POS: crear venta → receipt muestra logo custom
|
||||
3. POS: store sin logo → usa default `/images/logo-main.png`
|
||||
4. Devolución: receipt muestra logo del store
|
||||
|
||||
## Complejidad: Medium
|
||||
## Riesgo: Low
|
||||
## Impacto: UX mejorada en tickets TPV
|
||||
Reference in New Issue
Block a user