Files
mercadodevida/work/artifacts/TICKET-LOGO/implementer.md
2026-08-25 06:35:39 +02:00

2.0 KiB

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