package config

import (
	"github.com/caarlos0/env/v11"
	"github.com/pkg/errors"
)

type Config struct {
	Logger Logger `envPrefix:"LOGGER_"`
	Auth   Auth   `envPrefix:"AUTH_"`
	HTTP   HTTP   `envPrefix:"HTTP_"`
	LLM    LLM    `envPrefix:"LLM_"`
}

func Parse() (*Config, error) {
	conf, err := env.ParseAsWithOptions[Config](env.Options{
		Prefix: "CLEARCASE_",
	})
	if err != nil {
		return nil, errors.WithStack(err)
	}

	return &conf, nil
}