Files
orderPRO/.paul/changelog/2026-05-07.md
Jacek Pyziak 782a291210 feat(112): re-import data protection — delta-only re-import + project_generated preservation
Phase 112 / Plan 112-01 complete (v3.6):
- OrderImportRepository::upsertOrderAggregate split into create vs re-import paths
- replaceAddresses/Items/Notes/Shipments/StatusHistory invoked only on first import
- new updateOrderDelta() narrows UPDATE to status_code (cond.), payment_status,
  total_paid, is_canceled_by_buyer, source_updated_at, payload_json, fetched_at
- source-side cancellation override (is_canceled_by_buyer=1 OR pull status_code='anulowane')
- identical-payload no-op guard via normalizePayloadJson()
- fixes case #882: order_items.id stable, project_generated (Phase 97) preserved
- Phase 111 payment.status_changed emit retained without regression

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 23:22:37 +02:00

21 lines
1.4 KiB
Markdown

# 2026-05-07
## Co zrobiono
- [Phase 112, Plan 01] Re-import Data Protection — re-import istniejacego zamowienia jest delta-only
- Task 1: `replaceAddresses/replaceItems/replaceNotes/replaceShipments/replaceStatusHistory` przeniesione pod galaz `if ($created)` w `OrderImportRepository::upsertOrderAggregate``order_items.id` i flagi lokalne (project_generated z Phase 97) sa stabilne miedzy re-importami
- Task 2: nowa metoda `updateOrderDelta()` aktualizuje wylacznie `status_code` (warunkowo), `payment_status`, `total_paid`, `is_canceled_by_buyer`, `source_updated_at`, `payload_json`, `fetched_at`, `updated_at`. Dodana propagacja anulowania ze zrodla (`is_canceled_by_buyer=1` LUB pull `status_code='anulowane'`) i identical-payload no-op guard via `normalizePayloadJson()`
- Task 3: `.paul/codebase/architecture.md` (sekcja Re-import) i `.paul/codebase/tech_changelog.md` (wpis 2026-05-07) zaktualizowane
- Bug case #882 (znikajaca flaga "Projekt" po re-imporcie wymuszanym przez `payment.status_changed`) przyczynowo naprawiony
- `php -l src/Modules/Orders/OrderImportRepository.php` -> No syntax errors
- Manualne AC-1..AC-7 odlozone — XAMPP/MySQL nieosiagalne w sesji
## Zmienione pliki
- `src/Modules/Orders/OrderImportRepository.php`
- `.paul/codebase/architecture.md`
- `.paul/codebase/tech_changelog.md`
- `.paul/phases/112-reimport-data-protection/112-01-PLAN.md`
- `.paul/phases/112-reimport-data-protection/112-01-SUMMARY.md`
- `.paul/STATE.md`