"""
Transaction Reports Services - Business logic for transaction report operations
"""

from typing import Optional, Dict, Any
from sqlalchemy.orm import Session

# Import transaction reports functionality
from src.apps.transactions.services import get_transaction_reports as get_transaction_reports_from_transactions


def get_transaction_reports(
    db: Session,
    page: int = 1,
    per_page: int = 10,
    fields: Optional[list[str]] = None,
    search: Optional[str] = None,
    merchant_id: Optional[int] = None,
) -> Dict[str, Any]:
    """
    Get transaction reports with pagination and field selection.
    
    This is a wrapper around the transactions service that can be extended
    with report-specific logic, formatting, or aggregations in the future.
    
    Args:
        db: Database session
        page: Page number (1-indexed)
        per_page: Items per page (max 100)
        fields: List of relationship fields to include
        search: Search term
        merchant_id: Filter by merchant ID
        
    Returns:
        Dict with paginated transaction report data
    """
    return get_transaction_reports_from_transactions(
        db=db,
        page=page,
        per_page=per_page,
        fields=fields,
        search=search,
        merchant_id=merchant_id
    )
