# 3CX Directory Mobile - MVP

MVP pour synchroniser un annuaire 3CX v20 vers une application mobile utilisable hors ligne.

## Architecture

- Backend Python FastAPI
- Synchronisation 3CX XAPI v20 côté serveur uniquement
- Stockage backend SQLite par défaut pour le MVP
- Application Flutter
- Cache mobile SQLite via `sqflite`

## Pré-requis 3CX

Dans 3CX v20 : Admin Console / Webclient > Integrations > API.
Créer un client API avec accès XAPI activé, noter :

- `3CX_BASE_URL`
- `3CX_CLIENT_ID`
- `3CX_CLIENT_SECRET`

L'API XAPI nécessite une licence 3CX Enterprise selon le tutoriel officiel 3CX.

## Lancer le backend

```bash
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --reload --host 0.0.0.0 --port 8080
```

Endpoints :

- `GET /health`
- `POST /sync/3cx`
- `GET /directory/full`
- `GET /directory/changes?since=2026-01-01T00:00:00Z`

## Lancer le mobile

```bash
cd mobile
flutter pub get
flutter run
```

Configurer l'URL backend dans `lib/api_client.dart`.

