import json
import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parents[1]
SERVER_CONFIG_PATH = str(BASE_DIR / "cfg" / "server_config.json")
HARDWARE_CONFIG_PATH = str(BASE_DIR / "cfg" / "hw_config.json")


class Config:
    def __init__(self, server_config_path=SERVER_CONFIG_PATH, hw_config_path=HARDWARE_CONFIG_PATH):
        self.server_config_path = server_config_path
        self.hardware_config_path = hw_config_path
        self._load_config()

    def _load_config(self):
        """Загружает конфигурацию из JSON-файлов"""
        if not os.path.exists(self.server_config_path):
            raise FileNotFoundError(f"Файл конфигурации сервера {self.server_config_path} не найден!")
        if not os.path.exists(self.hardware_config_path):
            raise FileNotFoundError(f"Файл конфигурации томографа {self.hardware_config_path} не найден!")

        with open(self.server_config_path, "r") as f:
            self.config = json.load(f)
        with open(self.hardware_config_path, "r") as f:
            self.hw_config = json.load(f)

    def get(self, key, default=None):
        """Получить значение из server-конфига с безопасным доступом"""
        return self.config.get(key, default)

    def get_hw(self, key, default=None):
        """Получить значение из hw-конфига с безопасным доступом"""
        return self.hw_config.get(key, default)


config = Config()
