package loader

import (
	"context"
	"fmt"

	"github.com/creasty/defaults"

	"github.com/tidbcloud/devops/pkg/infra/config"
)

type ConfigurationSourceDefault struct {
}

func NewConfigurationSourceDefault() *ConfigurationSourceDefault {
	return &ConfigurationSourceDefault{}
}

func (s *ConfigurationSourceDefault) Load(_ context.Context, pre *config.RootConfig) (*config.RootConfig, error) {
	conf := &config.RootConfig{}
	err := defaults.Set(conf)
	if err != nil {
		return nil, fmt.Errorf("failed to set default config: %w", err)
	}

	return conf, nil
}
