from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status

from apps.accounts.services import auth_service
from apps.platform.accounts.throttles import LoginRateThrottle


class MobileLoginView(APIView):
    throttle_classes = [LoginRateThrottle]
    def post(self, request):
        data = request.data
        # Mobile may request a lightweight payload
        result = auth_service.login_user(data)
        if not result.get('ok'):
            return Response({'detail': result.get('error', 'Login failed')}, status=status.HTTP_400_BAD_REQUEST)
        # return only token and user id for mobile
        data = result.get('data', {})
        minimal = {'token': data.get('token'), 'user_id': data.get('user', {}).get('id')}
        return Response(minimal, status=status.HTTP_200_OK)
