package config import ( "os" "strconv" "github.com/joho/godotenv" ) type Config struct { AppPort string DBHost string DBPort string DBUser string DBPassword string DBName string RedisAddr string RedisPassword string JWTSecret string JWTExpiryHours int AdminUsername string AdminPassword string BaseURL string GameDir string } var C Config func Load() { _ = godotenv.Load() hours, _ := strconv.Atoi(getEnv("JWT_EXPIRY_HOURS", "24")) C = Config{ AppPort: getEnv("APP_PORT", "8080"), DBHost: getEnv("DB_HOST", "localhost"), DBPort: getEnv("DB_PORT", "3306"), DBUser: getEnv("DB_USER", "root"), DBPassword: getEnv("DB_PASSWORD", ""), DBName: getEnv("DB_NAME", "a301"), RedisAddr: getEnv("REDIS_ADDR", "localhost:6379"), RedisPassword: getEnv("REDIS_PASSWORD", ""), JWTSecret: getEnv("JWT_SECRET", "secret"), JWTExpiryHours: hours, AdminUsername: getEnv("ADMIN_USERNAME", "admin"), AdminPassword: getEnv("ADMIN_PASSWORD", "admin1234"), BaseURL: getEnv("BASE_URL", "http://localhost:8080"), GameDir: getEnv("GAME_DIR", "/data/game"), } } func getEnv(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback }