# Prompt 7 — El resumen, los antojos, la ubicación y un recuerdo más rico

Requiere los prompts 1 a 4. Este prompt responde "¿a dónde se fue la
lana?", separa lo que el grupo quiere probar de lo que ya vivió, guarda
dónde estaban, y hace que el cierre le lleve al mapa mucho más que
estrellas.

---

Extiende mi tablero de viaje, SIN romper las pruebas que ya pasan:

**1. Cada gasto con categoría, ciudad y día.** Al capturar, agrega
`categoria` (una de: comida, hospedaje, transporte, actividades, compras,
otros — una fila de chips que recuerda la última elegida), `ciudad` (la
ciudad actual, que es UNA para toda la app: la misma que usan los lugares,
con un chip "en Kioto" que la cambia) y `dia` en hora LOCAL (`YYYY-MM-DD`
del teléfono: a las 11 de la noche en México ya es mañana en UTC). Los
gastos viejos sin `dia` caen al día UTC de `cuando`.

**2. `resumen(estado, base, tipos)` en el motor de gastos** (puro, con
pruebas): total en la base, días distintos con gastos, promedio por día,
totales por categoría (lo desconocido o sin categoría va a "otros"), por
ciudad (agrupando sin acentos ni mayúsculas, con sus días), por fecha, por
persona (lo que PAGÓ y lo que le TOCÓ, que es su parte de cada gasto) y el
gasto más caro. Lo que no tiene tipo de cambio se aparta y se cuenta.

Una pestaña **Resumen**: tarjetas con el total, por persona, días, por
persona al día, ciudades y lugares; frases con lo mejor (el lugar con más
estrellas), el plan más votado, el gasto más grande y quién más sacó la
cartera; barras "a dónde se fue", "por ciudad" (con costo por persona al
día), "por persona" y una tira "día por día". Y un botón que descarga los
gastos en CSV (con BOM al inicio para que Excel en español lea los
acentos).

**3. Antojos.** Un lugar puede anotarse como `estado: 'antojo'` (por
probar; se arma antes del viaje, sin estrellas). Un evento nuevo
`{ tipo: 'probado', id, lugar, estrellas?, lat?, lng? }` lo pasa a probado.
Aplica los `probado` al FINAL del reductor: en una bitácora que llega
desordenada por la cola offline, el "ya fuimos" puede llegar antes que el
lugar. La lista de Lugares muestra primero "Por probar" (con botón "Ya
fuimos") y luego "Donde estuvimos".

**4. Ubicación.** Un interruptor "Con ubicación" (recordado) hace que cada
lugar probado guarde `lat` y `lng` del GPS del teléfono (funciona sin red),
redondeadas a 5 decimales y validadas en rango. Pide el permiso al prender
el interruptor, no a media captura. Si el GPS falla o tarda más de 8
segundos, el lugar se guarda sin ubicación. Un antojo NO toma la ubicación
(se anota desde la casa). Con ubicación, el lugar muestra un enlace "ver
ubicación" a Google Maps.

**5. El recuerdo versión 2.** `paraElMapa` ahora:

- manda SOLO los lugares probados (los antojos son lista de deseos, no
  recuerdo) con sus `lat`/`lng` si los tienen;
- agrega `destacados: { mejorLugar, planMasVotado, lugares }`;
- y la página le suma `gastos: { moneda, total, personas, dias,
  porCategoria, porCiudad: [{ ciudad, total, dias }] }` en centavos: el
  gasto RESUMIDO, nunca la lista de gastos ni quién le debe a quién (eso es
  del grupo, no del mapa).

Sube `version` a 2. Del lado del mapa, `leer()` acepta 1 y 2, valida cada
número (enteros en rango, moneda de 3 letras) y descarta lo inválido sin
tumbar el recuerdo; `fundir()` guarda cada viaje en `data.viajes` (fechas,
personas, invitados, gastos con el nombre de ciudad FINAL que quedó en el
mapa, destacados) y los lugares con ubicación como `ciudad.puntos` (uno por
nombre). El mismo cierre dos veces no duplica ni viaje ni puntos.

Con eso, en el mapa: una sección "Viajes" con una tarjeta por viaje (días,
por persona, por persona al día, una barra apilada por categoría, lo mejor,
la ciudad más cara por día); el costo por persona al día en la tarjeta de
cada ciudad; los puntos sobre el mapa (con la misma proyección del SVG); y
un resumen por año (países, cuáles fueron nuevos, ciudades, días fuera).

Pruebas: el resumen suma exacto y agrupa ciudades; antojo → probado aunque
llegue desordenado; coordenadas fuera de rango se ignoran; al mapa no llegan
antojos ni ciudades con puros antojos; `leer` descarta gastos, destacados y
coordenadas inválidos; `fundir` registra el viaje y no lo duplica.
