-- =====================================================================
--  GameDev Tracker — Migration v11 « Documentation »
--  À coller dans : Supabase > SQL Editor > New query > Run
--  Idempotent : sans danger si déjà appliquée.
--
--  Ajoute les fiches de documentation : GDD, conventions de code, notes
--  de réunion, procédures… Créées dans l'app ou importées depuis un
--  fichier Markdown / Word.
-- =====================================================================

create table if not exists public.documents (
  id          uuid primary key default gen_random_uuid(),
  project_id  uuid not null references public.projects(id) on delete cascade,
  title       text not null,
  -- Contenu en Markdown : c'est le format pivot. Un .docx importé est
  -- converti en Markdown à l'import, ce qui garde les fiches lisibles,
  -- cherchables et modifiables dans l'application.
  content     text not null default '',
  tags        text[] not null default '{}',
  -- Fichier d'origine, quand la fiche vient d'un import (informatif).
  source_name text,
  created_by  uuid references public.profiles(id) on delete set null,
  updated_by  uuid references public.profiles(id) on delete set null,
  created_at  timestamptz not null default now(),
  updated_at  timestamptz not null default now()
);

create index if not exists idx_documents_project on public.documents(project_id, updated_at desc);

drop trigger if exists trg_documents_touch on public.documents;
create trigger trg_documents_touch before update on public.documents
  for each row execute function public.touch_updated_at();

alter table public.documents enable row level security;

drop policy if exists documents_all on public.documents;

-- Équipe de confiance : tout membre connecté lit et écrit la documentation.
create policy documents_all on public.documents
  for all to authenticated using (true) with check (true);

do $$ begin
  alter publication supabase_realtime add table public.documents;
exception when duplicate_object then null; end $$;

notify pgrst, 'reload schema';
