package config import ( "os" "strings" ) type Config struct { Port string DBURL string JWTSecret string AMOSBaseURL string CORSOrigins []string MigrationsDir string RustServiceURL string RedisURL string KafkaBrokers []string ResendAPIKey string FromEmail string FromName string } func Load() *Config { return &Config{ Port: getEnv("PORT", "9092"), DBURL: getEnv("DB_URL", "postgres://boc:boc@localhost:5432/boc?sslmode=disable"), JWTSecret: getEnv("JWT_SECRET", "change-me-in-production"), AMOSBaseURL: getEnv("AMOS_BASE_URL", "http://localhost:9000"), CORSOrigins: splitComma(getEnv("CORS_ORIGINS", "http://localhost:3000")), MigrationsDir: getEnv("MIGRATIONS_DIR", "./db/migrations"), RustServiceURL: getEnv("RUST_SERVICE_URL", "http://localhost:9093"), RedisURL: getEnv("REDIS_URL", "redis://localhost:6379"), KafkaBrokers: splitComma(getEnv("KAFKA_BROKERS", "localhost:9092")), ResendAPIKey: getEnv("RESEND_API_KEY", ""), FromEmail: getEnv("FROM_EMAIL", "noreply@landvex.com"), FromName: getEnv("FROM_NAME", "Landvex BOC"), } } func getEnv(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback } func splitComma(s string) []string { parts := strings.Split(s, ",") out := make([]string, 0, len(parts)) for _, p := range parts { if t := strings.TrimSpace(p); t != "" { out = append(out, t) } } return out }