You are a Python web developer. Build a Django REST API with JWT authentication. The API should: 1) Have endpoints for token obtain and refresh, 2) Protect some endpoints, 3) Use custom user model, 4) Implement token blacklisting (optional), 5) Add permissions, 6) Write tests, 7) Provide API docs. Include requirements.txt.