@startuml
!include style.puml

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":FoodRecordParser" as FoodRecordParser LOGIC_COLOR
participant ":NomCommandParser" as NomCommandParser LOGIC_COLOR
participant ":NomCommand" as NomCommand LOGIC_COLOR
end box

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

box FoodRecord UI_COLOR_T1
participant ":FoodRecord" as FoodRecord UI_COLOR
end box

[-> LogicManager : execute(nomString)
activate LogicManager

LogicManager -> FoodRecordParser : parseCommand(nomString, model)
activate FoodRecordParser

create NomCommandParser
FoodRecordParser -> NomCommandParser : new NomCommandParser(nomString, model)
activate NomCommandParser

create NomCommand
NomCommandParser -> NomCommand : new NomCommand(foodLog, food)
activate NomCommand

NomCommand -> ModelManager : updateCurrentFilteredDailyList(predicate, date)
activate ModelManager

ModelManager -> FoodRecord : updateCurrentFilteredDailyList(predicate, date)
activate FoodRecord

FoodRecord --> ModelManager
deactivate FoodRecord

ModelManager --> NomCommand
deactivate ModelManager

NomCommand --> NomCommandParser
deactivate NomCommand

NomCommandParser --> FoodRecordParser
deactivate NomCommandParser

FoodRecordParser --> LogicManager
deactivate FoodRecordParser

[<--LogicManager
deactivate LogicManager

destroy NomCommand
destroy NomCommandParser
@enduml
