You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
4.9 KiB
Markdown

# 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