Projekty i czaty
Od 29.09.2026 portal daje modułom dwie klasy do pracy z projektami i czatami. Do tabel projects i terminals moduł nadal nie sięga wprost: czyta i zakłada przez te klasy, a one liczą dostęp tym samym kodem co portal. Na instancji bez tej wersji sprawdźcie najpierw class_exists(\App\Narzedzia\Rozmowy::class).
App\Narzedzia\Projekty: tylko odczyt. Zwraca zwykłe tablice z polami wspólnymi dla wszystkich instancji. Instancje dokładają do projektów własne kolumny (faza, PM, backlog), ale na nich moduł nie może polegać.
| Metoda | Zwraca |
|---|---|
lista($dla) | projekty widoczne dla osoby ($dla = User albo id): publiczne, własne, udostępnione wprost i przez grupę (administrator widzi wszystkie) |
projekt(int $id) | id, nazwa, slug, widocznosc, tworca_id, kontekst, adres albo null |
czlonkowie(int $id) | publiczny, tworca_id, osoby (id, nazwa, email), grupy (id, nazwa, osoby = id osób) |
maDostep(int $projektId, $osoba) | true/false ($osoba = User albo id), jak przy wejściu na stronę projektu |
rozmowy(int $projektId) | czaty projektu bez archiwum |
rozmowa(int $czatId) | id, nazwa, projekt_id, katalog, tworca_id, widok (prosty/terminal), zalozyl_modul, utworzono, adres |
rozmowaPoKatalogu(string $katalog) | to samo po katalogu roboczym czatu (pasuje też podkatalog) |
rozmowaPoKatalogu(getcwd()) przydaje się w komendzie artisan modułu, którą woła czat: komenda wie wtedy, z którego czatu i projektu ją uruchomiono.
App\Narzedzia\Rozmowy::zaloz(): nowy czat z pierwszą wiadomością. Idzie tą samą drogą co przycisk „+ Nowy czat” i wysłanie wiadomości w Prostym czacie.
use App\Narzedzia\Rozmowy;
$czat = Rozmowy::zaloz([
'modul' => 'pmo', // klucz Waszego modułu, obowiązkowy
'osoba' => $request->user(), // właściciel czatu (User albo id)
'projekt'=> $projekt['id'], // albo null = czat poza projektem
'nazwa' => 'Kamień M3: ustalenia',
'tresc' => "Przygotuj plan kamienia M3 na podstawie...", // pierwsza wiadomość; pusta = sam czat
]);
return redirect($czat['adres']); // ['id', 'adres', 'projekt_id', 'katalog', 'tura']- Portal sprawdza, że moduł istnieje, osoba jest aktywna i ma dostęp do projektu. Brak dostępu =
RuntimeException, zły moduł, osoba albo projekt =InvalidArgumentException. Nie zakładajcie czatu w projekcie, którego osoba nie widzi, „bo moduł może”. - Czat powstaje zawsze w widoku Prosty czat. Pierwsza wiadomość idzie od razu w imieniu osoby, a odpowiedź pojawia się w czacie jak po zwykłym wysłaniu.
- Bez
nazwaczat dostaje nazwę jak z przycisku, a tytuł dobiera się z pierwszej wiadomości. - Czat ma znacznik
zalozyl_modul(klucz modułu), widoczny wProjekty::rozmowa(). Po nim odróżnicie czaty założone przez moduł od założonych ręcznie. - Każde wywołanie z treścią to prawdziwa tura Claude na koncie instancji. Nie zakładajcie czatów w pętli ani z harmonogramu bez wyraźnej potrzeby.
Ostatnia zmiana dokumentacji: 29.09.2026. Pytania: m@redai.pl.