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.

4.9 KiB

Configuration Supabase - BricoLoc Moderne

📊 Informations du Projet

🗄️ 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 :

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 à :

📚 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