package maintenancewindow

import (
	"context"

	tidbmgmtservicev1 "github.com/tidbcloud/tidb-management-service/api/spec/tidb_mgmt_service/v1"
	"github.com/tidbcloud/tidb-management-service/utilities/bizerr"
)

func (svc *service) GetMaintenanceTask(
	ctx context.Context,
	req *tidbmgmtservicev1.GetMaintenanceTaskRequest,
) (*tidbmgmtservicev1.MaintenanceTask, bizerr.BizError) {
	ctx, span := tracer.Start(ctx, "GetMaintenanceTaskSvc")
	defer span.End()

	if req.GetMaintenanceTaskId() == 0 {
		return nil, bizerr.New(bizerr.ErrCodeParams, "task_id is required")
	}

	task, err := svc.mtRepo.Load(ctx, req.GetMaintenanceTaskId())
	if err != nil {
		return nil, err
	}

	return &task.MaintenanceTask, nil
}
