---
phase: 40-remove-order-list-bulk-print
plan: 01
type: execute
wave: 1
depends_on: []
files_modified:
  - src/Modules/Orders/OrdersController.php
  - resources/views/orders/list.php
  - src/Modules/Printing/PrintApiController.php
  - src/Modules/Printing/PrintJobRepository.php
  - routes/web.php
  - DOCS/ARCHITECTURE.md
  - DOCS/TECH_CHANGELOG.md
  - DOCS/todo.md
autonomous: true
---

<objective>
## Goal
Zrealizowac punkt 40 z `DOCS/todo.md`: usunac przycisk `Drukuj etykiety` z widoku `/orders/list` wraz z calym mechanizmem bulk print, ktory byl uruchamiany z listy zamowien.

## Purpose
Interfejs listy zamowien ma byc prostszy i zgodny z aktualnym procesem pracy (druk z poziomu szczegolow zamowienia / kolejek), bez dodatkowej akcji masowej, ktora ma zostac wycofana.

## Output
Usuniety przycisk i JS bulk print w `orders/list`, wycofany endpoint bulk drukowania, oczyszczony backend z nieuzywanego kodu oraz zaktualizowana dokumentacja i status TODO.
</objective>

<context>
## Project Context
@.paul/PROJECT.md
@.paul/ROADMAP.md
@.paul/STATE.md
@DOCS/todo.md
@DOCS/ARCHITECTURE.md
@DOCS/DB_SCHEMA.md

## Prior Work (only if genuinely needed)
@.paul/phases/19-ui-integration/19-01-SUMMARY.md

## Source Files
@src/Modules/Orders/OrdersController.php
@resources/views/orders/list.php
@src/Modules/Printing/PrintApiController.php
@src/Modules/Printing/PrintJobRepository.php
@routes/web.php
</context>

<skills>
## Required Skills (from SPECIAL-FLOWS.md)

| Skill | Priority | When to Invoke | Loaded? |
|-------|----------|----------------|---------|
| `sonar-scanner` | required | Po APPLY, przed UNIFY | o |
| /code-review | optional | Po implementacji, przed UNIFY | o |

**BLOCKING:** Required skills MUST be loaded before APPLY proceeds.

## Skill Invocation Checklist
- [ ] `sonar-scanner` uruchomiony po APPLY
- [ ] /code-review (opcjonalnie)
</skills>

<acceptance_criteria>

## AC-1: Brak akcji bulk print na liscie zamowien
```gherkin
Given uzytkownik otwiera /orders/list
When renderuje sie pasek akcji tabeli
Then przycisk "Drukuj etykiety" nie jest dostepny
And nie ma aktywnego JS, ktory wysyla bulk request do /api/print/jobs/bulk
```

## AC-2: Mechanizm bulk print zostal wycofany z backendu
```gherkin
Given aplikacja po wdrozeniu
When kod backendu jest przegladany pod endpoint bulk print
Then trasa /api/print/jobs/bulk oraz jej obsluga nie wystepuja
And nie zostaja referencje do logiki mapowania order_ids -> package_ids dla tego use case
```

## AC-3: Dokumentacja i TODO sa aktualne
```gherkin
Given zmiana punktu 40 jest zakonczona
When sprawdzane sa pliki dokumentacyjne
Then ARCHITECTURE i TECH_CHANGELOG opisuja usuniecie bulk print z listy zamowien
And punkt 40 w DOCS/todo.md jest oznaczony jako wykonany
```

</acceptance_criteria>

<tasks>

<task type="auto">
  <name>Task 1: Usun akcje UI "Drukuj etykiety" z listy zamowien</name>
  <files>src/Modules/Orders/OrdersController.php, resources/views/orders/list.php</files>
  <action>
    Usun definicje `header_actions` z przyciskiem `js-bulk-print-labels` w `OrdersController::index()`.
    W `resources/views/orders/list.php` usun blok JavaScript odpowiedzialny za obsluge bulk print (`fetch('/api/print/jobs/bulk'...)`).
    Zachowaj pozostale skrypty listy (np. hover podgladu obrazkow).
  </action>
  <verify>rg -n "js-bulk-print-labels|/api/print/jobs/bulk|Drukuj etykiety" src/Modules/Orders/OrdersController.php resources/views/orders/list.php</verify>
  <done>AC-1 satisfied: UI i JS bulk print na /orders/list nie istnieja.</done>
</task>

<task type="auto">
  <name>Task 2: Wycofaj endpoint bulk print i martwy kod backendowy</name>
  <files>src/Modules/Printing/PrintApiController.php, src/Modules/Printing/PrintJobRepository.php, routes/web.php</files>
  <action>
    Usun trase `POST /api/print/jobs/bulk` z `routes/web.php`.
    Usun metode `bulkCreateJobs()` z `PrintApiController`.
    Usun z repozytorium nieuzywana metode `findPackagesWithLabelsByOrderIds()` oraz powiazane referencje.
    Nie zmieniaj endpointu `POST /api/print/jobs` (druk pojedynczy musi zostac).
  </action>
  <verify>rg -n "/api/print/jobs/bulk|bulkCreateJobs|findPackagesWithLabelsByOrderIds" src routes</verify>
  <done>AC-2 satisfied: bulk mechanizm jest usuniety end-to-end.</done>
</task>

<task type="auto">
  <name>Task 3: Aktualizuj dokumentacje techniczna i status TODO</name>
  <files>DOCS/ARCHITECTURE.md, DOCS/TECH_CHANGELOG.md, DOCS/todo.md</files>
  <action>
    Dodaj wpisy o dekomisji bulk print z listy zamowien.
    Oznacz punkt 40 jako wykonany.
    Opis ma wskazac, ze druk etykiet pozostaje dostepny przez mechanizmy jednostkowe (szczegoly zamowienia / przygotowanie przesylki).
  </action>
  <verify>rg -n "40\.|bulk print|Drukuj etykiety|/orders/list" DOCS/ARCHITECTURE.md DOCS/TECH_CHANGELOG.md DOCS/todo.md</verify>
  <done>AC-3 satisfied: dokumentacja i TODO sa zgodne ze stanem kodu.</done>
</task>

</tasks>

<boundaries>

## DO NOT CHANGE
- `database/migrations/*`
- Endpointy API key dla klienta Windows (`/api/print/jobs/pending`, `/api/print/jobs/{id}/download`, `/api/print/jobs/{id}/complete`)
- Mechanizm drukowania pojedynczej etykiety (`POST /api/print/jobs`)

## SCOPE LIMITS
- Zakres obejmuje tylko usuniecie bulk print uruchamianego z `/orders/list`.
- Bez redesignu tabeli zamowien i bez zmian w innych akcjach bulk.
- Bez dodawania nowych funkcji drukowania.

</boundaries>

<verification>
Before declaring plan complete:
- [ ] `C:\xampp\php\php.exe -l src/Modules/Orders/OrdersController.php`
- [ ] `C:\xampp\php\php.exe -l src/Modules/Printing/PrintApiController.php`
- [ ] `C:\xampp\php\php.exe -l src/Modules/Printing/PrintJobRepository.php`
- [ ] `C:\xampp\php\php.exe -l routes/web.php`
- [ ] `rg -n "js-bulk-print-labels|/api/print/jobs/bulk|bulkCreateJobs" src resources/views routes`
- [ ] Dokumentacja (`DOCS/ARCHITECTURE.md`, `DOCS/TECH_CHANGELOG.md`, `DOCS/todo.md`) zaktualizowana
- [ ] All acceptance criteria met
</verification>

<success_criteria>
- Bulk print z listy zamowien zostal calkowicie usuniety (UI + backend)
- Brak regresji w pojedynczym drukowaniu etykiet
- Dokumentacja odzwierciedla nowy stan
</success_criteria>

<output>
After completion, create `.paul/phases/40-remove-order-list-bulk-print/40-01-SUMMARY.md`
</output>
