from __future__ import annotations

from dataclasses import (
    dataclass,
    field,
)

from argrelay_schema_config_server.runtime_data_server_plugin.PluginEntry import PluginEntry


@dataclass
class PluginConfig:
    """
    See also `PluginConfigSchema`.
    """

    server_plugin_instances: dict[str, PluginEntry] = field()
    """
    Key = `plugin_instance_id`
    """

    plugin_instance_id_activate_list: list[str] = field()
    """
    List of `plugin_instance_id`-s in order of activation generated by
    walking through a DAG described by `plugin_dependencies`.
    Each `plugin_instance_id` is a key into `server_plugin_instances`.
    """
