package config import ( "fmt" "os" ) type Config struct { Env string // dev | stage | prod Addr string // listen address, e.g. ":8080" KeycloakIssuer string // e.g. http://localhost:8080/realms/breakpilot-dev DatabaseURL string // postgres DSN (unused in skeleton; in-memory store) } func Load() (*Config, error) { env := getenv("APP_ENV", "dev") if env != "dev" && env != "stage" && env != "prod" { return nil, fmt.Errorf("invalid APP_ENV %q", env) } return &Config{ Env: env, Addr: getenv("ADDR", ":8080"), KeycloakIssuer: getenv("KEYCLOAK_ISSUER", "http://localhost:8080/realms/breakpilot-dev"), DatabaseURL: os.Getenv("DATABASE_URL"), }, nil } func getenv(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback }