import yaml
import random

class ConfigLoader:
    def __init__(self, config_file='config/aiva.yaml'):
        self.config_file = config_file
        self.config = self.load_config()

    def load_config(self):
        try:
            with open(self.config_file, 'r') as f:
                config = yaml.safe_load(f)
            return config
        except FileNotFoundError:
            print(f"Error: Configuration file not found: {self.config_file}")
            return {}

    def get_downscale_check_interval(self):
        interval = self.config.get('downscale_check_interval', 60)
        jitter = self.config.get('downscale_check_interval_jitter', 0.0)

        if not 0.0 <= jitter <= 1.0:
            print("Warning: downscale_check_interval_jitter is outside the valid range [0.0, 1.0]. Using 0.0.")
            jitter = 0.0

        jitter_amount = interval * jitter * random.uniform(-1, 1)
        return interval + jitter_amount

    def get_config(self):
        return self.config

if __name__ == '__main__':
    config_loader = ConfigLoader()
    config = config_loader.get_config()
    print("Loaded Configuration:", config)
    interval_with_jitter = config_loader.get_downscale_check_interval()
    print("Downscale Check Interval with Jitter:", interval_with_jitter)
