from nsj_rest_lib2.compiler.edl_model.column_meta_model import ColumnMetaModel
from nsj_rest_lib2.compiler.edl_model.index_model import IndexModel
from nsj_rest_lib2.compiler.edl_model.property_meta_model import PropertyMetaModel
from nsj_rest_lib2.compiler.edl_model.trait_property_meta_model import (
    TraitPropertyMetaModel,
)


class IndexCompilerStructure:
    def __init__(self, index_model: IndexModel, inherited: bool) -> None:
        self.index_model: IndexModel = index_model
        self.inherited: bool = inherited


class PropertiesCompilerStructure:
    def __init__(self) -> None:
        self.properties: dict[str, PropertyMetaModel] = {}
        self.main_properties: list[str] = []
        self.required: list[str] = []
        self.partition_data: list[str] = []
        self.search_properties: list[str] = []
        self.metric_label: list[str] = []
        self.entity_properties: dict[str, ColumnMetaModel] = {}
        self.trait_properties: dict[str, TraitPropertyMetaModel] = {}
