!!! UPDATED PLAN (2026-01-29) !!!

DOLIBARR – PLANNING MODULE
MASTER PLAN / ROADMAP

STATUS OGÓLNY
- Projekt prowadzony etapowo
- Każdy etap ma jasny zakres
- Brak cofania się do etapów zamkniętych
- ETAP 2.4 (layout/scroll) CLOSED & FROZEN
- TG2.1 (auto date_end: qty/rate + buffer) CLOSED
- TG2.2 (Today anchor + Past left) CLOSED

==================================================
ETAPY ZAMKNIĘTE – TECHNICAL CLEANUP
==================================================

TG2.2 — SAFE CLEANUP (ARCHITECTURE)
STATUS: CLOSED

Zakres:
- Usunięcie duplikatów endpointów AJAX (root vs planning/ajax)
- Usunięcie martwych endpointów:
  - ajax/board_data.php (board używa board.php?ajax=1)
- Brak ajax_bootstrap (świadoma decyzja architektoniczna)
- Wprowadzenie helperów:
  - request_helpers.php
  - rights_helpers.php
  - time_range_helpers.php
- Ujednolicenie:
  - praw / CSRF / method checks przez helpery
  - kolejności include w endpointach AJAX

--------------------------------------------------

TG2.3.1 — AJAX JSON CONTRACT
STATUS: CLOSED

Zakres:
- Spójny kontrakt odpowiedzi AJAX:
  - planningOk() -> success=true
  - planningError() -> success=false
- Usunięcie bezpośredniego outputJson() z endpointów
- Zachowana kompatybilność JSON schema

Commit:
TG2.3.1: standardize ajax JSON responses (planningOk/planningError)

--------------------------------------------------

TG2.3.2 — TIMELINE SERVICE EXTRACTION
STATUS: CLOSED

Zakres:
- planning/ajax/timeline_data.php:
  - endpoint cienki (input -> service -> JSON)
- Cała logika timeline przeniesiona do:
  - PlanningTimelineService.class.php
- Service odpowiada za:
  - normalizację parametrów
  - budowę zapytań
  - mapowanie danych timeline
- Board nie został dotknięty (pełna separacja)

Commit:
TG2.3.2: move timeline logic into PlanningTimelineService (thin ajax)

==================================================
ETAPY OTWARTE / PLANOWANE
==================================================

TG2.4 — TIMELINE HARDENING
STATUS: NEXT

Cel:
- Utrwalenie stabilności timeline bez zmian UI

Zakres:
- Edge-case handling (brak jobów, puste grupy)
- Walidacja zakresów days
- Performance review (ilość zapytań, przygotowanie pod indeksy)
- Jawne kontrakty danych timeline

Ograniczenia:
- Brak zmian layout/CSS (ETAP 2.4 FROZEN)
- Brak zmian board
- Brak nowych feature'ów

--------------------------------------------------

TG2.5 — PLANNING DOMAIN CLEANUP
STATUS: PLANNED

Zakres:
- Jednoznaczne nazewnictwo (job / operation / workstation)
- Statusy jako const/enum
- Uporządkowanie relacji domenowych

==================================================
END OF PLAN
