Phase 29 complete (v1.3): - Tabela delivery_status_mappings z DB overrides - DeliveryStatus: normalizeWithOverrides(), descriptionWithOverrides(), getDefaultMappings() - UI ustawień: tabela mapowań per provider (InPost/Apaczka/Allegro), bulk save, reset, resetAll - 5 endpointów w routes/web.php, link w menu bocznym Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.0 KiB
5.0 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, started, completed
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | duration | started | completed | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 29-delivery-status-mapping-ui | 01 | ui, settings |
|
|
|
|
|
|
|
|
~45min | 2026-03-23T22:00:00Z | 2026-03-23T22:45:00Z |
Phase 29 Plan 01: Delivery Status Mapping UI Summary
UI konfiguracji mapowania surowych statusów dostawy na znormalizowane — per provider, z edycją, resetem i bulk save.
Performance
| Metric | Value |
|---|---|
| Duration | ~45min |
| Tasks | 3 completed |
| Files created | 5 |
| Files modified | 4 |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: Lista mapowań per provider | Pass | Tabela z InPost/Apaczka/Allegro, kolumny raw/description/normalized |
| AC-2: Edycja mapowania statusu | Pass | Select z LABEL_PL, bulk save |
| AC-3: Edycja opisu statusu | Pass | Input text per wiersz |
| AC-4: Reset do domyślnych | Pass | Przycisk per wiersz + resetuj wszystkie |
| AC-5: DeliveryStatus używa custom overrides | Pass | normalizeWithOverrides() i descriptionWithOverrides() |
Accomplishments
- Tabela
delivery_status_mappingsz UNIQUE KEY na provider+raw_status - Pełne CRUD repozytorium z upsert i deleteAllByProvider
- DeliveryStatus rozszerzony o
getDefaultMappings(),normalizeWithOverrides(),descriptionWithOverrides(),ALL_STATUSES - Kontroler z index/save/saveBulk/reset/resetAll
- Widok z tabelą per provider, bulk save, reset per wiersz i reset all
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
database/migrations/20260323_000070_...sql |
Created | Tabela delivery_status_mappings |
src/Modules/Shipments/DeliveryStatusMappingRepository.php |
Created | CRUD repozytorium |
src/Modules/Settings/DeliveryStatusMappingController.php |
Created | Kontroler ustawień mapowań |
resources/views/settings/delivery-status-mappings.php |
Created | Widok tabeli mapowań |
resources/scss/modules/_delivery-status-mappings.scss |
Created | Style CSS dla custom rows |
src/Modules/Shipments/DeliveryStatus.php |
Modified | ALL_STATUSES, getDefaultMappings, *WithOverrides methods |
routes/web.php |
Modified | 5 nowych endpointów + controller instantiation |
resources/views/layouts/app.php |
Modified | Link w menu bocznym |
resources/scss/app.scss |
Modified | Import nowego modułu SCSS |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| Bulk save z auto-detekcją defaults | Unikamy zbędnych wpisów w DB gdy wartości == domyślne | Czysta tabela overrides |
| Osobny hidden form na reset (nie nested) | HTML nie pozwala na nested forms | Fix buga z resetem |
| resetAll dodany | User request | Dodatkowy endpoint + przycisk |
Deviations from Plan
Summary
| Type | Count | Impact |
|---|---|---|
| Scope additions | 2 | Minimalne — bug fix + feature request |
- Bug fix: nested forms — Reset forms były zagnieżdżone w bulk save form. Przebudowano na hidden form + JS.
- Scope addition: resetAll — Dodano przycisk "Resetuj wszystkie" + endpoint + repo method na życzenie usera.
Skill Audit
| Expected | Invoked | Notes |
|---|---|---|
| sonar-scanner | ✓ | 0 nowych unikalnych issues; 3x S1192 pre-existing (duplikaty stringów w DeliveryStatus), 1x S1142 pre-existing (matchCarrierByName), 2x accessibility minor w widoku (pre-existing pattern) |
Next Phase Readiness
Ready:
- UI mapowania gotowe do użytku
- DeliveryStatus override methods gotowe do integracji w ShipmentTrackingHandler
Concerns:
- ShipmentTrackingHandler jeszcze nie przekazuje overrides do DeliveryStatus — wymaga osobnego planu integracji
Blockers: None
Phase: 29-delivery-status-mapping-ui, Plan: 01 Completed: 2026-03-23