---
phase: 43-print-queue-entry-removal
plan: 01
type: execute
wave: 1
depends_on: []
files_modified:
  - src/Modules/Printing/PrintJobRepository.php
  - src/Modules/Settings/PrintSettingsController.php
  - routes/web.php
  - resources/views/settings/printing.php
  - resources/scss/modules/_printing.scss
  - public/assets/css/app.css
  - DOCS/ARCHITECTURE.md
  - DOCS/TECH_CHANGELOG.md
  - DOCS/todo.md
autonomous: false
---

<objective>
## Goal
Zrealizowac punkt 43 z `DOCS/todo.md`: dodac mozliwosc usuwania wpisu z kolejki druku etykiet.

## Purpose
Operator ma miec kontrole nad kolejka (np. usuniecie blednego lub nieaktualnego zlecenia), bez ingerencji bezposrednio w baze danych.

## Output
Nowa akcja usuwania wpisu kolejki z poziomu `Ustawienia > Drukowanie`, backendowy endpoint z walidacja CSRF, aktualizacja widoku i dokumentacji technicznej.
</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/18-print-queue-backend/18-01-SUMMARY.md
@.paul/phases/19-ui-integration/19-01-SUMMARY.md

## Source Files
@src/Modules/Printing/PrintJobRepository.php
@src/Modules/Settings/PrintSettingsController.php
@routes/web.php
@resources/views/settings/printing.php
@resources/scss/modules/_printing.scss
</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: Backend obsluguje usuwanie wpisu kolejki druku
```gherkin
Given wpis istnieje w tabeli `print_jobs`
When uzytkownik wysle poprawny request usuniecia z tokenem CSRF
Then rekord jest usuwany z kolejki
And uzytkownik dostaje komunikat sukcesu lub poprawny blad
```

## AC-2: UI pozwala usunac wpis z kolejki w bezpieczny sposob
```gherkin
Given uzytkownik jest na `Ustawienia > Drukowanie`
When kliknie akcje usuniecia przy wpisie kolejki
Then widzi potwierdzenie przez `window.OrderProAlerts.confirm(...)`
And po zatwierdzeniu wpis znika z listy po odswiezeniu
```

## AC-3: Zmiana jest odnotowana w dokumentacji i TODO
```gherkin
Given wdrozenie punktu 43
When sprawdzane sa dokumenty techniczne
Then ARCHITECTURE i TECH_CHANGELOG opisuja nowa akcje usuwania z kolejki
And punkt 43 w DOCS/todo.md jest oznaczony jako wykonany
```

</acceptance_criteria>

<tasks>

<task type="auto">
  <name>Task 1: Dodaj backendowe usuwanie wpisu kolejki druku</name>
  <files>src/Modules/Printing/PrintJobRepository.php, src/Modules/Settings/PrintSettingsController.php, routes/web.php</files>
  <action>
    Dodaj w repozytorium metode usuwania wpisu po `id` (prepared statement).
    Rozszerz `PrintSettingsController` o akcje `deleteJob` z walidacja CSRF i flash messages.
    Dodaj route POST dla usuwania wpisu kolejki (obszar ustawien drukowania, auth required).
    Zachowaj istniejace endpointy API dla klienta Windows bez zmian.
  </action>
  <verify>rg -n "deleteJob|DELETE FROM print_jobs|/settings/printing/jobs" src/Modules/Printing/PrintJobRepository.php src/Modules/Settings/PrintSettingsController.php routes/web.php</verify>
  <done>AC-1 satisfied: rekord moze byc usuniety przez kontrolowany endpoint.</done>
</task>

<task type="auto">
  <name>Task 2: Dodaj akcje usuwania do widoku kolejki druku</name>
  <files>resources/views/settings/printing.php, resources/scss/modules/_printing.scss, public/assets/css/app.css</files>
  <action>
    W tabeli `Kolejka wydruku` dodaj przycisk/formularz usuwania wpisu.
    Potwierdzenie realizuj przez `window.OrderProAlerts.confirm(...)` (bez natywnego `confirm`).
    Styl akcji dodaj w SCSS i przebuduj CSS do `public/assets/css/app.css`.
    Nie dodawaj inline CSS; zachowaj kompaktowosc layoutu.
  </action>
  <verify>rg -n "OrderProAlerts\.confirm|Usun|print-queue" resources/views/settings/printing.php resources/scss/modules/_printing.scss</verify>
  <done>AC-2 satisfied: usuwanie wpisu jest dostepne i zabezpieczone potwierdzeniem.</done>
</task>

<task type="auto">
  <name>Task 3: Zaktualizuj dokumentacje techniczna i TODO</name>
  <files>DOCS/ARCHITECTURE.md, DOCS/TECH_CHANGELOG.md, DOCS/todo.md</files>
  <action>
    Opisz nowa akcje usuwania wpisu kolejki i jej endpoint/kontroler.
    Oznacz punkt 43 jako wykonany.
    Upewnij sie, ze dokumentacja nie sugeruje juz braku tej funkcji.
  </action>
  <verify>rg -n "43\.|kolejk|usun|printing" DOCS/ARCHITECTURE.md DOCS/TECH_CHANGELOG.md DOCS/todo.md</verify>
  <done>AC-3 satisfied: dokumentacja i TODO sa aktualne.</done>
</task>

<task type="checkpoint:human-verify" gate="blocking">
  <what-built>Usuwanie wpisu kolejki druku z poziomu panelu ustawien.</what-built>
  <how-to-verify>
    1. Otworz `Ustawienia > Drukowanie`.
    2. W sekcji `Kolejka wydruku` kliknij `Usun` przy wybranym wpisie.
    3. Potwierdz akcje w modalu OrderProAlerts.
    4. Sprawdz, ze po odswiezeniu wpis nie jest widoczny.
    5. Sprawdz, ze anulowanie potwierdzenia nie usuwa wpisu.
  </how-to-verify>
  <resume-signal>Type "approved" to continue, or describe issues to fix</resume-signal>
</task>

</tasks>

<boundaries>

## DO NOT CHANGE
- `database/migrations/*`
- API key endpointy klienta drukujacego
- Logika tworzenia i pobierania etykiet

## SCOPE LIMITS
- Zakres dotyczy wyłącznie usuwania wpisow kolejki druku.
- Bez dodawania masowych operacji na kolejce.
- Bez zmian poza obszarem ustawien drukowania i repozytorium kolejki.

</boundaries>

<verification>
Before declaring plan complete:
- [ ] `C:\xampp\php\php.exe -l src/Modules/Printing/PrintJobRepository.php`
- [ ] `C:\xampp\php\php.exe -l src/Modules/Settings/PrintSettingsController.php`
- [ ] `C:\xampp\php\php.exe -l routes/web.php`
- [ ] `C:\xampp\php\php.exe -l resources/views/settings/printing.php`
- [ ] `npm run build:css` (jesli wymagane przez zmiany SCSS)
- [ ] Manual verification checkpoint wykonany
- [ ] Dokumentacja (`DOCS/ARCHITECTURE.md`, `DOCS/TECH_CHANGELOG.md`, `DOCS/todo.md`) zaktualizowana
- [ ] All acceptance criteria met
</verification>

<success_criteria>
- Uzytkownik moze usunac wpis kolejki druku z UI
- Potwierdzenie dziala przez OrderProAlerts
- Punkt 43 zamkniety wraz z dokumentacja
</success_criteria>

<output>
After completion, create `.paul/phases/43-print-queue-entry-removal/43-01-SUMMARY.md`
</output>
