# TPV-FIXES — Intake

## Feature
- **ID:** TPV-FIXES
- **Title:** TPV fixes: Cashier label, favicon 404, pos/sales 400 error
- **Type:** fix
- **Priority:** med
- **Risk:** low

## 3 Bugs Identificados

### Bug 1: favicon 404 (storefront)
**Ubicación:** `project/storefront/src/app/layout.tsx`

**Problema:** El storefront NO tiene favicon configurado en metadata. Existe `project/storefront/public/favicon.ico` pero Next.js App Router busca:
- `app/favicon.ico` (no existe en storefront)
- Referencia en `metadata.icons` (no está declarado)

**Comparación:** El app `frontend` SÍ tiene `project/frontend/src/app/favicon.ico`

**Solución propuesta:** Agregar al metadata del layout:
```ts
icons: { icon: '/favicon.ico', shortcut: '/favicon.ico' }
```
O copiar `public/favicon.ico` a `src/app/favicon.ico`

---

### Bug 2: Cashier label (POS Receipt)
**Ubicación:** `project/apps/pos/src/components/ReceiptModal.tsx` (línea ~95)

**Problema:** El receipt muestra `<strong>Cajero:</strong>` hardcodeado. Posible bug:
- Gendered label ("Cajero" no "Cajera"/"Cajero/a")
- El `receipt.cashier` viene vacío o null

**Verificar:** Necesito ver de dónde viene `receipt.cashier` y si hay tests que fallen.

---

### Bug 3: pos/sales 400 error
**Ubicación:** `project/src/modules/pos/api/pos.routes.ts`

**Análisis:** Los endpoints `POST /pos/sales` y `POST /pos/sales/:id/payments` validan con Zod y requieren:
- `x-terminal-id` header que coincida con `body.terminalId`
- `methodCode` o `kind` en cada payment

**Causa probable:** El frontend POS no está enviando `x-terminal-id` header o el body no tiene los campos requeridos.

**Verificar:** Tests en `pos-pending-payments.itest.ts` muestran uso correcto. El bug podría estar en la app POS (apps/pos/).

---

## Investigación Pendiente
- [ ] Verificar `receipt.cashier` en `buildPosReceipt.ts`
- [ ] Revisar `apps/pos/src/lib/api-client.ts` para ver cómo se envía el `x-terminal-id`
- [ ] Confirmar cuál de los 3 bugs es el más urgente

## Gates
- [ ] reviewer: PENDING
- [ ] security: PENDING  
- [ ] qa: PENDING
