# Configuración de Supabase (backend del panel admin)

El sitio funciona **sin Supabase** usando datos semilla (`assets/data/*.json`).
Para activar el panel de administración real, conecta un proyecto Supabase gratis
(3 pasos, ~5 minutos).

## Paso 1 · Crear el proyecto y las tablas

1. Regístrate en https://supabase.com y crea un proyecto nuevo (plan gratis).
2. En el panel del proyecto → **SQL Editor** → **New query**.
3. Pega todo el contenido de [`schema.sql`](./schema.sql) y ejecuta con **Run**.
   Se crearán las tablas `eventos`, `noticias`, `subespacios`, las políticas RLS
   (lectura pública, escritura solo autenticada) y el bucket de imágenes.

## Paso 2 · Crear el usuario admin

1. En el panel → **Authentication** → **Users** → **Add user**.
2. Ingresa email y contraseña (estos serán el usuario y contraseña del admin).
3. Marca *Auto Confirm* para que no requiera verificación por email.

## Paso 3 · Conectar el sitio

1. En **Project Settings** → **API** copia:
   - **Project URL**
   - **anon public** key (NO uses la `service_role`)
2. Abre [`assets/js/config.js`](../assets/js/config.js) y reemplaza los placeholders:

```js
window.EAJ_SUPABASE = {
  url: "https://tudominio.supabase.co",
  anonKey: "eyJhbGciOiJI....tu-anon-key...",
  storageBucket: "imagenes"
};
```

3. Recarga la página `/admin/` e ingresa con el email y contraseña del Paso 2.

---

## ¿Qué pasa mientras no se conecte Supabase?

- El sitio público muestra los datos semilla de `assets/data/eventos.json`,
  `noticias.json` y `menu.json`. Verás el sitio completo.
- El panel `/admin/` muestra esta misma guía en lugar del formulario de login.

## Estructura de datos

### `eventos`
| Campo | Tipo | Notas |
|---|---|---|
| id | uuid | Autogenerado |
| titulo | text | Requerido |
| subespacio | text | Uno de: teatro-carlot, cafe-charlot, moniart, formacion, jardin |
| fecha | date | Requerido (YYYY-MM-DD) |
| hora | time | Opcional (HH:MM) |
| descripcion | text | Opcional |
| imagen_url | text | Opcional (subida vía Storage) |
| lugar | text | Opcional |
| destacado | boolean | Muestra el evento como destacado en la cartelera |
| publicado | boolean | Si false, no es público en el sitio |
| orden | int | Orden dentro de la cartelera |

### `noticias`
| Campo | Tipo | Notas |
|---|---|---|
| id | uuid | Autogenerado |
| titulo | text | Requerido |
| subespacio | text | Requerido |
| contenido | text | Requerido |
| imagen_url | text | Opcional |
| fecha_publicacion | timestamptz | Default now() |
| publicado | boolean | Default true |
