# Migrations

## Ordre d'execution

1. **BetterAuth** (automatique) — cree les tables `user`, `session`, `account`, `organization`, `member`, `subscription`, etc.
2. **001_ceoinsight_tables.sql** — 4 tables custom : `api_key`, `site`, `usage_log`, `mcp_tool_config`
3. **002_seed_test_users.sql** — Utilisateurs de test + donnees de demo

## Commandes

```bash
# 1. Migrations BetterAuth
pnpm db:migrate

# 2. Tables custom
docker compose exec -T db psql -U allinmcp -d allinmcp -f - < migrations/001_ceoinsight_tables.sql

# 3. Seed
docker compose exec -T db psql -U allinmcp -d allinmcp -f - < migrations/002_seed_test_users.sql
```

## Tables custom

### `api_key` — Cles API BYOK
Stockage chiffre (AES-256-GCM) des cles API tierces apportees par les users.

| Colonne | Type | Description |
|---------|------|-------------|
| `user_id` | TEXT FK | Proprietaire |
| `organization_id` | TEXT FK | Org (optionnel) |
| `provider` | TEXT | haloscan, gsc, pagespeed |
| `encrypted_key` | TEXT | Cle chiffree + auth tag |
| `iv` | TEXT | Vecteur d'initialisation |

### `site` — Sites GSC
Limite par plan : Solo = 3, Pro = 50.

### `usage_log` — Tracking quotidien
Increment atomique via `INSERT ... ON CONFLICT DO UPDATE SET count = count + 1`.
Contrainte unique : `(user_id, date, provider, endpoint)`.

### `mcp_tool_config` — Config MCP par user/org
Active/desactive des tools MCP, avec config JSON custom.
