package config import ( "os" "time" ) type Config struct { DatabaseURL string Port string Env string OpenFIGIKey string CoinGeckoKey string PriceFetchInterval time.Duration PriceCleanInterval time.Duration } func Load() *Config { fetchInterval, err := time.ParseDuration(getenv("PRICE_FETCH_INTERVAL", "1h")) if err != nil { fetchInterval = time.Hour } return &Config{ DatabaseURL: getenv("DATABASE_URL", "postgres://account:account@localhost:5432/account?sslmode=disable"), Port: getenv("PORT", "8080"), Env: getenv("ENV", "development"), OpenFIGIKey: os.Getenv("OPENFIGI_API_KEY"), CoinGeckoKey: os.Getenv("COINGECKO_API_KEY"), PriceFetchInterval: fetchInterval, PriceCleanInterval: 24 * time.Hour, } } func getenv(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback }