'''
Created on 02.08.2024

@author: sparky2021
'''
from ausweis.models import ConfigData

the_instance = None

class Config:
    '''
    Singleton Klasse für Konfiguration
    '''

    def __init__(self, verein):
        self.verein = verein
        
    def getConfig(self, key):
        data = ConfigData.objects.filter(verein=self.verein, key=key)
        if data:
            return data[0].value
        return None
    
    def requireConfig(self, key):
        data = self.getConfig(key)
        if not data:
            raise RuntimeError(f"Kein Eintag für: {self.verein}/{key}")
        return data
        

def getInstance(verein=None):
    global the_instance
    if not the_instance:
        if not verein:
            raise RuntimeError("Bei der ersten Instanzierung muss der Verein mitgegeben werden.")
        the_instance = Config(verein)
    return the_instance
