package nodegroup

import (
	cloudv1 "github.com/tidbcloud/infra-api/api/v1"
	gardencorev1beta1 "github.com/tidbcloud/infra-api/pkg/gardener/core/apis/v1beta1"
)

func ToGardenerNodeSet(ng cloudv1.NodegroupSpec) gardencorev1beta1.Worker {
	worker := gardencorev1beta1.Worker{
		Name:        ng.Name,
		Labels:      ng.Labels,
		Annotations: ng.Annotations,
		Taints:      ng.Taints,
		Maximum:     ng.Maximum,
		Minimum:     ng.Minimum,
		Zones:       ng.Zones,
	}
	if ng.MachineSpec != nil {
		worker.Machine = gardencorev1beta1.Machine{
			Type: ng.MachineSpec.MachineType,
		}
		if ng.MachineSpec.MachineImage != "" {
			worker.Machine.Image = &gardencorev1beta1.ShootMachineImage{
				Name: ng.MachineSpec.MachineImage,
			}
			if ng.MachineSpec.MachineImageVersion != "" {
				worker.Machine.Image.Version = &ng.MachineSpec.MachineImageVersion
			}
		}

		if ng.MachineSpec.SystemVolumeSize != "" {
			worker.Volume = &gardencorev1beta1.Volume{
				VolumeSize: ng.MachineSpec.SystemVolumeSize,
			}
		}
		if ng.MachineSpec.SystemVolumeType != "" {
			worker.Volume.Type = &ng.MachineSpec.SystemVolumeType
		}
	}
	return worker
}
