-- Çdo përdorues i ri në auth.users merr automatikisht rreshtin në public.accounts.
-- Kështu llogaria krijohet edhe kur Supabase kërkon konfirmim emaili (nuk ka ende sesion te klienti).
-- Pranimi i privatësisë vjen nga options.data.accepted_privacy_version gjatë signUp.

create function public.handle_new_user() returns trigger
language plpgsql security definer set search_path = public, pg_temp as $$
begin
  insert into public.accounts (id, accepted_privacy_at, privacy_version)
  values (
    new.id,
    case when new.raw_user_meta_data ? 'accepted_privacy_version' then now() end,
    nullif(new.raw_user_meta_data ->> 'accepted_privacy_version', '')
  )
  on conflict (id) do nothing;
  return new;
end $$;

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