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>
This commit is contained in:
107
.paul/phases/16-automated-tasks/16-02-SUMMARY.md
Normal file
107
.paul/phases/16-automated-tasks/16-02-SUMMARY.md
Normal file
@@ -0,0 +1,107 @@
|
||||
---
|
||||
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*
|
||||
Reference in New Issue
Block a user