Architektura Harmonogramu i Rezerwacji

1. Struktura Danych i Relacje Encji

System opiera się na zaawansowanym modelu relacyjnym z wykorzystaniem natywnych typów czasowych baz danych (np. przedziały czasowe z uwzględnieniem stref czasowych).

1.1 Ochrona Integralności Danych (Constraints)

System wykorzystuje niskopoziomowe indeksy wykluczające (Exclusion Constraints) na poziomie silnika bazy danych, aby w sposób całkowicie atomowy blokować wyścigi (Race Conditions) podczas jednoczesnych rezerwacji. Próba zapisu potwierdzonej rezerwacji, której czas trwania nakłada się na istniejącą rezerwację w obrębie tego samego zasobu, jest natychmiastowo i bezpiecznie odrzucana przez jądro bazy danych.


2. Rdzeń Logiki Biznesowej: Ewaluacja Dostępności

Ewaluacja wolnych terminów realizowana jest przez wysoce zoptymalizowane procedury składowane (RPC - Remote Procedure Call) uruchamiane bezpośrednio w bazie danych, co eliminuje opóźnienia sieciowe. Działanie silnika dzieli się na dwa scenariusze uzależnione od zdefiniowanych progów wyprzedzenia.

2.1 Scenariusz Elastyczny (Generowanie Serii)

Aktywowany dla dat bliskich (przed upływem zdefiniowanego progu inteligentnego).

2.2 Scenariusz Restrykcyjny (Inteligentny Harmonogram / Punkty Styku)

Aktywowany dla dat wykraczających poza próg, zapobiega zjawisku fragmentacji grafiku ("poszatkowany kalendarz").


3. Logika Kolizji: Wizyty Indywidualne vs Grupowe

Procedury ewaluacji weryfikują kolizje wykorzystując dynamiczne rozgałęzienia logiki (Control Flow) w zależności od typu usługi.


4. Architektura Warstwy API i Zapis Danych

Przepływ danych w aplikacji został zaprojektowany z myślą o bezpieczeństwie i wydajności:

  1. Frontend (UI) i Optymalizacja Stanu: Komponenty klienckie utrzymują lokalny stan kalendarza. Żądania dostępności (w formacie ustrukturyzowanych obiektów JSON) wysyłane są do autoryzowanych endpointów API.
  2. Mutacje Danych (Server Actions): Zapis danych realizowany jest wyłącznie w bezpiecznym środowisku serwerowym (Next.js Server Actions), z pominięciem publicznych REST API. Akcje te realizują ścisłą walidację struktur DTO (Data Transfer Objects) i wykorzystują uprzywilejowane poświadczenia serwerowe, w pełni opierając bezpieczeństwo zapisu na warstwie backendowej.

5. Architektura Modułu Zajęć Grupowych

Moduł zajęć grupowych różni się architektonicznie od standardowych rezerwacji, wprowadzając własne mechanizmy renderowania, zarządzania stanem oraz ochrony prywatności.