@startuml
!include https://raw.githubusercontent.com/xzynos/tp/branch-MoneyGoWhere-Webpage/docs/diagrams/Styles.puml

skinparam sequenceReferenceBackgroundColor #ffffff

Participant "consoleInterface:ConsoleInterface" as consoleInterface USER_INTERFACE_COLOR_1
Participant "expenseManager:ExpenseManager" as expenseManager DATA_COLOR_1
Participant "<<class>>\nLocalStorage" as LocalStorage STORAGE_COLOR_1

activate consoleInterface USER_INTERFACE_COLOR_1

ref over consoleInterface: getConsoleCommand()

opt consoleCommand instanceof ConsoleCommandDeleteExpense
    consoleInterface -[USER_INTERFACE_COLOR_1]> consoleInterface : \lrunCommandDeleteExpense(\n\tconsoleCommand:ConsoleCommandDeleteExpense\n)
    activate consoleInterface USER_INTERFACE_COLOR_1

    consoleInterface -[USER_INTERFACE_COLOR_1]> expenseManager : deleteExpense(expenseIndex:int)
    activate expenseManager DATA_COLOR_1

    expenseManager --[DATA_COLOR_1]> consoleInterface
    deactivate expenseManager

    ref over consoleInterface: printInformationalMessage(consoleStr:String)

    consoleInterface -[USER_INTERFACE_COLOR_1]> expenseManager : save()
    activate expenseManager DATA_COLOR_1

    expenseManager -[DATA_COLOR_1]> LocalStorage : \lsaveToFile(\n\texpenses:ArrayList<Expenses>\n)
    activate LocalStorage STORAGE_COLOR_1

    LocalStorage --[STORAGE_COLOR_1]> expenseManager
    deactivate LocalStorage

    expenseManager --[DATA_COLOR_1]> consoleInterface
    deactivate expenseManager

    consoleInterface --[USER_INTERFACE_COLOR_1]> consoleInterface
    deactivate consoleInterface
end

deactivate consoleInterface
@enduml
