# Roadmap — Carei Reservation Form

## Milestone v0.1: Formularz Rezerwacji MVP

**Goal:** Działający formularz rezerwacji jako plugin Elementor, zintegrowany z API Softra Rent.

### Phase 1: Plugin Skeleton + API Proxy ✅ Complete
Utworzenie pluginu WordPress z proxy REST API do Softra Rent. Backend obsługujący autoryzację JWT, pobieranie oddziałów, klas pojazdów, cenników i dodatków. Rejestracja widgetu Elementor.

### Phase 2: Form UI — Krok 1 (Formularz) ✅ Complete
Frontend formularza rezerwacji w modalu Elementor. Dynamiczne segmenty (ze wszystkich lokalizacji), oddziały filtrowane po segmencie, opcje dodatkowe z cennika API, walidacja, responsive. Pominięto ubezpieczenie i wyjazd zagraniczny (brak w API — backlog).

### Phase 3: Submit + Booking Flow ✅ Complete
Pełny flow: formularz → customer/add → pricing summary overlay → makebooking → confirm → success z numerem. Pola adresowe + PESEL. Error handling. Fixy: boolean API params, timeout mapowania, drivers[] required.

### Phase 4: Polish & Integration Testing ✅ Complete
Edge cases (token retry, timeout, network errors), animacje przejść form↔summary↔success, accessibility (ARIA dialog, focus trap, focus management, aria-live), CSS fix.

### Phase 5: Admin Panel — Historia Formularzy ✅ Complete
CPT `carei_reservation` z automatycznym zapisem po booking, lista z kolumnami i filtrem statusu, meta box szczegółów, system statusów nowe/przeczytane/zrealizowane, auto-mark-read.

---

## Milestone v0.2: Wyjazd Zagraniczny

**Goal:** Wydzielenie pozycji "WYJAZD ZA GRANICĘ" z opcji dodatkowych do dedykowanej sekcji z wyszukiwarką krajów (zgodnie z Figmą).

**Status:** In progress

### Phase 6: Wyjazd zagraniczny — sekcja + wyszukiwarka krajów 🔄 Planning
Sekcja "Wyjazd zagraniczny" z checkboxem toggle, wyszukiwarką krajów z flagami/cenami, dodawanie/usuwanie krajów, integracja z API submit. Design z Figmy (node 32-397, 122:1054, 122:1091, 123:1195).

---

### Backlog (do realizacji gdy API będzie gotowe)
- **Ubezpieczenie:** Sekcja "Pakiet ochrony Soft/Premium" jak na Figmie. Wymaga dedykowanych pozycji ubezpieczeniowych w API pricelist.
