4.7 KiB
4.7 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 | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 59-order-status-automation-event | 01 | automation |
|
|
|
|
|
|
|
|
15min | 2026-03-30T23:45:00Z | 2026-03-31T00:00:00Z |
Phase 59 Plan 01: Order Status Automation Event Summary
Event automatyzacji order.status_changed z warunkiem order_status — emisja z recznej zmiany statusu i chain z akcji automatyzacji
Performance
| Metric | Value |
|---|---|
| Duration | ~15min |
| Tasks | 2 completed |
| Files modified | 6 |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: Event order.status_changed dostepny w formularzu | Pass | Opcja "Zmiana statusu zamowienia" w dropdown zdarzenia |
| AC-2: Warunek order_status z checkboxami statusow | Pass | Checkboxy z aktywnymi statusami zamowien (PHP + JS) |
| AC-3: Emisja eventu przy recznej zmianie statusu | Pass | OrdersController emituje po udanym updateOrderStatus() |
| AC-4: Chain emission z akcji update_order_status | Pass | AutomationService emituje przez emitEvent() z depth protection |
| AC-5: Etykieta w widoku listy regul i historii | Pass | index.php zawiera etykiety payment.status_changed + order.status_changed |
Accomplishments
- Event
order.status_changeddostepny w silniku automatyzacji z pelnym UI (dropdown zdarzenia, checkboxy warunku) - Emisja z dwoch zrodel: reczna zmiana statusu (OrdersController) i chain z akcji automatyzacji (AutomationService)
- Naprawiono brakujaca etykiete
payment.status_changedw index.php (bug z Phase 57)
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
src/Modules/Automation/AutomationController.php |
Modified | ALLOWED_EVENTS + order.status_changed, ALLOWED_CONDITION_TYPES + order_status, parseConditionValue + order_status, buildRuleFromRequest + order_status |
src/Modules/Automation/AutomationService.php |
Modified | evaluateOrderStatusCondition(), chain emit z handleUpdateOrderStatus(), dodano $context param |
src/Modules/Orders/OrdersController.php |
Modified | Pobranie oldStatus przed zmiana, emisja order.status_changed po sukcesie |
resources/views/automation/form.php |
Modified | Etykieta zdarzenia, opcja warunku order_status, checkboxy statusow zamowien |
resources/views/automation/index.php |
Modified | Etykiety payment.status_changed + order.status_changed |
public/assets/js/modules/automation-form.js |
Modified | buildOrderStatusCheckboxes(), opcja order_status w addCondition, onConditionTypeChange |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
| Emisja tylko przy old_status != new_status | Brak falszywych triggerow przy ustawieniu tego samego statusu | Spojnosc z wzorcem shipment.status_changed |
| handleUpdateOrderStatus otrzymuje $context dla chain | Potrzebny do emitEvent() z depth/dedup protection | Zapobiega petlom automatyzacji |
Deviations from Plan
Auto-fixed Issues
1. Bugfix: brakujaca etykieta payment.status_changed w index.php
- Found during: Poczatek sesji (zgloszenie uzytkownika)
- Issue: Phase 57 nie dodala etykiety do index.php — wyswietlala sie surowa nazwa
- Fix: Dodano wpis do $eventLabels w index.php
- Files: resources/views/automation/index.php
Total impact: Jeden bugfix z Phase 57 naprawiony przy okazji
Issues Encountered
None
Next Phase Readiness
Ready:
- Pelny zestaw eventow automatyzacji: receipt.created, shipment.created, shipment.status_changed, payment.status_changed, order.status_changed
- Wszystkie warianty warunkow: integration, shipment_status, payment_status, order_status
Concerns:
- None
Blockers:
- None
Phase: 59-order-status-automation-event, Plan: 01 Completed: 2026-03-31