package main

import (
	"fmt"
	"golang.source-fellows.com/pattern/command/internal"
	"golang.source-fellows.com/pattern/command/internal/model"
)

func main() {
	fmt.Println("Hello world")

	invoker := &internal.CommandExecutor{}

	livingRoomLight := model.NewLight(false)
	cmd1 := internal.NewLightSwitchCommand(livingRoomLight)

	doorbell := model.NewDoorBell(true)
	doorBellCommand := internal.NewDoorbellCommand(doorbell)

	invoker.AddCommand(cmd1)
	invoker.AddCommand(doorBellCommand)

	invoker.ExecuteAllCommands()

}
