@startuml
!include style.puml
skinparam ArrowFontStyle plain

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":ExportCommandParser" as ExportCommandParser LOGIC_COLOR
participant "e:ExportCommand" as ExportCommand LOGIC_COLOR
end box

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

[-> LogicManager : execute(export)
activate LogicManager

LogicManager -> ExportCommandParser: parseCommand(export)
activate ExportCommandParser

ExportCommandParser -> ExportCommandParser : nameChecker(nameArgs)

Create ExportCommand
ExportCommandParser -> ExportCommand
activate ExportCommand

ExportCommand --> ExportCommandParser
deactivate ExportCommand

ExportCommandParser --> LogicManager
deactivate ExportCommandParser

LogicManager -> ExportCommand : execute(nameArgs)
Activate ExportCommand

ExportCommand -> Model : getFilteredPersonList()
activate Model
Model --> ExportCommand
deactivate Model

ExportCommand -> ExportCommand : generateListPeople()
ExportCommand -> ExportCommand : generateFile()
ExportCommand -> ExportCommand : convertToCsv()
ExportCommand --> LogicManager : nameArgs.csv
destroy ExportCommand


[<--LogicManager
deactivate LogicManager

@enduml
