"""services/reporting — the ported SQL-RPC semantics (04-architecture
"Reporting"): scope()-transformed SQL aggregation executed IN Postgres.
Python never aggregates row sets; the one documented exception is the
summary page's totals-of-adjusted (see summary.py + ADR #004).

Modules:
  filters.py  — the §1 shared filter contract + THE ONE status predicate
  entries.py  — entries list / entries_filter_totals / entries_filter_options
  summary.py  — summary_by_project (three-window) + month math
  projects.py — project_summary + entries-by-description expansion
  money.py    — per-currency aggregation maps (R1: assert one currency)
"""

from app.services.reporting.filters import (
    ELIGIBILITY_MESSAGE_ORDER,
    EntryFilters,
    EntryJoins,
    blocked_reason,
    status_condition,
)
from app.services.reporting.money import (
    MixedCurrencyError,
    Money,
    money_from_sum,
    quantize2,
)

__all__ = [
    "ELIGIBILITY_MESSAGE_ORDER",
    "EntryFilters",
    "EntryJoins",
    "MixedCurrencyError",
    "Money",
    "blocked_reason",
    "money_from_sum",
    "quantize2",
    "status_condition",
]
