package config import ( "os" ) // Config holds the application configuration type Config struct { Port string DatabaseURL string RedisURL string JWTSecret string OIDCIssuer string OIDCClientID string OIDCClientSecret string Audience string Issuer string } // LoadConfig loads the application configuration from environment variables func LoadConfig() *Config { return &Config{ Port: getEnv("PORT", "17000"), DatabaseURL: getEnv("DATABASE_URL", "postgresql://mohportal:password@localhost:5432/mohportal"), RedisURL: getEnv("REDIS_URL", "localhost:6379"), JWTSecret: getEnv("JWT_SECRET", "supersecretkeyforjwt"), OIDCIssuer: getEnv("OIDC_ISSUER", "http://localhost:8080/realms/master"), OIDCClientID: getEnv("OIDC_CLIENT_ID", "mohportal-client"), OIDCClientSecret: getEnv("OIDC_CLIENT_SECRET", "mohportal-secret"), Audience: getEnv("AUDIENCE", "mohportal-api"), Issuer: getEnv("ISSUER", "mohportal"), } } // getEnv gets an environment variable or returns a default value func getEnv(key, defaultValue string) string { if value := os.Getenv(key); value != "" { return value } return defaultValue }