package config

import (
	"log"
	"os"
)

// Config 保存所有服务配置，全部通过环境变量注入（12-Factor App）。
type Config struct {
	WSHost        string
	WSPort        string
	RTCBackendURL string
}

// Load 从环境变量读取配置，必填项缺失时直接 Fatal。
func Load() *Config {
	backendURL := getEnv("HW_RTC_BACKEND_URL", "")
	if backendURL == "" {
		log.Fatal("config: HW_RTC_BACKEND_URL is required")
	}
	return &Config{
		WSHost:        getEnv("HW_WS_HOST", "0.0.0.0"),
		WSPort:        getEnv("HW_WS_PORT", "8888"),
		RTCBackendURL: backendURL,
	}
}

func getEnv(key, fallback string) string {
	if v := os.Getenv(key); v != "" {
		return v
	}
	return fallback
}
