{
	"info": {
		"_postman_id": "ai-learning-platform-api",
		"name": "AI Learning Platform API",
		"description": "Complete API collection for the AI Learning Platform chatbot platform with ElevenLabs integration",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "ai-learning-platform-api"
	},
	"item": [
		{
			"name": "Health Check",
			"item": [
				{
					"name": "Health Check",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/health",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"health"
							]
						},
						"description": "Check the health status of the API server"
					},
					"response": []
				}
			]
		},
		{
			"name": "Authentication",
			"item": [
				{
					"name": "Register User",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"John Doe\",\n  \"email\": \"john@example.com\",\n  \"password\": \"password123\",\n  \"role\": \"STUDENT\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/auth/register",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"auth",
								"register"
							]
						},
						"description": "Register a new user account"
					},
					"response": []
				},
				{
					"name": "Login User",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"email\": \"admin@example.com\",\n  \"password\": \"K9#mX7$vL2@n\"\n}"
                        },
						"url": {
							"raw": "{{baseUrl}}/api/auth/login",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"auth",
								"login"
							]
						},
						"description": "Login with admin credentials"
					},
					"event": [
						{
							"listen": "test",
							"script": {
								"type": "text/javascript",
								"exec": [
									"if (pm.response.code === 200) {",
									"    const response = pm.response.json();",
									"    if (response.accessToken) {",
									"        pm.collectionVariables.set('accessToken', response.accessToken);",
									"        console.log('Access token set successfully');",
									"    }",
									"    if (response.refreshToken) {",
									"        pm.collectionVariables.set('refreshToken', response.refreshToken);",
									"        console.log('Refresh token set successfully');",
									"    }",
									"}"
								]
							}
						}
					],
					"response": []
				},
				{
					"name": "Refresh Token",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"refreshToken\": \"{{refreshToken}}\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/auth/refresh",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"auth",
								"refresh"
							]
						},
						"description": "Refresh access token using refresh token"
					},
					"response": []
				},
				{
					"name": "Logout",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/auth/logout",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"auth",
								"logout"
							]
						},
						"description": "Logout user and invalidate tokens"
					},
					"response": []
				},
				{
					"name": "Change Password",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"currentPassword\": \"password123\",\n  \"newPassword\": \"newpassword123\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/auth/change-password",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"auth",
								"change-password"
							]
						},
						"description": "Change user password"
					},
					"response": []
				},
				{
					"name": "Get Profile",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/auth/profile",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"auth",
								"profile"
							]
						},
						"description": "Get current user profile"
					},
					"response": []
				},
				{
					"name": "Update Profile",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"Updated Name\",\n  \"email\": \"updated@example.com\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/auth/profile",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"auth",
								"profile"
							]
						},
						"description": "Update current user profile"
					},
					"response": []
				}
			]
		},
		{
			"name": "Users",
			"item": [
				{
					"name": "Get All Users (Admin/Teacher)",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/users?page=1&limit=10&role=STUDENT",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"users"
							],
							"query": [
								{
									"key": "page",
									"value": "1"
								},
								{
									"key": "limit",
									"value": "10"
								},
								{
									"key": "role",
									"value": "STUDENT"
								}
							]
						},
						"description": "Get all users with pagination and filtering (Admin/Teacher only)"
					},
					"response": []
				},
				{
					"name": "Create User (Admin)",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"New User\",\n  \"email\": \"newuser@example.com\",\n  \"password\": \"password123\",\n  \"role\": \"STUDENT\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/users",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"users"
							]
						},
						"description": "Create a new user (Admin only)"
					},
					"response": []
				},
				{
					"name": "Get User by ID (Admin/Teacher)",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/users/{{userId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"users",
								"{{userId}}"
							]
						},
						"description": "Get user by ID with bot accesses and recent conversations (Admin/Teacher only)"
					},
					"response": []
				},
				{
					"name": "Update User (Admin)",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"Updated User Name\",\n  \"email\": \"updated@example.com\",\n  \"role\": \"TEACHER\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/users/{{userId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"users",
								"{{userId}}"
							]
						},
						"description": "Update user (name, email, role only - Admin only)"
					},
					"response": []
				},
				{
					"name": "Delete User (Admin)",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/users/{{userId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"users",
								"{{userId}}"
							]
						},
						"description": "Delete user (Admin only)"
					},
					"response": []
				},
				{
					"name": "Assign Bot to Student (Admin/Teacher)",
					"request": {
						"method": "PATCH",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"botId\": \"{{botId}}\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/users/{{userId}}/assign-bot",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"users",
								"{{userId}}",
								"assign-bot"
							]
						},
						"description": "Assign bot to student (Admin/Teacher only) - Fixed: Only requires botId in request body"
					},
					"response": []
				}
			]
		},
		{
			"name": "Bots",
			"item": [
				{
					"name": "Get All Bots",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/api/bots?page=1&limit=10&level=A1",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bots"
							],
							"query": [
								{
									"key": "page",
									"value": "1"
								},
								{
									"key": "limit",
									"value": "10"
								},
								{
									"key": "level",
									"value": "A1"
								}
							]
						},
						"description": "Get all bots with pagination (public)"
					},
					"response": []
				},
				{
					"name": "Get Accessible Bots",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/bots/accessible",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bots",
								"accessible"
							]
						},
						"description": "Get bots accessible to the current user"
					},
					"response": []
				},
				{
					"name": "Create Bot (Admin/Teacher)",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"Travel Assistant\",\n  \"topic\": \"Travel and Tourism\",\n  \"level\": \"A2\",\n  \"imageUrl\": \"https://example.com/travel-bot.jpg\",\n  \"agentId\": \"elevenlabs-agent-id\",\n  \"description\": \"Practice English while planning your next trip\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/bots",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bots"
							]
						},
						"description": "Create a new bot (Admin/Teacher only)"
					},
					"response": []
				},
				{
					"name": "Get Bot by Name",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/bots/name/Travel%20Assistant",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bots",
								"name",
								"Travel Assistant"
							]
						},
						"description": "Get bot by name with access validation"
					},
					"response": []
				},
				{
					"name": "Get Bot by ID",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{baseUrl}}/api/bots/{{botId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bots",
								"{{botId}}"
							]
						},
						"description": "Get bot by ID with students and conversations (public)"
					},
					"response": []
				},
				{
					"name": "Update Bot (Admin/Teacher)",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"Updated Travel Assistant\",\n  \"topic\": \"Advanced Travel\",\n  \"level\": \"B1\",\n  \"imageUrl\": \"https://example.com/updated-travel-bot.jpg\",\n  \"agentId\": \"updated-elevenlabs-agent-id\",\n  \"description\": \"Updated description for travel assistant\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/bots/{{botId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bots",
								"{{botId}}"
							]
						},
						"description": "Update bot (Admin/Teacher only)"
					},
					"response": []
				},
				{
					"name": "Delete Bot (Admin/Teacher)",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/bots/{{botId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bots",
								"{{botId}}"
							]
						},
						"description": "Delete bot (Admin/Teacher only)"
					},
					"response": []
				}
			]
		},
		{
			"name": "Conversations",
			"item": [
				{
					"name": "Get User Conversations",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/conversations",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"conversations"
							]
						},
                        "description": "Get user's conversations"
					},
					"response": []
				},
				{
					"name": "Create Conversation",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"botId\": \"{{botId}}\",\n  \"conversationMode\": \"TEXT\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/conversations",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"conversations"
							]
						},
                        "description": "Create a new conversation (student only)"
					},
					"response": []
				},
				{
					"name": "Get Conversation by ID",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/conversations/{{conversationId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"conversations",
								"{{conversationId}}"
							]
						},
                        "description": "Get conversation by ID with messages"
					},
					"response": []
				},
				{
					"name": "Update Conversation",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"transcript\": \"Updated conversation transcript\",\n  \"endedAt\": \"2024-01-01T12:00:00Z\",\n  \"durationSeconds\": 300\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/conversations/{{conversationId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"conversations",
								"{{conversationId}}"
							]
						},
                        "description": "Update conversation fields (e.g., transcript, endedAt, durationSeconds)"
					},
					"response": []
				},
				{
					"name": "Delete Conversation",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/conversations/{{conversationId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"conversations",
								"{{conversationId}}"
							]
						},
                        "description": "Delete conversation"
					},
					"response": []
				}
			]
		},
		{
			"name": "Feedback",
			"item": [
				{
					"name": "Get All Feedback (Teacher/Admin)",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/feedback",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"feedback"
							]
						},
                        "description": "Get feedback (teacher/admin only)"
					},
					"response": []
				},
				{
					"name": "Create Feedback (Teacher/Admin)",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"conversationId\": \"{{conversationId}}\",\n  \"text\": \"Great conversation! Student showed good progress.\",\n  \"rating\": 4\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/feedback",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"feedback"
							]
						},
                        "description": "Create feedback (teacher/admin only)"
					},
					"response": []
				},
				{
					"name": "Get Feedback by ID (Teacher/Admin)",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/feedback/{{feedbackId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"feedback",
								"{{feedbackId}}"
							]
						},
                        "description": "Get feedback by ID (teacher/admin only)"
					},
					"response": []
				},
				{
					"name": "Update Feedback (Teacher/Admin)",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"text\": \"Updated feedback text\",\n  \"rating\": 5\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/feedback/{{feedbackId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"feedback",
								"{{feedbackId}}"
							]
						},
                        "description": "Update feedback (teacher/admin only)"
					},
					"response": []
				},
				{
					"name": "Delete Feedback (Teacher/Admin)",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/feedback/{{feedbackId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"feedback",
								"{{feedbackId}}"
							]
						},
                        "description": "Delete feedback (teacher/admin only)"
					},
					"response": []
				}
			]
		},
		{
			"name": "ElevenLabs",
			"item": [
				{
					"name": "Get ElevenLabs Config (Admin)",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/elevenlabs/config",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"elevenlabs",
								"config"
							]
						},
						"description": "Get ElevenLabs configuration (Admin only)"
					},
					"response": []
				},
				{
					"name": "Update ElevenLabs API Key (Admin)",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"apiKey\": \"your-elevenlabs-api-key\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/elevenlabs/config",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"elevenlabs",
								"config"
							]
						},
						"description": "Update ElevenLabs API key (Admin only)"
					},
					"response": []
				},
				{
					"name": "Test ElevenLabs API Key (Admin)",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/elevenlabs/config/test",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"elevenlabs",
								"config",
								"test"
							]
						},
						"description": "Test ElevenLabs API key (Admin only)"
					},
					"response": []
				},
				{
					"name": "Validate Agent ID (Admin/Teacher)",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/elevenlabs/agent/{{agentId}}/validate",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"elevenlabs",
								"agent",
								"{{agentId}}",
								"validate"
							]
						},
						"description": "Validate agent ID (Admin/Teacher only)"
					},
					"response": []
				},
				{
					"name": "Get Signed URL",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/elevenlabs/agent/{{agentId}}/signed-url",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"elevenlabs",
								"agent",
								"{{agentId}}",
								"signed-url"
							]
						},
						"description": "Get signed URL for WebSocket connection"
					},
					"response": []
				},
				{
					"name": "Get Conversation Token",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/elevenlabs/agent/{{agentId}}/conversation-token",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"elevenlabs",
								"agent",
								"{{agentId}}",
								"conversation-token"
							]
						},
						"description": "Get conversation token for WebSocket connection"
					},
					"response": []
				},
				{
					"name": "Get Signed URL by Bot Name",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/elevenlabs/bot/Travel%20Assistant/signed-url",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"elevenlabs",
								"bot",
								"Travel Assistant",
								"signed-url"
							]
						},
						"description": "Get signed URL by bot name (more user-friendly)"
					},
					"response": []
				},
				{
					"name": "Get Conversation Token by Bot Name",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/elevenlabs/bot/Travel%20Assistant/conversation-token",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"elevenlabs",
								"bot",
								"Travel Assistant",
								"conversation-token"
							]
						},
						"description": "Get conversation token by bot name (more user-friendly)"
					},
					"response": []
				}
			]
		},
		{
			"name": "Bot Assignments",
			"item": [
				{
					"name": "Get All Bot Assignments (Admin/Teacher)",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/bot-assignments?page=1&limit=10&studentId={{userId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bot-assignments"
							],
							"query": [
								{
									"key": "page",
									"value": "1"
								},
								{
									"key": "limit",
									"value": "10"
								},
								{
									"key": "studentId",
									"value": "{{userId}}"
								}
							]
						},
						"description": "Get all bot assignments with pagination and filtering (Admin/Teacher only)"
					},
					"response": []
				},
				{
					"name": "Create Bot Assignment (Admin/Teacher)",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"studentId\": \"{{userId}}\",\n  \"botId\": \"{{botId}}\"\n}"
						},
						"url": {
							"raw": "{{baseUrl}}/api/bot-assignments",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bot-assignments"
							]
						},
						"description": "Create a new bot assignment (Admin/Teacher only)"
					},
					"response": []
				},
				{
					"name": "Remove Bot Assignment (Admin/Teacher)",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{accessToken}}"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/api/bot-assignments/{{assignmentId}}",
							"host": [
								"{{baseUrl}}"
							],
							"path": [
								"api",
								"bot-assignments",
								"{{assignmentId}}"
							]
						},
						"description": "Remove a bot assignment (Admin/Teacher only)"
					},
					"response": []
				}
			]
		}
	],
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		}
	],
	"variable": [
		{
			"key": "baseUrl",
			"value": "http://localhost:3000",
			"type": "string"
		},
        {
          "key": "adminEmail",
          "value": "admin@example.com",
          "type": "string"
        },
        {
          "key": "adminPassword",
          "value": "K9#mX7$vL2@n",
          "type": "string"
        },
        {
          "key": "studentEmail",
          "value": "student@example.com",
          "type": "string"
        },
        {
          "key": "studentPassword",
          "value": "M6@fN9#kY2&z",
          "type": "string"
        },
		{
			"key": "accessToken",
			"value": "",
			"type": "string"
		},
		{
			"key": "refreshToken",
			"value": "",
			"type": "string"
		},
		{
			"key": "userId",
			"value": "",
			"type": "string"
		},
		{
			"key": "botId",
			"value": "",
			"type": "string"
		},
		{
			"key": "conversationId",
			"value": "",
			"type": "string"
		},
		{
			"key": "feedbackId",
			"value": "",
			"type": "string"
		},
		{
			"key": "assignmentId",
			"value": "",
			"type": "string"
		},
		{
			"key": "agentId",
			"value": "",
			"type": "string"
		}
	]
} 