package config import "os" type Config struct { HTTPAddr string WSAddr string MQTTHost string MQTTUser string MQTTPass string MQTTClientID string KafkaURL string DBHost string DBUser string DBPass string DBName string HTTPClientID string ClientSecret string HTTPUsername string HTTPPassword string HTTPAudience string } // getEnv returns env var value or a default if not set. func getEnv(key, def string) string { if v := os.Getenv(key); v != "" { return v } return def } func Load() *Config { return &Config{ HTTPAddr: getEnv("HTTP_HOST_PATH", "0.0.0.0:1902"), WSAddr: getEnv("HTTPWS_HOST_PATH", "0.0.0.0:8088"), MQTTHost: getEnv("MQTT_HOST", "192.168.1.101"), MQTTUser: getEnv("MQTT_USERNAME", "user"), MQTTPass: getEnv("MQTT_PASSWORD", "pass"), MQTTClientID: getEnv("MQTT_CLIENT_ID", "presence-detector"), KafkaURL: getEnv("KAFKA_URL", "127.0.0.1:9092"), DBHost: getEnv("DBHost", "127.0.0.1"), DBUser: getEnv("DBUser", "postgres"), DBPass: getEnv("DBPass", "postgres"), DBName: getEnv("DBName", "go_crud_db"), HTTPClientID: getEnv("HTTPClientID", "Fastapi"), ClientSecret: getEnv("ClientSecret", "wojuoB7Z5xhlPFrF2lIxJSSdVHCApEgC"), HTTPUsername: getEnv("HTTPUsername", "core"), HTTPPassword: getEnv("HTTPPassword", "C0r3_us3r_Cr3d3nt14ls"), HTTPAudience: getEnv("HTTPAudience", "Fastapi"), } }