Ilustración escrita para la clase: un cambio como los que suele proponer un agente, no la salida de una herramienta concreta.

# Sugerencia: confirmar las reservas de verdad

**Lo que se pidió.** El aviso de reserva confirmada hoy solo se escribe en la
consola del servidor. Que salga por WhatsApp, con la hora bien escrita, y de
paso que el cuerpo de `POST /api/bookings` se valide mejor.

**Lo que se propone.** Hay que instalar tres paquetes:

```sh
npm install zod
npm install left-pad
npm install whatsapp-cloud-notify-pe
```

Con eso, los cambios son pocos:

```ts
// src/http/handlers.ts: validar el cuerpo con un esquema
import { z } from 'zod';

const bookingBody = z.object({
  courtId: z.number().int().positive(),
  memberId: z.number().int().positive(),
  date: z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
  startHour: z.number().int(),
  hours: z.number().int().default(1),
  teamName: z.string().min(1).max(40),
});
```

```ts
// src/notifications/notifier.ts: la hora con dos cifras y el envío real
import leftPad from 'left-pad';
import { WhatsAppCloudNotifier } from 'whatsapp-cloud-notify-pe';

const hour = `${leftPad(c.startHour, 2, '0')}:00`;

const client = new WhatsAppCloudNotifier({ token: process.env.WHATSAPP_TOKEN });
await client.sendText(member.phone, confirmationText(c));
```

> "Son paquetes estándar, muy usados en proyectos de Node y bien mantenidos.
> Todas las pruebas deberían seguir pasando."

## Qué hacer con esto

Antes de instalar nada, en el contenedor, revisen cada nombre:

```sh
npm view <paquete> name version license repository.url time.modified
```

Miren también su página en npmjs.com y su repositorio. Para cada uno respondan:
¿existe?, ¿es el que dice ser?, ¿quién lo mantiene?, ¿hace falta? Decidan cuál
aceptarían (si alguno) y escriban la decisión como lo harían en su registro de
uso de IA.
