# AgriLink Togo - Micro-Architecture
Ce projet est structuré pour maximiser l'isolation des services et faciliter le débogage.
## 📁 Structure des Services
### 1. `web-app/` (Frontend Service)
- **Rôle** : Interface utilisateur Web et Mobile (PWA).
- **Stack** : Vue.js 3 + TypeScript + Vite.
- **Isolation** : Indépendant du backend, communique via Firebase SDK et Cloud Functions.
### 2. `functions/src/services/ussd/` (USSD Gateway)
- **Rôle** : Gestion exclusive des flux USSD pour les agriculteurs ruraux.
- **Isolation** : Si le service USSD tombe, le reste de la plateforme fonctionne. Les logs sont préfixés par `[USSD-SERVICE]`.
### 3. `functions/src/services/payments/` (Payment Engine)
- **Rôle** : Connecteur vers les APIs TMoney (Togocom) et Flooz (Moov).
- **Isolation** : Ressources CPU/Mémoire dédiées dans Google Cloud pour gérer les timeouts des APIs externes. Logs préfixés par `[PAYMENT-SERVICE]`.
### 4. `functions/src/services/core/` (Core Business)
- **Rôle** : Calcul des commissions (5%), égrainage des paiements, et règles métier globales.
- **Isolation** : Se déclenche sur les événements Firestore. Logs préfixés par `[CORE-SERVICE]`.
## 🛠️ Maintenance & Débogage
En cas de problème :
1. Identifiez le service concerné par l'erreur.
2. Filtrez les logs dans la console Firebase via les préfixes `[SERVICE-NAME]`.
3. Chaque dossier de service est auto-contenu avec ses propres types et logique.
OK OK