package data

import (
	"fmt"
	"math/rand"
	"sync/atomic"

	"github.com/tidbcloud/aws-shared-provider/tests/framework"
	infra "github.com/tidbcloud/tidb-management-service/api/serverless_infra"
	"github.com/tidbcloud/tidb-management-service/api/serverless_infra/meta"
)

const (
	defaultTiDBReplicas = 1
)

var sequenceNo uint32 = 0

func NewDefaultCluster(ns, region, to string) *infra.Cluster {
	return &infra.Cluster{
		ObjectMeta: meta.ObjectMeta{
			Name: fmt.Sprintf("default-cluster-%d-%d",
				rand.Int31(), atomic.AddUint32(&sequenceNo, 1)),
			Namespace:      ns,
			TagsTenant:     "e2e-tenant-id",
			TagsKubernetes: to,
			Region:         region,
			Annotations:    framework.NewE2EAnno(nil, to),
		},
		Spec: infra.ClusterSpec{
			SqlEndpoints: infra.SqlEndpointsSpec{
				Public: &infra.PublicSpec{Enabled: true},
			},
			TiDB: infra.TiDBSpec{
				Replicas: defaultTiDBReplicas,
			},
		},
	}
}
