from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import permissions, status
from django.shortcuts import get_object_or_404
from apps.calls.models import Call, CallActivity
from apps.core.utils.timezone_util import get_current_company_time


class CallReadViewSet(APIView):
    permission_classes = [permissions.IsAuthenticated]

    def post(self, request, pk):
        call = get_object_or_404(Call, pk=pk)
        user = request.user
        current_time_company = get_current_company_time(user)
        CallActivity.objects.create(
            call=call,
            user=request.user,
            action='READ',
            performed_at=current_time_company,
        )

        return Response({"detail": "Marked as read"}, status=status.HTTP_200_OK)


class CallPlayViewSet(APIView):
    permission_classes = [permissions.IsAuthenticated]

    def post(self, request, pk):
        call = get_object_or_404(Call, pk=pk)
        duration = request.data.get('duration_played')
        user = request.user
        current_time_company = get_current_company_time(user)

        CallActivity.objects.create(
            call=call,
            user=request.user,
            action='PLAY',
            duration_played=duration,
            performed_at=current_time_company,
        )

        return Response({"detail": "Marked as played"}, status=status.HTTP_200_OK)
