cab-backend/internal/config/config.go
2026-03-30 21:00:35 +03:00

53 lines
1.5 KiB
Go

package config
import (
"os"
"github.com/joho/godotenv"
)
type Config struct {
DBHost string
DBPort string
DBUser string
DBPassword string
DBName string
DefaultAdminEmail string
DefaultAdminUsername string
DefaultAdminPassword string
JWTSecret string
ServerPort string
GRPCPort string
GRPCHMACSecret string
BaseURL string
UploadDir string
}
func Load() *Config {
_ = godotenv.Load()
return &Config{
DBHost: getEnv("DB_HOST", "127.0.0.1"),
DBPort: getEnv("DB_PORT", "5432"),
DBUser: getEnv("DB_USER", "game_admin_user"),
DBPassword: getEnv("DB_PASSWORD", "game_admin_password"),
DBName: getEnv("DB_NAME", "game_admin"),
DefaultAdminEmail: getEnv("DEFAULT_ADMIN_EMAIL", "admin@admin.com"),
DefaultAdminUsername: getEnv("DEFAULT_ADMIN_USERNAME", "admin"),
DefaultAdminPassword: getEnv("DEFAULT_ADMIN_PASSWORD", "admin123"),
JWTSecret: getEnv("JWT_SECRET", "super-secret-key-change-me"),
ServerPort: getEnv("SERVER_PORT", "8080"),
GRPCPort: getEnv("GRPC_PORT", "50051"),
GRPCHMACSecret: getEnv("GRPC_HMAC_SECRET", "super_secret_key"),
BaseURL: getEnv("BASE_URL", "http://localhost:8080"),
UploadDir: getEnv("UPLOAD_DIR", "uploads"),
}
}
func getEnv(key, fallback string) string {
if val := os.Getenv(key); val != "" {
return val
}
return fallback
}