-- Eenmalig uit te voeren in de Supabase SQL Editor van het project waarnaar
-- SUPABASE_URL/SUPABASE_SERVICE_ROLE_KEY verwijzen. Maakt alle tabellen aan
-- die Notary.AI gebruikt om browserdata kantoorbreed te delen.
-- Bevat uitsluitend functionele/notariële data — nooit cliëntpersoonsgegevens
-- (zie AGENTS.md/ARCHITECTURE.md: dossiers met partijgegevens horen hier
-- expliciet niet bij zolang er geen GDPR-toetsing is gebeurd).

create table if not exists voorstellen_onderdelen (
  id         text primary key,
  data       jsonb not null,
  aangemaakt timestamptz default now()
);

create table if not exists voorstellen_modellen (
  id         text primary key,
  data       jsonb not null,
  aangemaakt timestamptz default now()
);

create table if not exists verbetervoorstellen (
  id         text primary key,
  data       jsonb not null,
  aangemaakt timestamptz default now()
);

create table if not exists dossiers (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists modeldocumenten_onderdelen (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists modeldocumenten_modellen (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists modeldocumenten_bronnen (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists modeldocumenten_onderdelen_historiek (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists regelgeving_wetten (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists regelgeving_annotaties (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists regelgeving_bladwijzers (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists regelgeving_actualiteit (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists ereloon_historiek (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists kennisbank_items (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists kennisbank_checklists (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists conventie_nazicht_aanpassingen (
  id        text primary key,
  data      jsonb not null,
  aangepast timestamptz default now()
);

create table if not exists gegenereerde_bestanden (
  token        text primary key,
  bestandsnaam text not null,
  mime_type    text not null,
  data_base64  text not null,
  verloopt_om  timestamptz not null
);

-- Werkdossier-sessies: elke Word-generatie 24 uur raadpleegbaar/bijwerkbaar
-- (lib/dossier/werkdossierSessies.ts). Invoer is per conventie geanonimiseerd.
create table if not exists werkdossier_sessies (
  token        text primary key,
  soort        text not null,
  invoer       jsonb not null,
  bestandsnaam text not null,
  download_url text not null,
  historiek    jsonb not null,
  aangemaakt   timestamptz not null,
  bijgewerkt   timestamptz not null,
  verloopt_om  timestamptz not null
);

-- Met de service_role key (server-side, nooit in de browser) is RLS niet
-- nodig om te kunnen lezen/schrijven. Schakel het toch in om misbruik via een
-- eventueel gelekte anon-key uit te sluiten:
alter table voorstellen_onderdelen      enable row level security;
alter table voorstellen_modellen        enable row level security;
alter table verbetervoorstellen         enable row level security;
alter table dossiers                    enable row level security;
alter table modeldocumenten_onderdelen  enable row level security;
alter table modeldocumenten_modellen    enable row level security;
alter table modeldocumenten_bronnen     enable row level security;
alter table modeldocumenten_onderdelen_historiek enable row level security;
alter table regelgeving_wetten          enable row level security;
alter table regelgeving_annotaties      enable row level security;
alter table regelgeving_bladwijzers     enable row level security;
alter table regelgeving_actualiteit     enable row level security;
alter table ereloon_historiek           enable row level security;
alter table kennisbank_items            enable row level security;
alter table kennisbank_checklists       enable row level security;
alter table conventie_nazicht_aanpassingen enable row level security;
alter table gegenereerde_bestanden      enable row level security;
alter table werkdossier_sessies         enable row level security;
