# Configuration Supabase - BricoLoc Moderne ## 📊 Informations du Projet - **Projet**: bricoloc-moderne - **Project ID**: junliislndtujomtdxlb - **Région**: eu-central-1 (Europe Centrale) - **URL**: https://junliislndtujomtdxlb.supabase.co - **Status**: ACTIVE_HEALTHY - **Coût**: $0/mois (Free Tier) ## 🗄️ Schéma de Base de Données ### Tables Créées 1. **users** - Gestion des utilisateurs - id, email, nom, prenom, telephone, is_admin - Timestamps: created_at, updated_at 2. **categories** - Catégories d'outils - 5 catégories par défaut insérées - id, nom, description 3. **tools** - Catalogue des outils - id, nom, description, category_id, prix_journalier, image_url, is_available - Index full-text sur nom et description (français) 4. **inventory** - Gestion des stocks par entrepôt - id, tool_id, entrepot, quantite_disponible, quantite_totale - Contrainte: quantite_disponible <= quantite_totale 5. **reservations** - Système de réservation - id, user_id, tool_id, date_debut, date_fin, quantite, prix_total, status, entrepot - Status: pending, confirmed, in_progress, completed, cancelled - Contrainte: date_fin >= date_debut 6. **payments** - Gestion des paiements - id, reservation_id, montant, status, method, transaction_id - Status: pending, completed, failed, refunded - Methods: card, cash, bank_transfer 7. **notifications** - Système de notifications - id, user_id, type, titre, message, is_read - Types: reservation_confirmed, reservation_reminder, reservation_completed, payment_received, system_alert ### Triggers Automatiques Toutes les tables (sauf notifications) ont un trigger `update_updated_at` qui met automatiquement à jour le champ `updated_at` lors de modifications. ## 🔒 Politiques RLS (Row Level Security) RLS est **ACTIVÉ** sur toutes les tables. Voici les politiques par table : ### Users - ✅ Les utilisateurs peuvent **voir** leur propre profil - ✅ Les utilisateurs peuvent **modifier** leur propre profil - ✅ Les **admins** peuvent voir tous les utilisateurs ### Categories - ✅ **Tout le monde** (authenticated + anon) peut **lire** les catégories - ✅ Seuls les **admins** peuvent créer/modifier/supprimer des catégories ### Tools - ✅ **Tout le monde** peut voir les outils **disponibles** (is_available = true) - ✅ Les utilisateurs **authentifiés** peuvent voir tous les outils - ✅ Seuls les **admins** peuvent créer/modifier/supprimer des outils ### Inventory - ✅ Les utilisateurs **authentifiés** peuvent consulter l'inventaire - ✅ Seuls les **admins** peuvent gérer l'inventaire ### Reservations - ✅ Les utilisateurs peuvent **voir** leurs propres réservations - ✅ Les utilisateurs peuvent **créer** des réservations - ✅ Les utilisateurs peuvent **modifier/annuler** leurs propres réservations - ✅ Les **admins** peuvent voir et modifier toutes les réservations ### Payments - ✅ Les utilisateurs peuvent voir les paiements de leurs réservations - ✅ Les **admins** peuvent voir tous les paiements - ✅ Seuls les **admins** peuvent créer/modifier des paiements ### Notifications - ✅ Les utilisateurs peuvent **voir** leurs propres notifications - ✅ Les utilisateurs peuvent **modifier** (marquer comme lu) leurs notifications - ✅ Les utilisateurs peuvent **supprimer** leurs notifications - ✅ Le **système** (service_role) peut créer des notifications pour tous ## 🔑 Variables d'Environnement Les variables suivantes sont configurées dans `.env.local` : ```env NEXT_PUBLIC_SUPABASE_URL=https://junliislndtujomtdxlb.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGci... ``` ## 📝 Migrations Appliquées 1. ✅ `create_users_table` - Table users + trigger 2. ✅ `create_categories_table` - Table categories + données par défaut 3. ✅ `create_tools_table` - Table tools + index full-text 4. ✅ `create_inventory_table` - Table inventory + contraintes 5. ✅ `create_reservations_table` - Table reservations + enum status 6. ✅ `create_payments_table` - Table payments + enum status/method 7. ✅ `create_notifications_table` - Table notifications + enum type 8. ✅ `enable_rls_and_create_policies` - Activation RLS + politiques users/categories 9. ✅ `rls_policies_tools_and_inventory` - Politiques tools + inventory 10. ✅ `rls_policies_reservations_and_payments` - Politiques reservations + payments 11. ✅ `rls_policies_notifications` - Politiques notifications ## 🧪 Test de Connexion Pour tester la connexion Supabase, accédez à : - http://localhost:3000/test-supabase ## 📚 Prochaines Étapes 1. Implémenter les repositories Supabase pour chaque service 2. Créer les use cases pour l'authentification 3. Développer les API routes Next.js 4. Implémenter l'interface utilisateur ## 🔗 Liens Utiles - Dashboard Supabase: https://supabase.com/dashboard/project/junliislndtujomtdxlb - Documentation Supabase: https://supabase.com/docs - Supabase JS Client: https://supabase.com/docs/reference/javascript