from rest_framework.views import APIView
from rest_framework.response import Response
from django.shortcuts import get_object_or_404
from api.property_api.agent.models.agent import Agent
from users.permission.sub_admin import IsCountryAdmin


class VerifyAgentView(APIView):
    def post(self, request, agent_id):
        agent = get_object_or_404(
            Agent.objects.select_related("agent_user"),
            id=agent_id
        )

        if not agent.agent_user:
            return Response(
                {"error": "Agent is not linked to any user"},
                status=400
            )

        if not agent.agent_user.country or not request.user.country:
            return Response(
                {"error": "Country not assigned"},
                status=400
            )

        if agent.agent_user.country != request.user.country:
            return Response({"error": "Not allowed"}, status=403)

        agent.verified = True
        agent.save(update_fields=["verified"])

        return Response({"message": "Agent verified"})
