## Mechanizm działania i przepływ danych Proces dodawania artykułu w systemie **Reperio** został zaprojektowany w modelu sekwencyjnym, zapewniającym integralność danych między frontendem (Lovable) a backendem (Supabase). ### Mapa drogowa przepływu 1. **Warstwa Klienta (Lovable):** Po kliknięciu „Zapisz”, formularz zbiera kluczowe metadane: `title`, `content_jsonb` oraz `layout_type`. Dane te trafiają do mutacji **TanStack Query** wraz z identyfikatorem `activeTenantId`. 2. **Strażnik FinOps (Baza Danych):** Trigger `trg_enforce_articles_limit` weryfikuje limity organizacji w tabeli `subscription_plans`, uniemożliwiając nadmiarową produkcję treści ponad wykupiony pakiet. 3. **Strażnik Integralności:** Trigger `trg_make_slug_unique` automatycznie zarządza unikalnością adresów URL (slugów) w ramach danego Tenanta, doklejając przyrostki numeryczne w razie kolizji. 4. **Reakcja UI:** System zwraca wynik transakcji. W przypadku sukcesu interfejs adaptuje styl (np. tryb ciemny dla `troubleshooting`), a w przypadku błędu – wyświetla komunikat o przekroczeniu limitów. ## Kluczowe punkty stabilizacji widoku Aby zapewnić bezbłędne działanie modułu, wyeliminowano najczęstsze punkty zapalne: * **Reaktywne odświeżanie:** Wprowadzono wymuszone `queryClient.invalidateQueries` po każdej udanej mutacji. * **Zgodność typów:** Mapowanie stanów layoutu odbywa się bezpośrednio na typy **Postgres Enum** (`documentation`, `tutorial`, `troubleshooting`). * **Kontekst Tenanta:** Każda operacja zapisu jest rygorystycznie sprawdzana pod kątem uprawnień **RLS (Row Level Security)**. ## Wytyczne wizualne i techniczne Interfejs utrzymany jest w stylistyce **Neo-Brutalist** (grube obramowania `border-4`, wyraziste bloki). Każdy layout artykułu posiada dedykowany kontroler renderowania, który dynamicznie przełącza widoki między dokumentacją a interaktywnymi tutorialami.