Initial commit: WaMarket MVP
Marketplace inversée (Next.js 16 App Router + Supabase Cloud) : auth, schéma + RLS, publication de besoins avec upload d'images, feed avec filtres, offres, acceptation via RPC, messagerie temps réel, dashboards, et Dockerfile pour déploiement Coolify.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
-- Étape 2 (auth) — table profiles + trigger de création automatique.
|
||||
-- À coller dans Supabase Studio > SQL Editor et exécuter une fois.
|
||||
|
||||
create table if not exists public.profiles (
|
||||
id uuid primary key references auth.users (id) on delete cascade,
|
||||
full_name text,
|
||||
avatar_url text,
|
||||
city text,
|
||||
created_at timestamptz not null default now(),
|
||||
updated_at timestamptz not null default now()
|
||||
);
|
||||
|
||||
alter table public.profiles enable row level security;
|
||||
|
||||
drop policy if exists "profiles_select_authenticated" on public.profiles;
|
||||
create policy "profiles_select_authenticated"
|
||||
on public.profiles for select
|
||||
to authenticated
|
||||
using (true);
|
||||
|
||||
drop policy if exists "profiles_update_own" on public.profiles;
|
||||
create policy "profiles_update_own"
|
||||
on public.profiles for update
|
||||
to authenticated
|
||||
using (auth.uid() = id)
|
||||
with check (auth.uid() = id);
|
||||
|
||||
-- Crée automatiquement une ligne profiles à chaque inscription (auth.users).
|
||||
create or replace function public.handle_new_user()
|
||||
returns trigger
|
||||
language plpgsql
|
||||
security definer
|
||||
set search_path = public
|
||||
as $$
|
||||
begin
|
||||
insert into public.profiles (id, full_name)
|
||||
values (new.id, new.raw_user_meta_data ->> 'full_name');
|
||||
return new;
|
||||
end;
|
||||
$$;
|
||||
|
||||
drop trigger if exists on_auth_user_created on auth.users;
|
||||
create trigger on_auth_user_created
|
||||
after insert on auth.users
|
||||
for each row execute function public.handle_new_user();
|
||||
Reference in New Issue
Block a user