create table public.cereri_consultanta (
  id uuid primary key default gen_random_uuid(),
  user_id uuid not null,
  nume_firma text,
  email text,
  telefon text,
  servicii text[] not null default '{}'::text[],
  mesaj text,
  status text not null default 'noua',
  constraint cereri_consultanta_status_check check (status in ('noua', 'in_lucru', 'finalizata')),
  created_at timestamptz not null default now()
);

grant select, insert, update, delete on public.cereri_consultanta to authenticated;
grant all on public.cereri_consultanta to service_role;

alter table public.cereri_consultanta enable row level security;

create policy "Clientul vede propriile cereri de consultanta"
  on public.cereri_consultanta for select to authenticated
  using (auth.uid() = user_id or public.has_role(auth.uid(), 'admin'));

create policy "Clientul trimite cereri de consultanta"
  on public.cereri_consultanta for insert to authenticated
  with check (auth.uid() = user_id);

create policy "Clientul isi retrage cererile de consultanta"
  on public.cereri_consultanta for delete to authenticated
  using (auth.uid() = user_id);

create policy "Admin modifica cererile de consultanta"
  on public.cereri_consultanta for update to authenticated
  using (public.has_role(auth.uid(), 'admin'))
  with check (public.has_role(auth.uid(), 'admin'));

create policy "Admin sterge cererile de consultanta"
  on public.cereri_consultanta for delete to authenticated
  using (public.has_role(auth.uid(), 'admin'));
