import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'branch_system.settings')
django.setup()

from users.models import CustomUser
from loans.reports import generate_comprehensive_loan_analytics

def test_report_generation():
    print("Testing report generation...")
    
    # Get a test borrower
    borrower = CustomUser.objects.filter(role='borrower').first()
    if not borrower:
        print("No test borrower found!")
        return
    
    print(f"Using test borrower: {borrower.get_full_name()} (ID: {borrower.id})")
    
    try:
        # Generate report
        result = generate_comprehensive_loan_analytics(
            borrower=borrower,
            include_charts=True,
            export_format='both'
        )
        
        if not result:
            print("Error: Report generation returned None")
            return
            
        print("\nReport generation successful!")
        print("Available data:")
        for key in result.keys():
            print(f"- {key}")
            
        if 'statistics' in result:
            print("\nStatistics available:")
            for key in result['statistics'].keys():
                print(f"- {key}")
                
        if 'charts' in result:
            print("\nCharts available:")
            for key in result.get('charts', {}).keys():
                print(f"- {key}")
                
        if 'insights' in result:
            print("\nInsights available:")
            print(f"Total insights: {len(result.get('insights', []))}")
            
        if 'pdf_report' in result:
            print("\nPDF report is available")
            
    except Exception as e:
        print(f"\nError during report generation: {str(e)}")
        import traceback
        traceback.print_exc()

if __name__ == '__main__':
    test_report_generation()
