Files
orderPRO/.paul/phases/59-order-status-automation-event/59-01-SUMMARY.md
2026-03-31 00:30:50 +02:00

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
automation
events
order-status
conditions
phase provides
57-payment-automation-event payment.status_changed event pattern, condition evaluation pattern
order.status_changed automation event
order_status condition type with checkbox UI
chain emission from update_order_status action
future automation events
order workflow
added patterns
order status condition evaluation analogous to payment_status
created modified
src/Modules/Automation/AutomationController.php
src/Modules/Automation/AutomationService.php
src/Modules/Orders/OrdersController.php
resources/views/automation/form.php
resources/views/automation/index.php
public/assets/js/modules/automation-form.js
Emisja eventu tylko przy realnej zmianie statusu (old != new)
Chain emission z akcji update_order_status przez emitEvent() z depth protection
order_status condition: order_status_codes array z lowercase kodami statusow
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_changed dostepny 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_changed w 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