diff --git a/API-Reference.md b/API-Reference.md new file mode 100644 index 0000000..ffee22f --- /dev/null +++ b/API-Reference.md @@ -0,0 +1,421 @@ +# 📚 API Reference + +Documentation des services, hooks et composants de WalletTracker. + +## Services Firebase + +### authService + +Service de gestion de l'authentification. + +#### `signup(email, password, displayName)` +CrĂ©e un nouveau compte utilisateur. + +```typescript +import { authService } from '../services/authService'; + +await authService.signup( + 'user@example.com', + 'password123', + 'John Doe' +); +``` + +#### `login(email, password)` +Connecte un utilisateur existant. + +```typescript +await authService.login('user@example.com', 'password123'); +``` + +#### `logout()` +DĂ©connecte l'utilisateur actuel. + +```typescript +await authService.logout(); +``` + +--- + +### transactionService + +Service de gestion des transactions. + +#### `addTransaction(userId, type, amount, category, date, note)` +Ajoute une nouvelle transaction. + +```typescript +import { transactionService } from '../services/transactionService'; + +await transactionService.addTransaction( + userId, + 'expense', // 'expense' ou 'income' + 50.00, // montant + 'Alimentation', // catĂ©gorie + new Date(), // date + 'Courses du mois' // note (optionnel) +); +``` + +#### `subscribeToTransactions(userId, callback)` +Écoute les changements de transactions en temps rĂ©el. + +```typescript +const unsubscribe = transactionService.subscribeToTransactions( + userId, + (transactions) => { + console.log('Transactions mises Ă  jour:', transactions); + } +); + +// N'oubliez pas de se dĂ©sabonner +return () => unsubscribe(); +``` + +#### `getTransactionsByMonth(userId, year, month)` +RĂ©cupĂšre les transactions d'un mois spĂ©cifique. + +```typescript +const transactions = await transactionService.getTransactionsByMonth( + userId, + 2025, + 10 // Octobre +); +``` + +--- + +### subscriptionService + +Service de gestion des abonnements. + +#### `addSubscription(userId, name, amount, category, frequency, nextPaymentDate, reminderDays)` +Ajoute un nouvel abonnement. + +```typescript +import { subscriptionService } from '../services/subscriptionService'; + +await subscriptionService.addSubscription( + userId, + 'Netflix', + 15.99, + 'Divertissement', + 'monthly', // 'daily', 'weekly', 'monthly', 'yearly' + new Date('2025-11-01'), + 3 // rappel 3 jours avant +); +``` + +#### `subscribeToSubscriptions(userId, callback)` +Écoute les changements d'abonnements en temps rĂ©el. + +```typescript +const unsubscribe = subscriptionService.subscribeToSubscriptions( + userId, + (subscriptions) => { + console.log('Abonnements mis Ă  jour:', subscriptions); + } +); +``` + +--- + +### categoryService + +Service de gestion des catĂ©gories. + +#### `getCategories(userId)` +RĂ©cupĂšre les catĂ©gories de l'utilisateur. + +```typescript +import { categoryService } from '../services/categoryService'; + +const categories = await categoryService.getCategories(userId); +``` + +#### `initializeDefaultCategories(userId)` +Initialise les catĂ©gories par dĂ©faut. + +```typescript +await categoryService.initializeDefaultCategories(userId); +``` + +Les catĂ©gories par dĂ©faut incluent : +- **DĂ©penses** : Alimentation, Transport, Logement, SantĂ©, Loisirs, Shopping, Éducation, Autres +- **Revenus** : Salaire, Freelance, Investissements, Cadeaux, Autres + +--- + +## Hooks personnalisĂ©s + +### useAuth + +Hook pour gĂ©rer l'authentification. + +```typescript +import { useAuth } from '../hooks/useAuth'; + +function MyComponent() { + const { user, initializing, logout } = useAuth(); + + if (initializing) { + return ; + } + + if (!user) { + return ; + } + + return ( + + Bienvenue {user.displayName} +