import json
import os

class ThrottleConfig:
    def __init__(self, config_file='aiva/config/email_throttling.json'):
        self.config_file = config_file
        self.config = self._load_config()

    def _load_config(self):
        try:
            with open(self.config_file, 'r') as f:
                config = json.load(f)
            return config
        except FileNotFoundError:
            print(f"Warning: Configuration file not found: {self.config_file}")
            return {"default_rate": 60, "domains": {}}
        except json.JSONDecodeError:
            print(f"Error: Invalid JSON format in {self.config_file}")
            return {"default_rate": 60, "domains": {}}
        except Exception as e:
             print(f"Error loading config: {e}")
             return {"default_rate": 60, "domains": {}}

    def get_rate_limit(self, domain):
        return self.config['domains'].get(domain, self.config['default_rate'])

    def get_default_rate(self):
        return self.config['default_rate']


if __name__ == '__main__':
    # Example Usage
    config = ThrottleConfig()
    print(f"Rate limit for example.com: {config.get_rate_limit('example.com')}")
    print(f"Rate limit for unknown.com: {config.get_rate_limit('unknown.com')}")
    print(f"Default rate: {config.get_default_rate()}")
