package br

import (
	"context"
	"strconv"

	globalngv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/nextgen/v1"
	"github.com/tidbcloud/tidb-management-service/utilities/bizerr"
)

func (s *serviceImpl) BatchUpdateBackupSettingNames(
	ctx context.Context,
	req *globalngv1.BatchUpdateBackupSettingNamesRequest,
) bizerr.BizError {
	ctx, span := tracer.Start(ctx, "Domain.BatchUpdateBackupSettingNames")
	defer span.End()

	tenantId, err := strconv.ParseUint(req.GetOrganizationId(), 10, 64)
	if err != nil {
		return bizerr.WrapError(err, "failed to parse organization id")
	}

	clusterNames := make(map[uint64]string, len(req.GetItems()))
	for _, item := range req.GetItems() {
		if item.GetClusterId() == 0 || item.GetName() == "" {
			continue
		}
		clusterNames[item.GetClusterId()] = item.GetName()
	}
	if len(clusterNames) == 0 {
		return nil
	}

	return s.backupSettingRepo.BatchUpdateName(ctx, tenantId, clusterNames)
}
