@startuml

actor user
artifact example.import
component beancount.ingest
component SmartImporter

artifact downloaded.csv
artifact ledger.beancount
artifact "Resulting Transactions" as output

user ==> beancount.ingest: 1. execute \nbean-extract
example.import --> beancount.ingest: 2. config file
beancount.ingest ==> SmartImporter: 3. invokes \nan importer
downloaded.csv --> SmartImporter: 4. transactions \n to be imported
ledger.beancount --> SmartImporter: 5. existing entries \n(training data)
SmartImporter --> SmartImporter: 6. extracts transactions, \nthen adds predictions \nand/or suggestions
SmartImporter ==> output: 7. output
@enduml

example.import --> MyBankImporter: test


node node3
node node2
node node4
node node5
node1 -- node2
node1 .. node3
node1 ~~ node4
node1 == node5
