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:
2026-05-07 23:22:37 +02:00
parent 0e457aed38
commit 782a291210
10 changed files with 638 additions and 73 deletions

View File

@@ -23,3 +23,37 @@
{"ts":"2026-05-07T13:08:56Z","tool":"Bash","cmd":"python \"C:/visual studio code/projekty/orderPRO/tools/generowanie/email_message_fetcher.py\" --email \"magda414133@gmail.com\" --days 60 --json 2>&1; ls \"d:/pomysloweprezenty.pl/projekty/komunia św","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T13:09:22Z","tool":"Bash","cmd":"cd \"C:/visual studio code/projekty/orderPRO\" && PYTHONIOENCODING=utf-8 python -c \"\\nimport subprocess\\nzyczenia = '„Bóg jest pierwszym źródłem radości\\\\ri nadziei człowieka.” — św.","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T13:09:31Z","tool":"Bash","cmd":"\"C:/xampp/mysql/bin/mysql.exe\" --default-character-set=utf8mb4 -h host700513.hostido.net.pl -P 3306 -u host700513_orderpro -phrDNtUBg9grwZ7syN77S host700513_orderpro -e \"UPDATE order_items SET proj","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:07:27Z","tool":"Bash","cmd":"mkdir -p \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\"\",\"description\":\"Create phase dir\"},\"tool_response\":{\"stdout\":\"\",\"stderr\":\","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:09:11Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-PLAN.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:09:42Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:12:16Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-PLAN.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:12:27Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-PLAN.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:12:37Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-PLAN.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:12:53Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-PLAN.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:13:03Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-PLAN.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:13:20Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-PLAN.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:13:26Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-PLAN.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:13:31Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-PLAN.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:15:05Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\src\\\\Modules\\\\Orders\\\\OrderImportRepository.php","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:15:13Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\src\\\\Modules\\\\Orders\\\\OrderImportRepository.php","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:15:28Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\src\\\\Modules\\\\Orders\\\\OrderImportRepository.php","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:15:37Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\src\\\\Modules\\\\Orders\\\\OrderImportRepository.php","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:15:44Z","tool":"Bash","cmd":"php -l \"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\src\\\\Modules\\\\Orders\\\\OrderImportRepository.php\"\",\"description\":\"PHP syntax check\"},\"tool_response\":{\"stdout\":\"No syntax e","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:16:25Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\codebase\\\\tech_changelog.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:16:40Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\codebase\\\\architecture.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:17:01Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:19:05Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\phases\\\\112-reimport-data-protection\\\\112-01-SUMMARY.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:19:25Z","tool":"Write","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\changelog\\\\2026-05-07.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:19:42Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:20:41Z","tool":"Bash","cmd":"cd '/c/visual studio code/projekty/orderPRO' && git status --short\",\"description\":\"Git status\"},\"tool_response\":{\"stdout\":\" M .paul/STATE.md\\n M .paul/codebase/architecture.md\\n M .paul/co","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:20:49Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\PROJECT.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:21:01Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\PROJECT.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:21:15Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\PROJECT.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:21:19Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\PROJECT.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:21:25Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\ROADMAP.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:21:35Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\ROADMAP.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:21:40Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\ROADMAP.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:21:59Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:22:07Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:22:16Z","tool":"Edit","file":"C:\\\\visual studio code\\\\projekty\\\\orderPRO\\\\.paul\\\\STATE.md","cwd":"/c/visual studio code/projekty/orderPRO"}
{"ts":"2026-05-07T21:22:24Z","tool":"Bash","cmd":"cd '/c/visual studio code/projekty/orderPRO' && git add src/Modules/Orders/OrderImportRepository.php .paul/codebase/architecture.md .paul/codebase/tech_changelog.md .paul/PROJECT.md .paul/ROADMAP.md .","cwd":"/c/visual studio code/projekty/orderPRO"}