Since the assignment text does not specify such details, you may choose a method you think it's better. I proposed two ideas, but they may be more.
The switchPhase() function I have used as example may simply notify the new phase (this should reflect your second point), or it can start / unlock it (it should reflect your first point). As you wish.
I do not remember if it is asked to notify the switching between phases, but if you think it is an important event to be acknowledged, then think about the pros / cons of each solution.
Hope it helps.