# AirCarto API

API HTTP qui expose les données des capteurs AirCarto (qualité de l'air, bruit, vibration, trafic) et la gestion comptes / organisations / projets.

Déployée sur **https://api.aircarto.fr**.

## Stack

- PHP plat (pas de framework) servi par Apache
- PostgreSQL (`pg_*`), multi-serveur
- Auth utilisateur en JWT (HS256)

## Documentation

| Pour qui | Où regarder |
|---|---|
| Consommateurs HTTP (humains) | [Swagger UI](https://api.aircarto.fr/) · [Scalar](https://api.aircarto.fr/scalar.html) |
| Devs back / endpoints | `auth/API_DOCUMENTATION.md` + lecture directe des `*.php` |
| IA / Claude Code | [`CLAUDE.md`](./CLAUDE.md) à la racine (chargé automatiquement) |
| Specs client, plans internes | `docs/` (non public) |

> Les fichiers `AirCarto_ui*.yaml/json` à la racine sont des specs OpenAPI **décoratives** : elles ne génèrent ni ne valident rien et peuvent être désynchro du code. La source de vérité reste le PHP.

## Layout

```
auth/         Endpoints compte (login, JWT, users, orgs, projets, rapports)
capteurs/     Endpoints capteurs (NebuleAir, ModuleAir, MobileAir, ModuleTraffic, EduKit)
sigicom/     Intégration API Sigicom (bruit / vibration)
config/      Bootstraps DB / JWT / mail (secrets gitignored)
migrations/  Schéma SQL versionné par date
docs/        Doc interne (bloquée en HTTP)
```

Convention : `_fichier.php` = helper inclus, **pas** un endpoint. `fichier.php` = endpoint exposé.

## Config locale

Copier les `config/*.example.php` en `config/*.php` et renseigner les secrets (DB, JWT, Sigicom, SMTP). Ces fichiers sont gitignored.
