# Esquema Notion — Fase 1

Crear **4 bases de datos** en un workspace Notion. Compartir cada una con la integración.

> **SDK v5+**: las consultas usan `dataSources.query`. El ID a guardar en `.env` es el **data_source_id**.  
> Cómo obtenerlo: `GET /v1/databases/{database_id}` → `data_sources[0].id`, o usar el ID de la URL si la base tiene una sola fuente.

Los nombres de propiedades deben coincidir **exactamente** (incluyendo tildes) con esta guía: los mappers los usan tal cual.

---

## 1. Habitaciones (`NOTION_ROOMS_DB_ID`)

| Propiedad | Tipo Notion | Notas |
|-----------|-------------|-------|
| Nombre | Title | Ej. "Habitación 1" |
| Estado | Select | Disponible / Reservada / Ocupada / Mantenimiento |
| Precio mensual | Number | |
| Depósito | Number | |
| Moneda | Select | EUR / COP |
| Huésped actual | Relation → Huéspedes | 0–1 |
| Nombre huésped | Rich text | Copia rápida / rollup manual |
| Fecha ingreso | Date | |
| Fecha salida | Date | |
| Observaciones | Rich text | |
| Fotografías | Files | |

---

## 2. Huéspedes (`NOTION_GUESTS_DB_ID`)

| Propiedad | Tipo Notion | Notas |
|-----------|-------------|-------|
| Nombre completo | Title | |
| Teléfono | Phone | |
| Correo | Email | |
| Documento | Rich text | DNI/NIE/CC |
| Habitación | Relation → Habitaciones | 0–1 |
| Nombre habitación | Rich text | Copia rápida |
| Fecha ingreso | Date | |
| Fecha salida | Date | |
| Estado | Select | Activo / Pendiente ingreso / Finalizado |
| Notas | Rich text | |

---

## 3. Cobros y Caja (`NOTION_FINANCE_DB_ID`)

| Propiedad | Tipo Notion | Notas |
|-----------|-------------|-------|
| Concepto | Title | |
| Fecha | Date | Fecha del movimiento |
| Tipo | Select | Entrada / Salida |
| Categoría | Select | Ver lista abajo |
| Huésped | Relation → Huéspedes | Opcional |
| Nombre huésped | Rich text | |
| Proveedor | Rich text | Si aplica |
| Valor | Number | |
| Moneda | Select | EUR / COP |
| Tipo de cuenta | Select | Digital / Físico |
| Estado | Select | Pagado / Pendiente / Vencido |
| Comprobante | URL | Enlace a archivo/Drive |
| Fecha vencimiento | Date | Para alertas |

### Categorías sugeridas (Select)

Agua, Luz, Internet, Gas, Arriendo, Limpieza, Reparaciones, Compras, Imprevistos, Alquiler habitación, Depósito, Otro.

---

## 4. Limpieza (`NOTION_CLEANING_DB_ID`)

| Propiedad | Tipo Notion | Notas |
|-----------|-------------|-------|
| Nombre | Title | Ej. "Hab. 1 — 28 sep" |
| Fecha | Date | |
| Habitación | Relation → Habitaciones | |
| Nombre habitación | Rich text | |
| Responsable | Rich text | |
| Estado | Select | Programada / Realizada / Cancelada |
| Observaciones | Rich text | |

---

## Relaciones

```
Habitaciones 1───0..1 Huéspedes     (Huésped actual ↔ Habitación)
Huéspedes     1───*   Cobros y Caja (Huésped)
Habitaciones  1───*   Limpieza      (Habitación)
```

### Reglas de consistencia (operativas)

- Al marcar habitación **Ocupada**, enlazar huésped **Activo**.
- Al marcar huésped **Finalizado**, liberar habitación a **Disponible** (o Mantenimiento).
- Cobros de alquiler: Tipo=Entrada, Categoría=Alquiler habitación, Estado según pago.
- Las alertas del dashboard usan `Fecha vencimiento` + Estado Pendiente/Vencido.

---

## Variables de entorno

```env
NOTION_TOKEN=
NOTION_ROOMS_DB_ID=
NOTION_GUESTS_DB_ID=
NOTION_FINANCE_DB_ID=
NOTION_CLEANING_DB_ID=
USE_MOCK_DATA=false
```

## Fase 2 (solo planificar)

Crear bases nuevas sin tocar las de Fase 1:

- Mantenimiento, Incidencias, Anuncios, Eventos, Espacios comunes, Ausencias, Inventario.
- El calendario unificado será una **vista agregada** en la app (no una 8ª DB obligatoria).
