# Fase 2 — Cómo ampliar sin romper Fase 1

Los módulos de Fase 2 **no están implementados**. La arquitectura ya reserva espacio.

## Módulos previstos

| ID | Ruta sugerida | DB Notion nueva |
|----|---------------|-----------------|
| maintenance | `/mantenimiento` | Mantenimiento (prioridad, fotos, habitación) |
| incidents | `/incidencias` | Incidencias |
| announcements | `/anuncios` | Anuncios |
| events | `/eventos` | Eventos |
| common-spaces | `/espacios` | Espacios comunes + reservas |
| absences | `/ausencias` | Ausencias |
| inventory | `/inventario` | Inventario |
| calendar | `/calendario` | *(vista agregada, sin DB propia obligatoria)* |

Ya están listados en `src/config/modules.ts` con `status: "planned"`.

## Checklist para activar un módulo

1. **Schema Notion** — crear DB, documentar en `docs/NOTION_SCHEMA.md`, añadir `NOTION_<NAME>_DB_ID`.
2. **Dominio** — `src/modules/<id>/{types opcionales, mappers, repository}.ts`.
3. **API** — `src/app/api/<id>/route.ts`.
4. **Hook** — entrada en `use-modules.ts`.
5. **UI** — `components/<id>/…` + `app/<ruta>/page.tsx`.
6. **Nav** — en `modules.ts` cambiar `status` a `"active"` (el sidebar se actualiza solo).
7. **Dashboard** (opcional) — extender `modules/dashboard/service.ts` con un bloque nuevo; no reescribir los existentes.

## Calendario unificado

No requiere una base Notion única. Agregar en servidor:

```ts
Promise.all([
  listCleaningTasks(),
  listEvents(),      // Fase 2
  listAbsences(),    // Fase 2
  getUpcomingPayments(),
])
```

Normalizar a `{ id, date, type, title, href }` y pintar una sola vista.

## Reglas para no romper el core

- No mover mappers de Fase 1 a un “utils genérico” prematuro.
- No acoplar UI de un módulo a repositories de otro: pasar por API o por el servicio dashboard.
- No cambiar nombres de propiedades Notion de Fase 1 sin versionar el mapper.
- Mantener mock data opcional por módulo para desarrollo offline.
- Auth admin (middleware) debe envolver **todas** las rutas, no módulo a módulo.

## Orden sugerido de implementación Fase 2

1. Mantenimiento (alto valor operativo, reutiliza Habitaciones + fotos).
2. Incidencias.
3. Ausencias.
4. Inventario.
5. Eventos + espacios comunes.
6. Anuncios.
7. Calendario unificado (cuando existan ≥3 fuentes de fechas).
