package ops

import (
	"context"
	"time"

	"go.opentelemetry.io/otel"
	"google.golang.org/protobuf/types/known/emptypb"

	"github.com/tidbcloud/dataflow-service/idl/pbgen/proto/dataflow"
	"github.com/tidbcloud/dataflow-service/internal/event-bus/consumer"
	"github.com/tidbcloud/pkgv2/log"
	"github.com/tidbcloud/pkgv2/tracing"
)

var Tracer = otel.Tracer("central/service/ops")

type OpsService struct {
	dataflow.UnsafeOPSServiceServer
}

// NewService constructs a importService
func NewService() dataflow.OPSServiceServer {
	return &OpsService{}
}

func (s *OpsService) ConsumerEventBusDLQ(ctx context.Context, req *dataflow.ConsumerEventBusDLQReq) (result *emptypb.Empty, err error) {
	ctx, span := Tracer.Start(ctx, "OpsService.ConsumerEventBusDLQ")
	defer func() { tracing.EndSpan(span, err) }()
	logger := log.WithContextL(ctx)
	logger.Sugar().Debugf("start")
	logger.Info("start to consume event bus dlq")
	err = consumer.RegisterDLQConsumer(time.Second * 3)
	return &emptypb.Empty{}, err
}
