"""Data access layer for the web dashboard.

Thin wrapper around ietf_analyzer.db.Database that returns plain dicts
ready for JSON serialization or Jinja2 template rendering.

All public functions are re-exported here for backward compatibility:
    from webui.data import get_overview_stats
"""
from __future__ import annotations

# Shared utilities
from webui.data._shared import get_db, _cached, _extract_month  # noqa: F401

# Drafts
from webui.data.drafts import (  # noqa: F401
    OverviewStats,
    DraftListItem,
    DraftsPage,
    get_overview_stats,
    get_category_counts,
    get_category_summary,
    get_drafts_page,
    get_draft_detail,
    get_generated_drafts,
    read_generated_draft,
)

# Authors
from webui.data.authors import (  # noqa: F401
    AuthorInfo,
    AuthorNetworkNode,
    AuthorNetworkEdge,
    AuthorCluster,
    AuthorNetwork,
    get_top_authors,
    get_org_data,
    get_coauthor_network,
    get_cross_org_data,
    get_author_network_full,
    get_author_detail,
)

# Ratings
from webui.data.ratings import (  # noqa: F401
    get_rating_distributions,
    get_category_radar_data,
    get_score_histogram,
    get_false_positive_profile,
)

# Gaps
from webui.data.gaps import (  # noqa: F401
    get_all_gaps,
    get_gap_detail,
    get_drafts_for_gap,
)

# Analysis & Visualization
from webui.data.analysis import (  # noqa: F401
    TimelineData,
    SimilarityGraphStats,
    SimilarityGraph,
    CitationGraphStats,
    CitationGraph,
    MonitorCost,
    MonitorPipeline,
    MonitorStatus,
    get_ideas_by_type,
    get_timeline_data,
    get_similarity_graph,
    get_idea_clusters,
    get_monitor_status,
    get_citation_graph,
    get_landscape_tsne,
    get_comparison_data,
    get_architecture,
    get_idea_analysis,
    get_idea_detail,
    get_trends_data,
    get_complexity_data,
    get_source_comparison,
    get_citation_influence,
    get_bcp_analysis,
)

# Search
from webui.data.search import (  # noqa: F401
    SearchResults,
    global_search,
    get_ask_search,
    get_ask_synthesize,
)

# Proposals
from webui.data.proposals import (  # noqa: F401
    get_all_proposals,
    get_proposal_detail,
    get_proposals_for_gap,
)

# Blog Drafts
from webui.data.blog import (  # noqa: F401
    get_all_blog_drafts,
    get_blog_draft_detail,
)
