def register_module(module_name, base_module):
    """
    Register the classes for the schema implementation files

    module_name: The module name to load
    base_module: The base module to register the classes in (entity, indicator, observable)
    """
    module = importlib.import_module(module_name)
    module_base_name = base_module.__name__.split(".")[-1]
    schema_base_class = getattr(base_module, module_base_name.capitalize())
    schema_type_mapping = getattr(base_module, "TYPE_MAPPING")
    schema_types = getattr(base_module, f"{module_base_name.capitalize()}Types", None)
    schema_enum = getattr(base_module, f"{module_base_name.capitalize()}Type")
    for _, obj in inspect.getmembers(module, inspect.isclass):
        if issubclass(obj, schema_base_class) and "type" in obj.model_fields:
            obs_type = obj.model_fields["type"].default
            logger.info(f"Registering class {obj.__name__} defining type <{obs_type}>")
            aenum.extend_enum(schema_enum, obs_type, obs_type)
            schema_type_mapping[obs_type] = obj
            setattr(base_module, obj.__name__, obj)
            if not schema_types:
                schema_types = obj
            else:
                schema_types |= obj
            setattr(base_module, f"{module_base_name.capitalize()}Types", schema_types)

    Register the classes for the schema implementation files

    module_name: The module name to load
    base_module: The base module to register the classes in (entity, indicator, observable)
    
core/schemas/__init__.py