--- 1. visiteur anonyme (clé anon, aucun compte) : profils lisibles ? SET email | phone ---------------------+------------ camille@example.com | 0600000001 idris@example.com | 0600000002 --- 2. anonyme : réservations lisibles ? user_id | status --------------------------------------+----------- 22222222-2222-2222-2222-222222222222 | confirmed RESET --- 3. Camille connectée : passe son propre rôle à admin ? SET SET email | role ---------------------+------- camille@example.com | admin UPDATE 1 --- 4. Camille annule la réservation d Idris ? user_id | status --------------------------------------+----------- 22222222-2222-2222-2222-222222222222 | cancelled UPDATE 1 --- 5. Camille enregistre elle-même un paiement réussi, sans Stripe ? status | stripe_session_id -----------+------------------- succeeded | n_importe_quoi INSERT 0 1 --- 6. créneau de capacité 1 déjà plein : la base accepte une 2e réservation, puis un doublon ? user_id -------------------------------------- 11111111-1111-1111-1111-111111111111 11111111-1111-1111-1111-111111111111 INSERT 0 2 RESET capacity | reservations ----------+-------------- 1 | 2 --- 7. politiques vivantes tablename | policyname | cmd | roles ---------------+------------------------------------+--------+---------- bookings | Users can insert own bookings | INSERT | {public} bookings | Users can update own bookings | UPDATE | {public} bookings | Users can view own bookings | SELECT | {public} bookings | allow all | ALL | {public} email_events | service role only | ALL | {public} payments | Users can insert own payments | INSERT | {public} payments | Users can update own payments | UPDATE | {public} payments | Users can view own payments | SELECT | {public} profiles | Users can update own profile | UPDATE | {public} profiles | Users can view own profile | SELECT | {public} profiles | allow all | ALL | {public} slots | Admins can manage slots | ALL | {public} slots | slots are viewable by everyone | SELECT | {public} subscriptions | Users can insert own subscriptions | INSERT | {public} subscriptions | Users can update own subscriptions | UPDATE | {public} subscriptions | Users can view own subscriptions | SELECT | {public}