"""
OCPP Driver module - handles different event storage backends
"""
import logging
from ..config import get_config
from .file_driver import FileDriver
from .console_driver import ConsoleDriver
from .null_driver import NullDriver

logger = logging.getLogger(__name__)


def get_driver():
    """Get the configured OCPP driver based on config DRIVER setting"""
    config = get_config()
    driver_type = config.driver.lower()
    
    if driver_type == "file":
        logger.info("Initializing file driver")
        return FileDriver()
    elif driver_type == "console":
        logger.info("Initializing console driver")
        return ConsoleDriver()
    elif driver_type == "null":
        logger.info("Initializing null driver")
        return NullDriver()
    else:
        logger.warning(f"Unknown driver type: {driver_type}, falling back to file driver")
        return FileDriver()


__all__ = ["get_driver", "FileDriver", "ConsoleDriver", "NullDriver"]
