feat(v1.5): complete phases 40-43 workflow cleanup
This commit is contained in:
168
.paul/phases/41-allegro-import-log-rationalization/41-01-PLAN.md
Normal file
168
.paul/phases/41-allegro-import-log-rationalization/41-01-PLAN.md
Normal file
@@ -0,0 +1,168 @@
|
||||
---
|
||||
phase: 41-allegro-import-log-rationalization
|
||||
plan: 01
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified:
|
||||
- src/Modules/Settings/AllegroOrderImportService.php
|
||||
- src/Modules/Settings/AllegroOrdersSyncService.php
|
||||
- src/Modules/Settings/AllegroStatusSyncService.php
|
||||
- src/Modules/Orders/OrdersRepository.php
|
||||
- resources/views/orders/show.php
|
||||
- DOCS/ARCHITECTURE.md
|
||||
- DOCS/TECH_CHANGELOG.md
|
||||
- DOCS/todo.md
|
||||
autonomous: true
|
||||
---
|
||||
|
||||
<objective>
|
||||
## Goal
|
||||
Zrealizowac punkt 41 z `DOCS/todo.md`: wyjasnic i uporzadkowac duza liczbe logow importu Allegro (np. na `/orders/29`) tak, aby bylo jasne skad pochodza wpisy i zredukowac szum w historii zdarzen.
|
||||
|
||||
## Purpose
|
||||
Historia zamowienia ma byc czytelna diagnostycznie: uzytkownik powinien widziec tylko sensowne wpisy importu i rozumiec, czy import uruchomil sync zamowien, sync statusow czy akcja reczna.
|
||||
|
||||
## Output
|
||||
Wdrozone ograniczenie duplikatow logow `import`, rozszerzony kontekst wpisu (zrodlo wywolania i metadane), oraz aktualna dokumentacja opisujaca przeplyw importu i przyczyne dotychczasowego nadmiaru wpisow.
|
||||
</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/21-order-source-display/21-01-SUMMARY.md
|
||||
@.paul/phases/29-delivery-status-mapping-ui/29-01-SUMMARY.md
|
||||
|
||||
## Source Files
|
||||
@src/Modules/Settings/AllegroOrderImportService.php
|
||||
@src/Modules/Settings/AllegroOrdersSyncService.php
|
||||
@src/Modules/Settings/AllegroStatusSyncService.php
|
||||
@src/Modules/Orders/OrdersRepository.php
|
||||
@resources/views/orders/show.php
|
||||
</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: Log importu zawiera czytelny kontekst uruchomienia
|
||||
```gherkin
|
||||
Given import Allegro jest uruchamiany z roznych miejsc (manual, sync zamowien, sync statusow)
|
||||
When powstaje wpis `import` w `order_activity_log`
|
||||
Then wpis zawiera metadane pozwalajace wskazac trigger i zakres sprawdzen
|
||||
And uzytkownik moze odroznic dlaczego import zostal wykonany
|
||||
```
|
||||
|
||||
## AC-2: Duplikaty logow importu sa ograniczone
|
||||
```gherkin
|
||||
Given ta sama wersja danych zamowienia jest importowana wielokrotnie
|
||||
When brak istotnej zmiany danych (np. to samo source_updated_at i ten sam trigger)
|
||||
Then kolejny wpis `import` nie jest dopisywany jako nowy rekord
|
||||
And historia zdarzen pozostaje skondensowana
|
||||
```
|
||||
|
||||
## AC-3: Przyczyna ilosci logow jest udokumentowana
|
||||
```gherkin
|
||||
Given wdrozenie jest zakonczone
|
||||
When sprawdzane sa dokumenty techniczne
|
||||
Then ARCHITECTURE i TECH_CHANGELOG wyjasniaja, skad braly sie liczne logi importu
|
||||
And punkt 41 w DOCS/todo.md jest oznaczony jako wykonany
|
||||
```
|
||||
|
||||
</acceptance_criteria>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Dodaj kontekst triggera do sciezek importu Allegro</name>
|
||||
<files>src/Modules/Settings/AllegroOrderImportService.php, src/Modules/Settings/AllegroOrdersSyncService.php, src/Modules/Settings/AllegroStatusSyncService.php</files>
|
||||
<action>
|
||||
Rozszerz wywolania importu tak, aby `AllegroOrderImportService` otrzymywal jawny kontekst triggera (np. `manual_import`, `orders_sync`, `status_sync`).
|
||||
Kiedy import zapisuje aktywnosc, zapisuj trigger i metadane diagnostyczne w `details_json`.
|
||||
Zachowaj kompatybilnosc z dotychczasowymi miejscami wywolan (domyslny trigger tam, gdzie niepodany).
|
||||
</action>
|
||||
<verify>rg -n "trigger|manual_import|orders_sync|status_sync|recordActivity\(" src/Modules/Settings/AllegroOrderImportService.php src/Modules/Settings/AllegroOrdersSyncService.php src/Modules/Settings/AllegroStatusSyncService.php</verify>
|
||||
<done>AC-1 satisfied: kazdy nowy log importu ma jasny kontekst uruchomienia.</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: Wprowadz deduplikacje wpisow `import` w historii zamowienia</name>
|
||||
<files>src/Modules/Orders/OrdersRepository.php, src/Modules/Settings/AllegroOrderImportService.php</files>
|
||||
<action>
|
||||
Dodaj mechanizm sprawdzajacy ostatni wpis `import` dla zamowienia i pomijajacy zapis, gdy dane diagnostyczne wskazuja ten sam cykl importu (np. identyczny `source_updated_at` + trigger + source_order_id).
|
||||
Nie pomijaj wpisu dla nowego zamowienia (`created=true`) ani dla realnej zmiany danych.
|
||||
Zadbaj o prepared statements i brak sklejania SQL stringiem z danymi.
|
||||
</action>
|
||||
<verify>rg -n "last import|dedup|source_updated_at|event_type = 'import'|details_json" src/Modules/Orders/OrdersRepository.php src/Modules/Settings/AllegroOrderImportService.php</verify>
|
||||
<done>AC-2 satisfied: historia nie jest zalewana duplikatami importu.</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 3: Uporzadkuj prezentacje i dokumentacje logow importu</name>
|
||||
<files>resources/views/orders/show.php, DOCS/ARCHITECTURE.md, DOCS/TECH_CHANGELOG.md, DOCS/todo.md</files>
|
||||
<action>
|
||||
W widoku historii (`orders/show`) upewnij sie, ze wpis `import` pozostaje czytelny dla uzytkownika (bez debugowego szumu), a pelny kontekst pozostaje diagnostycznie dostepny.
|
||||
Zaktualizuj dokumentacje: skad brala sie ilosc logow oraz jakie zasady deduplikacji i opisu triggerow obowiazuja po zmianie.
|
||||
Oznacz punkt 41 jako wykonany.
|
||||
</action>
|
||||
<verify>rg -n "import|trigger|deduplik|41\." resources/views/orders/show.php DOCS/ARCHITECTURE.md DOCS/TECH_CHANGELOG.md DOCS/todo.md</verify>
|
||||
<done>AC-3 satisfied: uzytkownik i zespol maja jasne wyjasnienie zachowania logow.</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## DO NOT CHANGE
|
||||
- `database/migrations/*`
|
||||
- Semantyka istniejacych event_type poza `import`
|
||||
- Integracje inne niz Allegro
|
||||
|
||||
## SCOPE LIMITS
|
||||
- Zakres dotyczy tylko logow importu Allegro i ich czytelnosci.
|
||||
- Bez przebudowy calego systemu activity log.
|
||||
- Bez zmiany endpointow UI niezwi¹zanych z historia zamowienia.
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
Before declaring plan complete:
|
||||
- [ ] `C:\xampp\php\php.exe -l src/Modules/Settings/AllegroOrderImportService.php`
|
||||
- [ ] `C:\xampp\php\php.exe -l src/Modules/Settings/AllegroOrdersSyncService.php`
|
||||
- [ ] `C:\xampp\php\php.exe -l src/Modules/Settings/AllegroStatusSyncService.php`
|
||||
- [ ] `C:\xampp\php\php.exe -l src/Modules/Orders/OrdersRepository.php`
|
||||
- [ ] `C:\xampp\php\php.exe -l resources/views/orders/show.php`
|
||||
- [ ] Manual check: historia zdarzen dla testowego zamowienia Allegro nie zawiera powtarzalnych wpisow bez zmian
|
||||
- [ ] Dokumentacja (`DOCS/ARCHITECTURE.md`, `DOCS/TECH_CHANGELOG.md`, `DOCS/todo.md`) zaktualizowana
|
||||
- [ ] All acceptance criteria met
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- Powod i trigger wpisow importu sa transparentne
|
||||
- Liczba duplikatow logow importu zostala istotnie zredukowana
|
||||
- Punkt 41 zamkniety wraz z dokumentacja techniczna
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/41-allegro-import-log-rationalization/41-01-SUMMARY.md`
|
||||
</output>
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
phase: 41-allegro-import-log-rationalization
|
||||
plan: 01
|
||||
status: completed
|
||||
completed: 2026-03-25
|
||||
---
|
||||
|
||||
# Phase 41 Plan 01 Summary
|
||||
|
||||
## Result
|
||||
- Dodano kontekst triggera do logow `import` (`manual_import`, `orders_sync`, `status_sync`).
|
||||
- Ograniczono duplikaty logow importu przez deduplikacje ostatniego wpisu (`source_order_id + source_updated_at + trigger`).
|
||||
- Historia zamowienia pokazuje skondensowany kontekst importu bez debugowego szumu.
|
||||
|
||||
## Acceptance Criteria
|
||||
- AC-1: Pass
|
||||
- AC-2: Pass
|
||||
- AC-3: Pass
|
||||
|
||||
## Verification
|
||||
- `php -l src/Modules/Settings/AllegroOrderImportService.php` PASS
|
||||
- `php -l src/Modules/Settings/AllegroOrdersSyncService.php` PASS
|
||||
- `php -l src/Modules/Settings/AllegroStatusSyncService.php` PASS
|
||||
- `php -l src/Modules/Orders/OrdersRepository.php` PASS
|
||||
- `php -l resources/views/orders/show.php` PASS
|
||||
- `rg` checks for trigger/dedup references PASS
|
||||
|
||||
## Files
|
||||
- `src/Modules/Settings/AllegroOrderImportService.php`
|
||||
- `src/Modules/Settings/AllegroOrdersSyncService.php`
|
||||
- `src/Modules/Settings/AllegroStatusSyncService.php`
|
||||
- `src/Modules/Orders/OrdersRepository.php`
|
||||
- `resources/views/orders/show.php`
|
||||
- `DOCS/ARCHITECTURE.md`
|
||||
- `DOCS/TECH_CHANGELOG.md`
|
||||
- `DOCS/todo.md`
|
||||
Reference in New Issue
Block a user