Rozwiązanie organizacji
Jeśli jesteś administratorem organizacji Multigabinet, masz możliwość jej rozwiązania. Proces jest dwufazowy z 7-dniowym okresem ochronnym, dane są migrowane z powrotem do specjalistów, którzy je utworzyli.
Kiedy ma to sens
Section titled “Kiedy ma to sens”- Klinika zamyka się lub łączy z inną organizacją
- Wszyscy specjaliści chcą kontynuować pracę indywidualnie
- Admin zmienia model rozliczeniowy (np. każdy specjalista płaci osobno)
Dwufazowy proces
Section titled “Dwufazowy proces”Faza 1: Zgłoszenie i okres ochronny (7 dni)
Section titled “Faza 1: Zgłoszenie i okres ochronny (7 dni)”- Otwórz aplikację jako admin organizacji
- Przejdź do
Profil organizacji → Subskrypcja - W sekcji „Niebezpieczna strefa” kliknij „Rozwiąż organizację”
- W dialogu potwierdzającym:
- Wpisz dokładnie nazwę organizacji (zabezpieczenie przed pomyłką)
- Opcjonalnie powód
- Klik Rozwiąż
System:
- Ustawia
organizations/{orgId}.dissolutionScheduledFor = now + 7 dni - Wysyła e-mail do wszystkich członków organizacji z informacją o terminie i opcji przejścia na indywidualne konto
W tym okresie cała organizacja wciąż działa normalnie — pacjenci dostępni, sesje/wizyty przechodzą, faktura wciąż generowana. Tylko status dissolutionScheduledFor jest aktywny.
Faza 2: Migracja danych (po 7 dniach)
Section titled “Faza 2: Migracja danych (po 7 dniach)”Po 7 dniach scheduled Cloud Function process_pending_org_dissolutions (uruchamiana co 24h) wykonuje:
- Migracja danych z org pool z powrotem do twórców:
patients/{pid}zorgId→ usuwaorgId, zostajetherapistId(twórca)- To samo dla:
sessions/{sid},wizyty/{wid},notes/{nid},attachments/{aid}
- Czyszczenie członków:
- Wszystkim członkom (admin + non-admin) usuwa
orgId,orgRole,orgAddonszusers/{uid} - Usuwa Custom Claims
orgId,orgRole
- Wszystkim członkom (admin + non-admin) usuwa
- Bonus trial 30 dni dla non-admin członków:
- Każdy non-admin member dostaje 30-dniowe trial na pełny plan, żeby zdążył skonfigurować indywidualną subskrypcję
- Archiwizacja organizacji:
organizations/{orgId}.dissolvedAt = nowmemberUids = [](pusty array)status = 'dissolved'
- Audit log: wpis
org_dissolved(art. 30 RODO)
Anulowanie w okresie 7-dniowym
Section titled “Anulowanie w okresie 7-dniowym”Admin może anulować rozwiązanie:
- Przejdź do
Profil organizacji → Subskrypcja - W sekcji „Rozwiązanie zaplanowane” kliknij „Anuluj rozwiązanie”
Cloud Function cancel_org_dissolution wyczyści dissolutionScheduledFor. Organizacja wraca do normalnego stanu.
Co dzieje się z danymi pacjentów
Section titled “Co dzieje się z danymi pacjentów”Pacjenci zostają w systemie, ale ich orgId jest usunięte. Każdy pacjent przechodzi z powrotem do specjalisty, który go utworzył (pole therapistId).
Pytanie: Co jeśli pacjenta utworzyło kilku specjalistów (np. terapeuta A, potem konsultacja u terapeuty B)?
Odpowiedź: W systemie pacjent ma jedno pole therapistId (twórca). Po rozwiązaniu organizacji pacjent trafia do twórcy. Inni specjaliści, którzy mieli z pacjentem sesje/wizyty, wciąż widzą te sesje w swojej karcie pacjenta (każda sesja ma własne therapistId), ale nie widzą innych sesji pacjenta z innymi terapeutami.
Jeśli wymaga to korekty (np. pacjent powinien zostać u terapeuty B, nie A), admin powinien przed rozwiązaniem zaktualizować pole therapistId w karcie pacjenta.
Co dzieje się z subskrypcją
Section titled “Co dzieje się z subskrypcją”Subskrypcja organizacji zostaje anulowana w Stripe (cancel_at_period_end).
Non-admin członkowie dostają 30-dniowy bonus trial na pełny plan, żeby zdążyli skonfigurować indywidualną subskrypcję bez przerwy w pracy.
Admin organizacji nie dostaje bonus trial — zakłada się, że to on rozwiązał organizację świadomie i ma plan na dalsze działanie.