package main import ( "fmt" "os" "strings" "github.com/joho/godotenv" ) type Config struct { Port string DatabaseURL string StorageDir string DevMode bool } func LoadConfig() (Config, error) { _ = godotenv.Load() cfg := Config{ Port: envOrDefault("PORT", "8080"), DatabaseURL: os.Getenv("DATABASE_URL"), StorageDir: envOrDefault("STORAGE_DIR", "uploads"), DevMode: strings.EqualFold(envOrDefault("DEV_MODE", "false"), "true"), } if cfg.DatabaseURL == "" { return Config{}, fmt.Errorf("DATABASE_URL is required") } return cfg, nil } func envOrDefault(key, fallback string) string { value := os.Getenv(key) if value == "" { return fallback } return value }