package standby

import (
	"context"
	"fmt"
	"game-driver/config/wait"
	"game-driver/internal/schema"
	"game-driver/pkg/pjlink"
	"go.uber.org/zap"
)

func PJLink(_ schema.WaitItemModel) func(c context.Context) error {
	return func(c context.Context) error {
		cfg := (wait.C).(wait.PJLink)
		pjc := pjlink.NewClient(cfg.Ip, cfg.Port, cfg.Password, cfg.Id)

		zap.S().Infoln("打开待机投影仪")
		resp, err := pjc.PowerOn()
		if err != nil {
			return fmt.Errorf("打开投影仪异常: %w", err)
		}
		zap.S().Infoln("投影仪返回报文：", resp)

		<-c.Done()

		zap.S().Infoln("关闭待机投影仪")
		resp, err = pjc.PowerOff()
		if err != nil {
			return fmt.Errorf("关闭投影仪异常: %w", err)
		}
		zap.S().Infoln("投影仪返回报文：", resp)

		return nil
	}
}
