"""
Implementations of various query paradigms.
"""

from .sql_paradigm import SQLQueryParadigm
from .fts_paradigm import FullTextSearchParadigm
from .graphql_paradigm import GraphQLQueryParadigm
from .jsonpath_paradigm import JSONPathQueryParadigm
from .natural_language_paradigm import NaturalLanguageQueryParadigm
from .qbe_paradigm import QueryByExampleParadigm
from .batch_paradigm import BatchManipulationParadigm
from .visual_builder_paradigm import VisualQueryBuilderParadigm
from .rest_api_paradigm import RESTAPIParadigm
from .nosql_paradigm import NoSQLQueryParadigm
from .unix_pipeline_paradigm import UNIXPipelineParadigm
from .xpath_paradigm import XPathParadigm
from .rag_paradigm import RAGParadigm
from .transform_paradigm import DataTransformationParadigm

# Auto-register all paradigms
from ..registry import registry

_paradigms = [
    # Implemented paradigms
    SQLQueryParadigm(),
    FullTextSearchParadigm(),
    GraphQLQueryParadigm(),
    JSONPathQueryParadigm(),
    NaturalLanguageQueryParadigm(),

    # Documentation-only paradigms (not yet implemented)
    QueryByExampleParadigm(),
    BatchManipulationParadigm(),
    VisualQueryBuilderParadigm(),
    RESTAPIParadigm(),
    NoSQLQueryParadigm(),
    UNIXPipelineParadigm(),
    XPathParadigm(),
    RAGParadigm(),
    DataTransformationParadigm()
]

for paradigm in _paradigms:
    registry.register(paradigm)

__all__ = [
    'SQLQueryParadigm',
    'FullTextSearchParadigm',
    'GraphQLQueryParadigm',
    'JSONPathQueryParadigm',
    'NaturalLanguageQueryParadigm',
    'QueryByExampleParadigm',
    'BatchManipulationParadigm',
    'VisualQueryBuilderParadigm',
    'RESTAPIParadigm',
    'NoSQLQueryParadigm',
    'UNIXPipelineParadigm',
    'XPathParadigm',
    'RAGParadigm',
    'DataTransformationParadigm'
]