Files
orderPRO/.paul/phases/16-automated-tasks/16-01-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

4.9 KiB

phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, completed
phase plan subsystem tags requires provides affects tech-stack key-files key-decisions patterns-established duration completed
16-automated-tasks 01 automation
automation
rules
crud
json-conditions
json-actions
phase provides
14-email-templates email_templates table (reuse w akcji send_email)
phase provides
13-email-mailboxes email_mailboxes table (reuse w EmailSendingService)
automation_rules / automation_conditions / automation_actions DB tables
AutomationController CRUD (7 routes)
AutomationRepository with findActiveByEvent() for watcher
Dynamic form UI (conditions + actions JS)
16-02-watcher-executor
added patterns
dynamic-form-rows-js
json-conditions-actions
rule-engine-schema
created modified
database/migrations/20260318_000057_create_automation_tables.sql
src/Modules/Automation/AutomationController.php
src/Modules/Automation/AutomationRepository.php
resources/views/automation/index.php
resources/views/automation/form.php
resources/scss/modules/_automation.scss
public/assets/js/modules/automation-form.js
routes/web.php
resources/views/layouts/app.php
resources/scss/app.scss
public/assets/css/app.css
DOCS/DB_SCHEMA.md
DOCS/ARCHITECTURE.md
DOCS/TECH_CHANGELOG.md
JSON columns for condition_value/action_config: extensible without schema changes
Whitelist validation for event/condition/action types in controller constants
Transactional create/update: rule + conditions + actions atomically
Dynamic form rows pattern: JS template clone with index management
Rule engine schema: rules → conditions (AND) → actions pattern
~30min 2026-03-18

Phase 16 Plan 01: Automation Rules DB + CRUD Summary

CRUD modulu zadania automatyczne: 3 tabele DB, kontroler z 7 route'ami, dynamiczny formularz z warunkami/akcjami.

Performance

Metric Value
Duration ~30min
Completed 2026-03-18
Tasks 4 completed (3 auto + 1 checkpoint)
Files created 7
Files modified 6

Acceptance Criteria Results

Criterion Status Notes
AC-1: Tabele DB z relacjami Pass 3 tabele z FK CASCADE, indeksy
AC-2: Lista regul Pass Tabela z nazwa, zdarzenie, status, toggle, edytuj/usun
AC-3: Tworzenie reguly Pass Formularz z warunkami + akcjami, zapis transakcyjny
AC-4: Edycja i usuwanie Pass Edit laduje dane, delete z CASCADE
AC-5: Dynamiczny formularz Pass JS dodaje/usuwa wiersze warunkow i akcji

Accomplishments

  • 3 tabele DB z JSON columns dla elastycznej konfiguracji warunkow/akcji
  • Pelny CRUD z transakcyjnym zapisem (rule + conditions + actions atomowo)
  • Dynamiczny formularz JS z template pattern — dodawanie/usuwanie wierszy bez przeladowania
  • findActiveByEvent() gotowy do uzycia przez watcher w planie 16-02

Files Created/Modified

File Change Purpose
database/migrations/20260318_000057_create_automation_tables.sql Created 3 tabele automation
src/Modules/Automation/AutomationController.php Created CRUD + walidacja + whitelist
src/Modules/Automation/AutomationRepository.php Created DB operations + findActiveByEvent
resources/views/automation/index.php Created Lista regul z toggle/edit/delete
resources/views/automation/form.php Created Formularz dynamiczny
resources/scss/modules/_automation.scss Created Style formularza
public/assets/js/modules/automation-form.js Created Logika dodawania/usuwania wierszy
routes/web.php Modified 7 nowych route'ow + DI
resources/views/layouts/app.php Modified Menu link "Zadania automatyczne"
resources/scss/app.scss Modified Import _automation.scss
public/assets/css/app.css Modified Rebuilt
DOCS/DB_SCHEMA.md Modified Dokumentacja 3 nowych tabel
DOCS/ARCHITECTURE.md Modified Nowy modul + route'y + klasy
DOCS/TECH_CHANGELOG.md Modified Wpis Phase 16 Plan 01

Decisions Made

Decision Rationale Impact
JSON columns dla condition_value/action_config Nowe typy warunkow/akcji bez migracji DB Rozszerzalnosc modulu
Whitelist w controller constants Bezpieczenstwo — tylko dozwolone typy Nowy typ = 1 linia w ALLOWED_ array
Transakcyjny create/update Atomowosc — brak czesciowych zapisow Spójnosc danych

Deviations from Plan

None — plan executed exactly as written.

Issues Encountered

None.

Next Phase Readiness

Ready:

  • AutomationRepository::findActiveByEvent('receipt.created') gotowe do uzycia
  • Schema DB gotowa — watcher moze odczytywac reguly
  • CRUD dzialajacy — uzytkownik moze definiowac reguly

Concerns:

  • Brak

Blockers:

  • None — gotowe do planu 16-02 (Watcher/Executor)

Phase: 16-automated-tasks, Plan: 01 Completed: 2026-03-18