@startuml
!include style.puml
skinparam ArrowFontStyle plain

box Logic LOGIC_COLOR_T1
participant ":LogicManager" as LogicManager LOGIC_COLOR
participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR
participant ":RescheduleMeetingCommandParser" as RescheduleMeetingCommandParser LOGIC_COLOR
participant "rmc:RescheduleMeetingCommand" as RescheduleMeetingCommand LOGIC_COLOR
participant "r:CommandResult" as CommandResult LOGIC_COLOR
end box

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

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

LogicManager -> AddressBookParser : parseCommand("res)
activate AddressBookParser

create RescheduleMeetingCommandParser
AddressBookParser -> RescheduleMeetingCommandParser
activate RescheduleMeetingCommandParser

RescheduleMeetingCommandParser --> AddressBookParser
deactivate RescheduleMeetingCommandParser

AddressBookParser -> RescheduleMeetingCommandParser : parse("1 mi/1 md/2024-05-05 mt/09:00 ")
activate RescheduleMeetingCommandParser

create RescheduleMeetingCommand
RescheduleMeetingCommandParser -> RescheduleMeetingCommand
activate RescheduleMeetingCommand

RescheduleMeetingCommand --> RescheduleMeetingCommandParser :
deactivate RescheduleMeetingCommand

RescheduleMeetingCommandParser --> AddressBookParser : rc
deactivate RescheduleMeetingCommandParser

destroy RescheduleMeetingCommandParser

AddressBookParser --> LogicManager : rc
deactivate AddressBookParser

LogicManager -> RescheduleMeetingCommand : execute(m)
activate RescheduleMeetingCommand

RescheduleMeetingCommand -> Model : setPerson(1, editedPerson)
activate Model

Model --> RescheduleMeetingCommand
deactivate Model

create CommandResult
RescheduleMeetingCommand -> CommandResult
activate CommandResult

CommandResult --> RescheduleMeetingCommand
deactivate CommandResult

RescheduleMeetingCommand --> LogicManager : r
deactivate RescheduleMeetingCommand

[<--LogicManager
deactivate LogicManager
@enduml
