from django.db.models import Q
from apps.core.views import BaseViewSet
from .models import BalanceTransfer
from .serializers import BalanceTransferSerializer

class TransferViewSet(BaseViewSet):
    serializer_class = BalanceTransferSerializer
    queryset = BalanceTransfer.objects.all()

    permission_app_name = 'tranfer'
    permission_model_name = 'tranfer'
    view_permissions = ["list", "create", "update","toggle_status" , "partial_update", "retrieve", "destroy"]

    def get_queryset(self):
        user_profile = self.request.user.profile
        return BalanceTransfer.objects.select_related('sender__user', 'receiver__user').filter(
            Q(sender=user_profile) | Q(receiver=user_profile)
        ).order_by('-timestamp')

    def perform_create(self, serializer):
        serializer.save(sender=self.request.user.profile)