Files
orderPRO/.paul/phases/16-automated-tasks/16-02-SUMMARY.md
Jacek Pyziak b9f639e037 feat(16-automated-tasks): moduł zadań automatycznych — CRUD + watcher/executor
Reguły automatyzacji oparte na zdarzeniach (receipt.created) z warunkami
(integracja/kanał sprzedaży, AND logic) i akcjami (wyślij e-mail z 3 trybami
odbiorcy: klient / firma / klient+firma). Trigger w ReceiptController po
utworzeniu paragonu — błąd automatyzacji nie blokuje sukcesu paragonu.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 00:39:47 +01:00

108 lines
3.3 KiB
Markdown

---
phase: 16-automated-tasks
plan: 02
subsystem: automation
tags: [automation, watcher, executor, trigger, email-sending]
requires:
- phase: 16-automated-tasks
provides: automation_rules/conditions/actions DB + AutomationRepository
provides:
- AutomationService (trigger + condition evaluation + action execution)
- ReceiptController trigger integration
- EmailSendingService recipient override support
affects: []
tech-stack:
added: []
patterns: [event-trigger-pattern, condition-evaluator, action-executor]
key-files:
created:
- src/Modules/Automation/AutomationService.php
modified:
- src/Modules/Accounting/ReceiptController.php
- src/Modules/Email/EmailSendingService.php
- routes/web.php
- DOCS/ARCHITECTURE.md
- DOCS/TECH_CHANGELOG.md
key-decisions:
- "Synchronous trigger (not queued) — simplicity over performance"
- "recipientEmailOverride as optional params — backward compatible"
- "try/catch around trigger — automation failure never blocks receipt"
patterns-established:
- "Event trigger pattern: Controller -> AutomationService::trigger(eventType, entityId)"
- "Condition evaluator: AND logic with type-specific evaluation methods"
duration: ~15min
completed: 2026-03-18
---
# Phase 16 Plan 02: Automation Watcher/Executor Summary
**AutomationService: trigger receipt.created -> ewaluacja warunkow (integration) -> wykonanie akcji (send_email z 3 trybami odbiorcy).**
## Performance
| Metric | Value |
|--------|-------|
| Duration | ~15min |
| Completed | 2026-03-18 |
| Tasks | 3 completed (2 auto + 1 checkpoint) |
| Files created | 1 |
| Files modified | 5 |
## Acceptance Criteria Results
| Criterion | Status | Notes |
|-----------|--------|-------|
| AC-1: Ewaluacja warunkow | Pass | AND logic, integration_id check |
| AC-2: Akcja send_email | Pass | EmailSendingService::send() z actorName |
| AC-3: Odbiorca respektuje config | Pass | client/company/client_and_company |
| AC-4: Trigger w ReceiptController | Pass | try/catch, nie blokuje paragonu |
| AC-5: Logowanie automatyzacji | Pass | activity_type automation_email_* |
## Accomplishments
- AutomationService z pelnym flow: trigger -> evaluate -> execute
- Bezpieczna integracja w ReceiptController (try/catch)
- EmailSendingService rozszerzony o recipient override (backward compatible)
- 3 tryby odbiorcy e-mail: client, company, client_and_company
## Files Created/Modified
| File | Change | Purpose |
|------|--------|---------|
| `src/Modules/Automation/AutomationService.php` | Created | Watcher/executor |
| `src/Modules/Accounting/ReceiptController.php` | Modified | Trigger po zapisie paragonu |
| `src/Modules/Email/EmailSendingService.php` | Modified | recipientEmailOverride params |
| `routes/web.php` | Modified | DI wiring AutomationService |
| `DOCS/ARCHITECTURE.md` | Modified | Opis AutomationService + flow |
| `DOCS/TECH_CHANGELOG.md` | Modified | Wpis Phase 16 Plan 02 |
## Deviations from Plan
None — plan executed exactly as written.
## Issues Encountered
None.
## Next Phase Readiness
**Ready:**
- Phase 16 complete — pelny modul automatyzacji (CRUD + watcher/executor)
- Rozszerzalny: nowe typy zdarzen/warunkow/akcji = dodanie do whitelists + evaluator/handler
**Concerns:**
- Brak
**Blockers:**
- None
---
*Phase: 16-automated-tasks, Plan: 02*
*Completed: 2026-03-18*