@startuml
!include style.puml

box Logic LOGIC_COLOR_T1
participant ":ScheduleActivityCommand" as ScheduleActivityCommand LOGIC_COLOR
participant ":CommandResult" as CommandResult LOGIC_COLOR
end box

box Model MODEL_COLOR_T1
participant ":Model" as Model MODEL_COLOR
participant ":Planner" as Planner MODEL_COLOR
participant ":Itinerary" as Itinerary MODEL_COLOR
participant "filteredItinerary :FilteredList" as FilteredList MODEL_COLOR
end box

[-> ScheduleActivityCommand : execute()
activate ScheduleActivityCommand
ScheduleActivityCommand -> Model : getFilteredItinerary()
activate Model

Model --> ScheduleActivityCommand
deactivate Model

ScheduleActivityCommand -> Model : getFilteredActivityList()
activate Model

Model --> ScheduleActivityCommand
deactivate Model

ScheduleActivityCommand -> ScheduleActivityCommand : createScheduledActivityDay(dayToEdit, activitwithTimeToAdd)
activate ScheduleActivityCommand

ScheduleActivityCommand --> ScheduleActivityCommand : d
deactivate ScheduleActivityCommand

ScheduleActivityCommand -> Model : setDays(List<Days> days)
activate Model

Model -> Planner : setDays(editedDays)
activate Planner

Planner -> Itinerary : setDays(editedDays)
activate Itinerary

Itinerary --> Planner
deactivate Itinerary

Planner --> Model
deactivate Planner

Model -> FilteredList : updateFilteredItinerary(PREDICATE_SHOW_ALL_DAYS)
activate FilteredList

FilteredList --> Model
deactivate FilteredList

Model --> ScheduleActivityCommand
deactivate Model

create CommandResult
ScheduleActivityCommand -> CommandResult
activate CommandResult

CommandResult --> ScheduleActivityCommand
deactivate CommandResult

[<-- ScheduleActivityCommand : result
deactivate ScheduleActivityCommand


@enduml
