-- Crea automáticamente la fila de profiles cuando se registra un usuario nuevo en auth.users.
-- Corre como security definer para poder insertar sin importar el estado de sesión del cliente
-- (evita el problema de RLS cuando "Confirm email" está activo y aún no hay sesión).

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, display_name)
  values (new.id, coalesce(new.raw_user_meta_data ->> 'display_name', new.email));
  return new;
end;
$$;

create trigger on_auth_user_created
  after insert on auth.users
  for each row execute function public.handle_new_user();
