Autoryzacja, Onboarding i Zarządzanie Subskrypcją
Architektura Uwierzytelniania i Autoryzacji
Przepływ Uwierzytelniania i Autoryzacji
Platforma EnterSlot opiera się na bezpiecznej integracji usług autoryzacyjnych (BaaS) z frameworkiem Next.js. Stan autoryzacji pobierany jest za pomocą dedykowanych procedur na poziomie silnika bazy danych PostgreSQL.
- Funkcja autoryzacyjna weryfikuje aktualny stan użytkownika i bezpiecznie łączy relacyjne dane z wielu struktur, aby zwrócić kompletny kontekst uprawnień jednym zapytaniem.
- Zwracane dane obejmują m.in. rolę, identyfikator organizacji oraz szczegółowe informacje o statusie subskrypcji.
- Aplikacja efektywnie keszuje wynik autoryzacji w warstwie serwerowej Next.js, minimalizując obciążenie bazy.
Walidacja Dostępów i Subskrypcji
Logika ewaluacji uprawnień realizowana jest przez dedykowane serwisy backendowe.
- Status okresu próbnego jest rygorystycznie walidowany na podstawie kryptograficznie zabezpieczonej daty ważności planu.
- Użytkownicy w aktywnym okresie próbnym otrzymują pełny dostęp do kluczowych modułów (zarządzanie placówką, zaawansowany kalendarz hybrydowy).
- Dla kont płatnych system dynamicznie weryfikuje poziom dostępu na podstawie ról (np. właściciel, recepcja) oraz wybranego wariantu planu dla zespołów.
Cykl Rejestracji i Onboarding
Faza 1: Utworzenie Konta i Automatyzacja Systemowa
Moment rejestracji nowego użytkownika aktywuje zautomatyzowane wyzwalacze (triggers) na poziomie silnika bazy danych. Logika rozwidla się w zależności od metadanych roli użytkownika:
- Ścieżka Pracownika: System automatycznie konfiguruje profil i nadaje odpowiednie uprawnienia bazowe dla członka zespołu.
- Ścieżka Właściciela (Domyślna): Tworzony jest profil główny, a właścicielowi automatycznie przypisywany jest bezpieczny status okresu próbnego z precyzyjnym wyliczeniem czasu wygaśnięcia.
Faza 2: Inicjalizacja Danych i Tworzenie Organizacji
Dla właściciela konta asynchronicznie inicjowana jest pełna struktura wielodostępna (multi-tenant):
- System automatycznie zasila strukturę bazy danych informacjami o organizacji, globalnych ustawieniach i powiązanej stronie WWW.
- Następuje seeding domyślnej zawartości bloków (kreator wizytówki AI) poprzez zapis w elastycznym formacie obiektów JSONB, obejmując strukturę nagłówka, style globalne, sekcję kalendarza i stopkę.
- Równolegle, systemowe funkcje brzegowe (Edge Functions) asynchronicznie generują i mapują identyfikator klienta w systemie płatności (Stripe API).
Faza 3: Przetwarzanie Onboardingu
Po zalogowaniu właściciel widzi formularz onboardingu. Jego wysłanie wyzwala bezpieczne akcje serwerowe (Next.js Server Actions).
- Akcja serwerowa wymusza użycie autoryzowanego klienta z uprawnieniami administracyjnymi w celu jednorazowej inicjalizacji z pominięciem standardowych reguł Row Level Security (RLS).
- System buduje niezmienny snapshot (migawkę) zawierający dokładną treść i wersję zaakceptowanych zgód B2B (Polityka Prywatności i Regulamin), adres IP oraz metadane User Agent.
- Dane te wędrują do niezmiennej struktury audytowej, zapewniając pełną zgodność prawną z dyrektywami RODO. Proces kończy się zatwierdzeniem pełnego statusu onboardingu.
Zarządzanie Subskrypcją i Webhooki (Data Flow)
Zmiana Planu i Płatności
Proces wyboru i modyfikacji planu inicjowany jest po stronie interfejsu klienta.
- System inteligentnie zarządza statusem subskrypcji, reagując na próby przedwczesnego przerwania okresu testowego.
- W zależności od wybranego cyklu rozliczeniowego, generowana jest bezpieczna sesja płatnicza, do której dynamicznie wstrzykiwane są niezbędne metadane bilingowe i integracyjne.
Przetwarzanie Zdarzeń Zewnętrznych (Webhooki)
Mechanika synchronizacji stanu subskrypcji opiera się na dedykowanych endpointach API, które nasłuchują zautoryzowanych zdarzeń przychodzących z infrastruktury Stripe.
- Ścisła walidacja duplikatów zdarzeń opiera się o mechanizmy unikalności na poziomie bazy danych (constraint violations), co bezbłędnie zapobiega podwójnemu przetwarzaniu tych samych operacji.
- Zdarzenia zmiany, utworzenia lub usunięcia subskrypcji wywołują funkcje aktualizujące stan (upsert) w czasie rzeczywistym.
- Logika backendowa konwertuje znaczniki czasu (UNIX timestamp do ISO), mapuje statusy i zabezpiecza natychmiastową degradację profilu w przypadku anulowania planu.
- Każda udana akcja modyfikacji stanu wyzwala automatyczne odświeżenie pamięci podręcznej po stronie klienta (cache revalidation).