this-rs 0.0.9

Framework for building complex multi-entity REST and GraphQL APIs with many relationships
Documentation
# Plan pour Réparer les Routes à 3+ Niveaux

## 🎯 Objectif
Faire fonctionner `GET /orders/{order_id}/invoices/{invoice_id}/payments`

## 🔍 Diagnostic du Problème

Le problème est dans le **flux de données** :

1. ✅ Route générée : `/orders/{order_id}/invoices/{invoice_id}/payments`
2. ✅ Route matche correctement
3. ✅ Handler est appelé
4. ❌ Handler reçoit le chemin et essaie de parser avec `RecursiveLinkExtractor`
5. ❌ Le parser s'attend à `orders/UUID/invoices/UUID/payments` mais le format ne correspond pas

## 🛠️ Solution : Handler Direct avec Extraction Manuelle

Au lieu d'utiliser `RecursiveLinkExtractor` (qui est trop complexe), créons un **handler direct** qui :

1. **Extrait explicitement** les paramètres Axum : `order_id`, `invoice_id`
2. **Valide que** l'invoice appartient bien à l'order
3. **Appelle directement** le LinkService pour trouver les payments
4. **Retourne les données**

## 📝 Implémentation

### Étape 1 : Handler Spécialisé pour 3+ Niveaux

Créer `src/links/handlers.rs::handle_3level_route` qui :
- Extrait `order_id`, `invoice_id` directement
- Vérifie que `order → invoice` existe
- Récupère `payments` pour cette invoice
- Retourne le résultat enrichi

### Étape 2 : Builder Dynamique

Dans `build_nested_link_routes`, pour chaque chaîne détectée :
- Créer un handler qui extrait TOUS les params de la chaîne
- Appeler `handle_3level_route` avec ces params

### Étape 3 : Test

Tester que `/orders/{order_id}/invoices/{invoice_id}/payments` retourne bien les payments.