@startuml

!include ../style.puml

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":ThriftParser" as ThriftParser LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant ":AddTransactionCommandParser" as AddTransactionCommandParser MODEL_COLOR
end box

[-> LogicManager : execute("add_expense")
activate LogicManager

LogicManager -> ThriftParser : parseCommand("add_expense")
activate ThriftParser

create AddTransactionCommandParser
ThriftParser -> AddTransactionCommandParser
activate AddTransactionCommandParser

ThriftParser <-- AddTransactionCommandParser
deactivate AddTransactionCommandParser
destroy AddTransactionCommandParser

LogicManager <-- ThriftParser
deactivate ThriftParser

[<-- LogicManager
deactivate LogicManager

[-> LogicManager : execute("add_income")
activate LogicManager

LogicManager -> ThriftParser : parseCommand("add_income")
activate ThriftParser

create AddTransactionCommandParser
ThriftParser -> AddTransactionCommandParser
activate AddTransactionCommandParser

ThriftParser <-- AddTransactionCommandParser
deactivate AddTransactionCommandParser
destroy AddTransactionCommandParser

LogicManager <-- ThriftParser
deactivate ThriftParser

[<-- LogicManager
deactivate LogicManager

@enduml
