@startuml
!include style.puml

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":ManageMeParser" as ManageMeParser LOGIC_COLOR
participant "d:DeleteDoneTaskCommand" as DeleteDoneTaskCommand LOGIC_COLOR
participant ":CommandResult" as CommandResult LOGIC_COLOR
end box

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

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

LogicManager -> ManageMeParser : parseCommand("deleteDoneTask")
activate ManageMeParser

create DeleteDoneTaskCommand
ManageMeParser -> DeleteDoneTaskCommand
activate DeleteDoneTaskCommand

DeleteDoneTaskCommand --> ManageMeParser : d
deactivate DeleteDoneTaskCommand

ManageMeParser --> LogicManager : d
deactivate ManageMeParser

LogicManager -> DeleteDoneTaskCommand : execute()
activate DeleteDoneTaskCommand

DeleteDoneTaskCommand -> Model : getFilteredTaskList()
activate Model

Model --> DeleteDoneTaskCommand : List<Task>
deactivate Model

loop List<Task>
    alt task.isDone
        DeleteDoneTaskCommand -> Model : ("deleteDoneTask")
        activate Model

        Model --> DeleteDoneTaskCommand
        deactivate Model
    end
end

create CommandResult
DeleteDoneTaskCommand -> CommandResult
activate CommandResult

CommandResult --> DeleteDoneTaskCommand
deactivate CommandResult

DeleteDoneTaskCommand --> LogicManager : result
deactivate DeleteDoneTaskCommand

[<--LogicManager
deactivate LogicManager
@enduml
