# Backend Hub

Backend FastAPI centrale della suite `powerup.cool`.

Non e piu solo uno scaffold: oggi e la sorgente reale di auth, tenancy, sessioni, assistant e configurazioni condivise del workspace.

## Responsabilita attuali

- registrazione del locale e login admin
- sessioni persistenti del gestionale
- registry tenant-aware su SQLite
- contesto tenant per `portal`, `ordini` e `PRENOTAZIONI_IA`
- Home assistant grounded su dati reali del locale
- configurazioni LLM tenant-aware del modulo `menu`
- ingestione asset menu con OCR/estrazione testo
- integrazione Google Workspace
- endpoint di stato dei moduli

## Route principali

### Health e catalogo

- `GET /health`
- `GET /modules/catalog`
- `GET /modules/tenant/{tenant_slug}`

### Auth e tenancy

- `GET /auth/status`
- `POST /auth/register`
- `POST /auth/login`
- `GET /auth/me`
- `POST /auth/logout`
- `GET /tenants/context`

### Stato moduli

- `GET /prenotazioni/status`
- `GET /menu/status`
- `GET /ordini/status`
- `GET /homemade/status`

### LLM e assistant

- `GET /llm/config`
- `GET /llm/upstream-health`
- `GET /llm/assistant-profile`
- `POST /llm/chat`
- `POST /llm/openai/chat/completions`
- `GET /llm/menu-settings`
- `PUT /llm/menu-settings`
- `POST /llm/menu-settings/assets`
- `PATCH /llm/menu-settings/assets/{asset_id}`
- `DELETE /llm/menu-settings/assets/{asset_id}`
- `GET /llm/menu-settings/assets/{asset_id}/download`

### Google Workspace

- `GET /google-workspace/status`
- `GET /google-workspace/oauth/start`
- `GET /google-workspace/oauth/callback`
- `POST /google-workspace/preview`
- `POST /google-workspace/create`
- `POST /google-workspace/disconnect`

## Persistenza

Percorsi principali:

- registry: `/data/platform_registry.sqlite3`
- database tenant: `/data/tenants/<tenant-slug>.sqlite3`
- asset menu: `/data/menu-assets`
- stato OAuth Google: `GOOGLE_WORKSPACE_STATE_FILE`

Nel compose root, `backend-hub` condivide `/data` con `ordini-backend`.

## Ruolo rispetto alle legacy

Il `backend-hub` non sostituisce ancora le API di dominio di `PRENOTAZIONI_IA` o `MENU2.0`.

Oggi funge da:

- autorita centrale per auth e sessioni
- sorgente del contesto tenant
- orchestratore dell'assistente operativo
- punto di persistenza delle configurazioni AI condivise

## Limiti attuali

- billing e permessi avanzati non sono ancora centralizzati
- `packages/auth` e `packages/tenancy` restano placeholder
- i token Google sono ancora salvati in file; per ambienti reali conviene migrare a storage cifrato o DB
