from rest_framework_simplejwt.tokens import RefreshToken ALLOWED_ROLE_TYPES = ('student', 'doctor', 'teacher') def get_tokens_for_user(user): refresh = RefreshToken.for_user(user) return {'access': str(refresh.access_token), 'refresh': str(refresh)} def build_user_response(user): return { 'id': user.id, 'username': user.username, 'phone': user.phone, 'real_name': user.real_name, 'role_type': user.role_type, 'institution': user.institution.name if user.institution_id else None, 'department': user.department.name if user.department_id else None, } def get_client_ip(request): xff = request.META.get('HTTP_X_FORWARDED_FOR') if xff: return xff.split(',')[0].strip() return request.META.get('REMOTE_ADDR') def get_user_agent(request): return request.META.get('HTTP_USER_AGENT', '')