"""
数据库模块

提供统一的数据库访问接口，分离了基础组件实现（base）和数据模型定义（models）

基础组件：数据库连接、DAO、向量数据库实现等
数据模型：纯数据结构定义，不含业务逻辑
"""

from .base import (
    # SQL基础组件
    AsyncMySQLPool, AsyncBaseDAO,
    # 向量数据库基础组件
    BaseVectorDB, MilvusVectorManager, PGVectorDB
)
from .models import (
    # SQL模型
    UserModel, TestTableModel, BasisOfPreparationModel, PGUserModel,
    # 向量数据库模型
    VectorEmbedding, VectorDocument, VectorSearchResult,
    # 知识图谱模型
    NodeType, RelationType, GraphNode, GraphEdge, GraphEntity, GraphRelation,
    KnowledgeGraph, Neo4jNode, Neo4jRelationship, Neo4jGraph
)
from .repositories import BasisOfPreparationDAO

__all__ = [
    # SQL基础组件
    "AsyncMySQLPool",
    "AsyncBaseDAO",

    # 向量数据库基础组件
    "BaseVectorDB",
    "MilvusVectorManager",
    "PGVectorDB",

    # SQL模型
    "UserModel",
    "TestTableModel",
    "BasisOfPreparationModel",
    "PGUserModel",

    # 向量数据库模型
    "VectorEmbedding",
    "VectorDocument",
    "VectorSearchResult",

    # 知识图谱模型
    "NodeType",
    "RelationType",
    "GraphNode",
    "GraphEdge",
    "GraphEntity",
    "GraphRelation",
    "KnowledgeGraph",
    "Neo4jNode",
    "Neo4jRelationship",
    "Neo4jGraph",

    # 数据仓库
    "BasisOfPreparationDAO"
]