package steps

import (
	"context"
	"fmt"
	"time"

	"github.com/pingcap/log"
	"go.uber.org/zap"
)

// just sleep, do not thing
type sleepTask struct {
	duration time.Duration
}

func NewSleepTask(duration time.Duration) Step {
	return &sleepTask{duration: duration}
}

func (s *sleepTask) Execute(ctx context.Context) error {
	log.Info("sleep", zap.Duration("duration", s.duration))

	time.Sleep(s.duration)
	return nil
}

func (s *sleepTask) String() string {
	return fmt.Sprintf("sleep: %+v", s.duration)
}
