from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from credit_scoring.models import CreditApplication
from invoice_discounting.models import Invoice

@login_required
def admin_dashboard(request):
    """Admin dashboard with metrics"""
    
    total_applications = CreditApplication.objects.count()
    pending_applications = CreditApplication.objects.filter(status__in=['SUBMITTED', 'AIP', 'ARA']).count()
    approved_applications = CreditApplication.objects.filter(status='FA').count()
    
    total_funded = Invoice.objects.filter(status='FUNDED').aggregate(models.Sum('discounting_amount'))['discounting_amount__sum'] or 0
    
    recent_applications = CreditApplication.objects.order_by('-created_at')[:10]
    recent_invoices = Invoice.objects.order_by('-created_at')[:10]
    
    context = {
        'total_applications': total_applications,
        'pending_applications': pending_applications,
        'approved_applications': approved_applications,
        'total_funded_amount': total_funded,
        'total_invoices': Invoice.objects.count(),
        'funded_invoices': Invoice.objects.filter(status='FUNDED').count(),
        'total_pos': 0,
        'funded_pos': 0,
        'recent_applications': recent_applications,
        'recent_invoices': recent_invoices,
    }
    
    return render(request, 'dashboard/admin_dashboard.html', context)

@login_required
def applicant_dashboard(request):
    """Applicant dashboard - simplified without Document dependency"""
    
    applications = CreditApplication.objects.filter(applicant=request.user)
    
    context = {
        'user': request.user,
        'total_applications': applications.count(),
        'pending_applications': applications.filter(status__in=['SUBMITTED', 'AIP', 'ARA']).count(),
        'approved_applications': applications.filter(status='FA').count(),
        'declined_applications': applications.filter(status='DECLINED').count(),
        'recent_applications': applications.order_by('-created_at')[:5],
        'total_invoices': Invoice.objects.filter(credit_application__applicant=request.user).count(),
        'total_documents': 0,  # Temporarily set to 0
        'has_active_application': applications.filter(status__in=['SUBMITTED', 'AIP', 'ARA', 'FA']).exists(),
    }
    
    return render(request, 'dashboard/applicant_dashboard.html', context)

# Import models at the end to avoid circular imports
from django.db import models