Modèle de données

Toutes les tables sont en PostgreSQL (Supabase). Row Level Security (RLS) activée partout.

Conventions

  • PKs : uuid généré côté Supabase (gen_random_uuid())

  • Nommage : snake_case

  • Timestamps : created_at systématiquement, updated_at si besoin

  • RLS : chaque table a une policy qui restreint l'accès à l'utilisateur propriétaire (via auth.uid())

Tables principales

profiles

Extension de auth.users. Créée automatiquement à l'inscription via trigger.

profiles (
  id          uuid references auth.users primary key,
  household_size      int default 1,
  preferred_stores    text[],
  onboarding_completed boolean default false,
  created_at  timestamptz default now()
)

recipes

recipe_ingredients

meal_plans

meal_plan_items

shopping_items

pantry_items

Migrations

Toutes les migrations sont dans supabase/migrations/ avec le préfixe timestamp YYYYMMDDHHMMSS. Ne jamais modifier une migration existante — créer une nouvelle.

Last updated