dodil/erp-brick-activity

src/brick_activity/application/process.yaml

# The task's process, as the customer sees and signs it (erp_platform.bpmn renders it at GET /process/bpmn).
# The shape of a module spec's `workflows:` (erp-method modules/crm, workflows.task), written from what this brick's
# use cases do. Calls, emails and meetings are logged facts with no lifecycle. Keys are the BPMN ids: frozen once signed.
version: 1
name: Activity
actors:
  - { id: rep, name: Sales rep }
  - { id: manager, name: Sales manager }
workflows:
  - entity: task
    states: [open, done, cancelled]
    transitions:
      - { key: log_task, from: none, to: open, by: rep, name: Set a task, effect: "listed on its owner's tasks (CRM-12)" }
      - { key: reschedule_task, from: open, to: open, by: [rep, manager], name: Move the due date }
      - { key: complete_task, from: open, to: done, by: [rep, manager], name: Complete }
      - { key: cancel_task, from: open, to: cancelled, by: [rep, manager], name: Cancel }
      - { key: reopen_task, from: [done, cancelled], to: open, by: [rep, manager], name: Reopen }