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>
This commit is contained in:
20
.paul/changelog/2026-05-07.md
Normal file
20
.paul/changelog/2026-05-07.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# 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`
|
||||
Reference in New Issue
Block a user