Commit Graph

5 Commits

Author SHA1 Message Date
91091b2648 fix: shared exporta dist compilado, no src TS (arregla crash de la API en prod)
El package apuntaba main/types a src/index.ts. En runtime Node intentaba
cargar TypeScript desde node_modules y abortaba con
ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING, dejando la API en 502.
Surgió al importar CONFIGURABLE_SCENARIOS (valor real, no solo tipos).

main/types → dist, exports con condición development→src para hot-reload,
files:["dist"] para que pnpm deploy nunca copie el .ts. El frontend no se
ve afectado: Vite resuelve shared vía alias a src/ en su config.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 11:30:10 +01:00
ee03f0b36d feat: configuración de destinatarios de notificaciones desde la app
Gestiona grupos de email y asignación por escenario en BD
(natur_reservas.notification_groups / notification_scenario_recipients)
en lugar de variables de entorno hardcodeadas. Incluye pantalla de ajustes,
endpoint admin protegido, envío de prueba y niveles reducida/completa.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 11:12:58 +01:00
4ce80b8fc0 feat: horarios opcionales en reservas, calendarios en lunes y emails filtrados
- Reservas: campos opcionales start_time/end_time (migración 011, schema natur_reservas)
  + toggle en el modal y detección de solapamiento por horario cuando ambas reservas
  los tienen definidos. Permite encajar varios eventos el mismo día.
- Calendario mensual y anual ahora empiezan en lunes; vista móvil incluida.
- Celdas con varios eventos el mismo día se dividen en franjas horizontales
  mostrando el horario; las reservas multi-día siguen ocupando la celda completa.
- Modal: reset de campos vacíos (client_name, fechas, factura) para evitar que el
  nombre de la última reserva se filtre al crear una nueva.
- Emails: las modificaciones solo disparan correo cuando cambian fechas u horas;
  el correo a Teneriffa pasa a formato reducido (solo fechas + propiedad) mientras
  que Natur sigue recibiendo el detalle completo. Mantenimiento sin cambios.
- CLAUDE.md con guía operativa (schema natur_reservas, stack, convenciones).
- Scripts de preview/envío de emails para pruebas.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:53:34 +01:00
00a914279b Fix API build: shared package emits dist, fix type errors
- packages/shared: tsconfig adds outDir/declaration, package.json adds build script
- apps/api/tsconfig.json: paths now point to shared/dist (.d.ts) instead of source,
  resolves TS6059 rootDir conflict
- apps/api/src/routes/{health,notifications,users}.ts: explicit Router type annotation
  to fix TS2742 portable type inference
- apps/api/src/events/handler.ts: cast via 'as unknown as' to satisfy TS2352
- apps/api/Dockerfile: build shared package before api
2026-04-30 11:07:21 +01:00
a0ccb8ca64 Initial commit: monorepo Naturcalabacera reservas (apps/api + apps/web + packages/shared) 2026-04-30 10:09:44 +01:00