from rest_framework import permissions, viewsets

from .models import Debt
from .serializers import DebtSerializer
from .services import sync_company_debts


class DebtViewSet(viewsets.ReadOnlyModelViewSet):
    serializer_class = DebtSerializer
    permission_classes = [permissions.IsAuthenticated]
    filterset_fields = ['customer', 'aging_bucket', 'is_resolved']

    def get_queryset(self):
        if self.request.user.company_id:
            sync_company_debts(self.request.user.company)
        return Debt.objects.filter(company=self.request.user.company).select_related('customer', 'invoice')
