---
phase: 89-allegro-info-page
plan: 01
type: execute
wave: 1
depends_on: ["88-01"]
files_modified: [routes/web.php, src/Modules/Info/InfoController.php, resources/views/info/allegro.php, resources/views/layouts/public.php]
autonomous: false
delegation: off
---

<objective>
## Goal
Utworzenie publicznej podstrony informacyjnej `/info` wymaganej przez Allegro w nagłówku User-Agent. Strona musi prezentować cel i opis aplikacji orderPRO dla administratorów zewnętrznych.

## Purpose
Allegro wymaga w User-Agent URL do strony informacyjnej aplikacji. Strona musi istnieć pod adresem skonfigurowanym w ALLEGRO_USER_AGENT_URL (domyślnie https://orderpro.pl/info).

## Output
Publiczna strona `/info` bez wymagania logowania, z opisem aplikacji orderPRO.
</objective>

<context>
## Project Context
@.paul/PROJECT.md
@.paul/ROADMAP.md
@.paul/STATE.md

## Prior Work
@.paul/phases/88-allegro-user-agent/88-01-SUMMARY.md — User-Agent header z URL do tej strony

## Source Files
@routes/web.php — routing (publiczne trasy bez middleware)
@src/Modules/Auth/AuthController.php — wzorzec kontrolera publicznej strony
@resources/views/layouts/auth.php — layout publicznych stron (bez sidebara)
</context>

<acceptance_criteria>

## AC-1: Strona /info dostepna publicznie
```gherkin
Given uzytkownik niezalogowany
When odwiedza /info w przegladarce
Then widzi strone informacyjna o aplikacji orderPRO (bez przekierowania na login)
```

## AC-2: Tresc strony zgodna z wymaganiami Allegro
```gherkin
Given administrator zewnetrzny (np. Allegro) odwiedza strone /info
When czyta zawartosc
Then widzi: nazwe aplikacji, opis celu dzialania, informacje o integracji z Allegro API, dane kontaktowe
```

## AC-3: Strona wyglada profesjonalnie
```gherkin
Given uzytkownik odwiedza /info
When strona sie laduje
Then widzi czysty, profesjonalny layout (bez sidebara/nawigacji aplikacji, minimalistyczny design)
```

</acceptance_criteria>

<tasks>

<task type="auto">
  <name>Task 1: Kontroler i routing strony /info</name>
  <files>src/Modules/Info/InfoController.php, routes/web.php</files>
  <action>
    1. Utworzyc `src/Modules/Info/InfoController.php`:
       - Klasa `final class InfoController` w namespace `App\Modules\Info`
       - Metoda `show(Request $request): Response`
       - Renderowanie widoku `info/allegro` z layoutem `layouts/public`
       - Przekazac do widoku: APP_NAME, APP_VERSION z getenv()

    2. W `routes/web.php`:
       - Dodac `use App\Modules\Info\InfoController;`
       - Utworzyc instancje `$infoController = new InfoController($template);`
       - Dodac route BEZ middleware: `$router->get('/info', [$infoController, 'show']);`
       - Umiescic blisko innych publicznych tras (login, health)
  </action>
  <verify>Route /info zdefiniowana bez authMiddleware w routes/web.php</verify>
  <done>AC-1 satisfied: strona /info dostepna bez logowania</done>
</task>

<task type="auto">
  <name>Task 2: Layout publiczny i widok strony informacyjnej</name>
  <files>resources/views/layouts/public.php, resources/views/info/allegro.php</files>
  <action>
    1. Utworzyc `resources/views/layouts/public.php`:
       - Minimalistyczny layout HTML5 (bez sidebara, nawigacji, ani elementow aplikacji)
       - Meta viewport dla mobile
       - Inline style lub link do istniejacego CSS (uzyc minimalnych styli)
       - Sekcja `<?= $content ?>` na tresc

    2. Utworzyc `resources/views/info/allegro.php`:
       - Tresc strony informacyjnej:
         - **Nazwa aplikacji:** orderPRO
         - **Wersja:** dynamicznie z przekazanej zmiennej
         - **Opis:** "orderPRO to aplikacja do zarzadzania zamowieniami z wielu kanalow sprzedazy (Allegro, sklepy internetowe). Umozliwia centralne przetwarzanie zamowien, generowanie etykiet przewozowych i sledzenie przesylek."
         - **Integracja z Allegro:** "Aplikacja korzysta z Allegro REST API do importu zamowien, zarzadzania przesylkami oraz synchronizacji statusow."
         - **Kontakt:** email kontaktowy (uzyc zmiennej lub hardcode)
       - Profesjonalny, minimalistyczny design
       - Jezyk strony: polski
       - Escape wszystkich zmiennych przez $e()
  </action>
  <verify>Pliki istnieja: resources/views/layouts/public.php i resources/views/info/allegro.php</verify>
  <done>AC-2 i AC-3 satisfied: tresc informacyjna i profesjonalny wyglad</done>
</task>

<task type="checkpoint:human-verify" gate="blocking">
  <what-built>Publiczna strona /info z opisem aplikacji orderPRO</what-built>
  <how-to-verify>
    1. Uruchom aplikacje lokalnie
    2. Odwiedz: http://localhost:8000/info (lub odpowiedni URL)
    3. Sprawdz: strona laduje sie BEZ logowania
    4. Sprawdz: widoczna nazwa aplikacji, opis, informacja o Allegro API
    5. Sprawdz: wyglad profesjonalny i czytelny
    6. Sprawdz: na mobile (zmniejsz okno) strona jest responsywna
  </how-to-verify>
  <resume-signal>Type "approved" to continue, or describe issues to fix</resume-signal>
</task>

</tasks>

<boundaries>

## DO NOT CHANGE
- src/Modules/Auth/* (system autoryzacji)
- resources/views/layouts/app.php (layout aplikacji)
- Istniejace publiczne trasy (login, health, cron)

## SCOPE LIMITS
- Tylko jedna strona /info — bez podstron
- Nie dodawac nowych zaleznosci CSS/JS
- Nie tworzyc systemu CMS — statyczna tresc w widoku

</boundaries>

<verification>
Before declaring plan complete:
- [ ] GET /info zwraca 200 bez zalogowania
- [ ] Strona zawiera nazwe, opis i informacje o Allegro API
- [ ] Layout nie zawiera elementow aplikacji (sidebar, nawigacja)
- [ ] Brak regresji w istniejacych trasach
</verification>

<success_criteria>
- Strona /info dostepna publicznie pod URL z User-Agent
- Tresc zgodna z wymaganiami Allegro (cel aplikacji, dane kontaktowe)
- Profesjonalny wyglad bez elementow wewnetrznych aplikacji
</success_criteria>

<output>
After completion, create `.paul/phases/89-allegro-info-page/89-01-SUMMARY.md`
</output>
