{
  "info": {
    "_postman_id": "user-streams-collection-001",
    "name": "BuddyMentor - User Streams APIs",
    "description": "Collection for User Streams APIs - Get all streams and retrieve specific stream details",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Streams",
      "item": [
        {
          "name": "Get All Streams",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/streams/getAll?limit=10&offset=0&search=&sortBy=displayOrder&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "streams",
                "getAll"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10",
                  "description": "Number of records to return (default: 10)"
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Number of records to skip (default: 0)"
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Search term to filter streams by name (optional)"
                },
                {
                  "key": "sortBy",
                  "value": "displayOrder",
                  "description": "Field to sort by: streamName, displayOrder, createdAt (default: displayOrder)"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC",
                  "description": "Sort order: ASC or DESC (default: ASC)"
                }
              ]
            },
            "description": "Get all active streams with pagination and filtering\n\nQuery Parameters:\n- limit: Number of records per page (default: 10)\n- offset: Number of records to skip for pagination (default: 0)\n- search: Filter streams by name (optional)\n- sortBy: Field to sort by - streamName | displayOrder | createdAt (default: displayOrder)\n- sortOrder: Sort direction - ASC | DESC (default: ASC)\n\nAccess: Public (works with or without authentication)"
          },
          "response": []
        },
        {
          "name": "Get All Streams - With Search",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/streams/getAll?limit=10&offset=0&search=Science&sortBy=streamName&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "streams",
                "getAll"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "search",
                  "value": "Science",
                  "description": "Search term to filter streams"
                },
                {
                  "key": "sortBy",
                  "value": "streamName"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC"
                }
              ]
            },
            "description": "Get streams with search filter\n\nExample: Search for streams containing 'Science' in the name"
          },
          "response": []
        },
        {
          "name": "Get All Streams - Sorted by Date",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/streams/getAll?limit=10&offset=0&sortBy=createdAt&sortOrder=DESC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "streams",
                "getAll"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "sortBy",
                  "value": "createdAt"
                },
                {
                  "key": "sortOrder",
                  "value": "DESC",
                  "description": "Get newest streams first"
                }
              ]
            },
            "description": "Get streams sorted by creation date (newest first)"
          },
          "response": []
        },
        {
          "name": "Get Stream by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/streams/getby/stream-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "streams",
                "getby",
                "stream-001"
              ]
            },
            "description": "Get a specific stream by its ID\n\nPath Parameters:\n- streamId: Unique stream identifier (required)\n\nReturns:\n- Stream object with all details:\n  - streamId, streamCode, streamName\n  - description, imageAssets, displayOrder\n  - isActive, createdAt, updatedAt\n\nAccess: Public (works with or without authentication)"
          },
          "response": []
        }
      ],
      "description": "User Streams endpoints for retrieving stream information"
    },
    {
      "name": "Courses",
      "item": [
        {
          "name": "Get All Courses",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/courses/getAll?limit=10&offset=0&search=&streamId=&sortBy=displayOrder&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "courses",
                "getAll"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10",
                  "description": "Number of records to return (default: 10)"
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Number of records to skip (default: 0)"
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Search term to filter courses by name (optional)"
                },
                {
                  "key": "streamId",
                  "value": "",
                  "description": "Filter by specific stream ID (optional)"
                },
                {
                  "key": "sortBy",
                  "value": "displayOrder",
                  "description": "Field to sort by: courseName, displayOrder, createdAt (default: displayOrder)"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC",
                  "description": "Sort order: ASC or DESC (default: ASC)"
                }
              ]
            },
            "description": "Get all active courses with pagination and filtering\n\nQuery Parameters:\n- limit: Number of records per page (default: 10)\n- offset: Number of records to skip for pagination (default: 0)\n- search: Filter courses by name (optional)\n- streamId: Filter by specific stream (optional)\n- sortBy: Field to sort by - courseName | displayOrder | createdAt (default: displayOrder)\n- sortOrder: Sort direction - ASC | DESC (default: ASC)\n\nAccess: Public (works with or without authentication)"
          },
          "response": []
        },
        {
          "name": "Get Courses by Stream ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/courses/stream/stream-001?limit=10&offset=0&search=&sortBy=displayOrder&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "courses",
                "stream",
                "stream-001"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "search",
                  "value": ""
                },
                {
                  "key": "sortBy",
                  "value": "displayOrder"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC"
                }
              ]
            },
            "description": "Get courses for a specific stream ID\n\nPath Parameters:\n- streamId: Unique stream identifier (required)\n\nQuery Parameters:\n- limit: Number of records per page (default: 10)\n- offset: Pagination offset (default: 0)\n- search: Filter by course name (optional)\n- sortBy: courseName | displayOrder | createdAt (default: displayOrder)\n- sortOrder: ASC | DESC (default: ASC)\n\nAccess: Public"
          },
          "response": []
        },
        {
          "name": "Get Course by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/courses/course-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "courses",
                "course-001"
              ]
            },
            "description": "Get a specific course by its ID\n\nPath Parameters:\n- courseId: Unique course identifier (required)\n\nAccess: Public"
          },
          "response": []
        }
      ],
      "description": "User Courses endpoints for retrieving course information"
    },
    {
      "name": "Course Weeks",
      "item": [
        {
          "name": "Get All Course Weeks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weeks/getAll?limit=10&offset=0&courseId=&streamId=&search=&sortBy=weekNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weeks",
                "getAll"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10",
                  "description": "Number of records to return (default: 10)"
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Number of records to skip (default: 0)"
                },
                {
                  "key": "courseId",
                  "value": "",
                  "description": "Filter by specific course ID (optional)"
                },
                {
                  "key": "streamId",
                  "value": "",
                  "description": "Filter by specific stream ID (optional)"
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Search term to filter by week title (optional)"
                },
                {
                  "key": "sortBy",
                  "value": "weekNumber",
                  "description": "Field to sort by: weekNumber, weekTitle, displayOrder, createdAt (default: weekNumber)"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC",
                  "description": "Sort order: ASC or DESC (default: ASC)"
                }
              ]
            },
            "description": "Get all active course weeks with pagination and filtering\n\nQuery Parameters:\n- limit: Number of records per page (default: 10)\n- offset: Number of records to skip for pagination (default: 0)\n- courseId: Filter by specific course (optional)\n- streamId: Filter by specific stream (optional)\n- search: Filter by week title (optional)\n- sortBy: Field to sort by - weekNumber | weekTitle | displayOrder | createdAt (default: weekNumber)\n- sortOrder: Sort direction - ASC | DESC (default: ASC)\n\nAccess: Protected (requires authentication)"
          },
          "response": []
        },
        {
          "name": "Get Course Weeks by Course ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weeks/course/course-001?limit=10&offset=0&search=&sortBy=weekNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weeks",
                "course",
                "course-001"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "search",
                  "value": ""
                },
                {
                  "key": "sortBy",
                  "value": "weekNumber"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC"
                }
              ]
            },
            "description": "Get weeks for a specific course ID\n\nPath Parameters:\n- courseId: Unique course identifier (required)\n\nQuery Parameters:\n- limit: Number of records per page (default: 10)\n- offset: Pagination offset (default: 0)\n- search: Filter by week title (optional)\n- sortBy: weekNumber | weekTitle | displayOrder | createdAt (default: weekNumber)\n- sortOrder: ASC | DESC (default: ASC)\n\nAccess: Protected"
          },
          "response": []
        },
        {
          "name": "Get Course Weeks by Stream ID and Course ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weeks/stream/EDU-0001/course/COURSE-001?limit=10&offset=0&search=&sortBy=weekNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weeks",
                "stream",
                "EDU-0001",
                "course",
                "COURSE-001"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10",
                  "description": "Number of records per page (default: 10)"
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Pagination offset (default: 0)"
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Search by week title (optional)"
                },
                {
                  "key": "sortBy",
                  "value": "weekNumber",
                  "description": "Field to sort by: weekNumber, weekTitle, displayOrder, createdAt (default: weekNumber)"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC",
                  "description": "Sort order: ASC or DESC (default: ASC)"
                }
              ]
            },
            "description": "Get all course weeks for a specific stream + course combination\n\nPath Parameters (MANDATORY):\n- streamId: Stream ID (required) - e.g., EDU-0001\n- courseId: Course ID (required) - e.g., COURSE-001\n\nQuery Parameters:\n- limit: Records per page (default: 10)\n- offset: Records to skip (default: 0)\n- search: Search by week title (optional)\n- sortBy: weekNumber | weekTitle | displayOrder | createdAt (default: weekNumber)\n- sortOrder: ASC | DESC (default: ASC)\n\nResponse Excludes:\n- contentProviderId\n- contentApproverId\n\nAccess: Protected (requires authentication)"
          },
          "response": []
        },
        {
          "name": "Get Course Week by ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weeks/week-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weeks",
                "week-001"
              ]
            },
            "description": "Get a specific course week by its ID\n\nPath Parameters:\n- weekId: Unique course week identifier (required)\n\nAccess: Protected (requires authentication)"
          },
          "response": []
        }
      ],
      "description": "Course Weeks endpoints - Get weekly curriculum information (Protected - requires authentication)"
    },
    {
      "name": "Course Weekly Days",
      "item": [
        {
          "name": "Get All Course Days",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weekly-days?limit=10&offset=0&courseId=&streamId=&weekId=&search=&sortBy=dayNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weekly-days"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10",
                  "description": "Number of records to return (default: 10, max: 100)"
                },
                {
                  "key": "offset",
                  "value": "0",
                  "description": "Number of records to skip (default: 0)"
                },
                {
                  "key": "courseId",
                  "value": "",
                  "description": "Filter by specific course ID (optional)"
                },
                {
                  "key": "streamId",
                  "value": "",
                  "description": "Filter by specific stream ID (optional)"
                },
                {
                  "key": "weekId",
                  "value": "",
                  "description": "Filter by specific week ID (optional)"
                },
                {
                  "key": "search",
                  "value": "",
                  "description": "Search term to filter by topic title (optional)"
                },
                {
                  "key": "sortBy",
                  "value": "dayNumber",
                  "description": "Field to sort by: dayNumber, topicTitle, displayOrder, createdAt (default: dayNumber)"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC",
                  "description": "Sort order: ASC or DESC (default: ASC)"
                }
              ]
            },
            "description": "Get all active course weekly days with pagination and filtering\n\nQuery Parameters:\n- limit: Number of records per page (default: 10, max: 100)\n- offset: Number of records to skip for pagination (default: 0)\n- courseId: Filter by specific course (optional)\n- streamId: Filter by specific stream (optional)\n- weekId: Filter by specific week (optional)\n- search: Filter by topic title (optional)\n- sortBy: dayNumber | topicTitle | displayOrder | createdAt (default: dayNumber)\n- sortOrder: ASC | DESC (default: ASC)\n\nAccess: Protected (requires authentication)"
          },
          "response": []
        },
        {
          "name": "Get Course Days by Week ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weekly-days/week/week-001?limit=10&offset=0&search=&sortBy=dayNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weekly-days",
                "week",
                "week-001"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "search",
                  "value": ""
                },
                {
                  "key": "sortBy",
                  "value": "dayNumber"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC"
                }
              ]
            },
            "description": "Get daily topics for a specific week ID\n\nPath Parameters:\n- weekId: Unique course week identifier (required)\n\nQuery Parameters:\n- limit, offset, search, sortBy, sortOrder\n\nAccess: Protected"
          },
          "response": []
        },
        {
          "name": "Get Course Days by Course ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weekly-days/course/course-001?limit=10&offset=0&weekId=&search=&sortBy=dayNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weekly-days",
                "course",
                "course-001"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "weekId",
                  "value": ""
                },
                {
                  "key": "search",
                  "value": ""
                },
                {
                  "key": "sortBy",
                  "value": "dayNumber"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC"
                }
              ]
            },
            "description": "Get daily topics for a specific course ID\n\nPath Parameters:\n- courseId: Unique course identifier (required)\n\nQuery Parameters:\n- limit, offset, weekId, search, sortBy, sortOrder\n\nAccess: Protected"
          },
          "response": []
        },
        {
          "name": "Get Course Days by Stream ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weekly-days/stream/stream-001?limit=10&offset=0&courseId=&weekId=&search=&sortBy=dayNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weekly-days",
                "stream",
                "stream-001"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "courseId",
                  "value": ""
                },
                {
                  "key": "weekId",
                  "value": ""
                },
                {
                  "key": "search",
                  "value": ""
                },
                {
                  "key": "sortBy",
                  "value": "dayNumber"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC"
                }
              ]
            },
            "description": "Get daily topics for a specific stream ID\n\nPath Parameters:\n- streamId: Unique stream identifier (required)\n\nQuery Parameters:\n- limit, offset, courseId, weekId, search, sortBy, sortOrder\n\nAccess: Protected"
          },
          "response": []
        },
        {
          "name": "Get Course Day by ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weekly-days/day-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weekly-days",
                "day-001"
              ]
            },
            "description": "Get a specific course day (daily topic) by its ID\n\nPath Parameters:\n- dayId: Unique course day identifier (required)\n\nAccess: Protected (requires authentication)"
          },
          "response": []
        },
        {
          "name": "Get Week Days with All Topics",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weekly-days/topics/EDU-0001/COURSE-001/WEEK-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weekly-days",
                "topics",
                "EDU-0001",
                "COURSE-001",
                "WEEK-001"
              ]
            },
            "description": "Get all days in a week with all 8 topic types (PepTalk, Drill, CoreTopic, CuriositySeeker, TechDiary, StandardsPractice, LessonsLearned, ScienceMath) grouped by type\n\nPath Parameters:\n- streamId: Unique stream identifier (required)\n- courseId: Unique course identifier (required)\n- weekId: Unique course week identifier (required)\n\nResponse: \n{\n  \"streamId\": \"EDU-0001\",\n  \"courseId\": \"COURSE-001\",\n  \"weekId\": \"WEEK-001\",\n  \"days\": [\n    {\n      \"dayId\": \"DAY-001\",\n      \"dayNumber\": 1,\n      \"topicTitle\": \"Day Title\",\n      \"weekId\": \"WEEK-001\",\n      \"streamId\": \"EDU-0001\",\n      \"courseId\": \"COURSE-001\",\n      \"topics\": {\n        \"pepTalks\": { ... },\n        \"drills\": { ... },\n        \"curiositySeekers\": { ... },\n        \"techDiaries\": { ... },\n        \"coreTopics\": { ... },\n        \"standardsPractices\": { ... },\n        \"lessonsLearned\": { ... },\n        \"scienceMath\": { ... }\n      }\n    }\n  ]\n}\n\nAccess: Protected (requires authentication)"
          },
          "response": []
        },
        {
          "name": "Get Topic Content (Full Details)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/course-weekly-days/WEEK-001/DAY-001/content/pepTalk/PEP-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "course-weekly-days",
                "WEEK-001",
                "DAY-001",
                "content",
                "pepTalk",
                "PEP-001"
              ]
            },
            "description": "Get full content for a specific topic (PepTalk, Drill, CoreTopic, CuriositySeeker, TechDiary, StandardsPractice, LessonsLearned, ScienceMath) - Excludes admin/approval fields\n\nPath Parameters:\n- weekId: Unique course week identifier (required)\n- dayId: Unique course day identifier (required)\n- topicType: Topic type (required) - Valid values: pepTalk, drill, coreTopic, curiositySeeker, techDiary, standardsPractice, lessonsLearned, scienceMath\n- topicId: Unique topic identifier (required) - e.g., pepTalkId, drillId, coreTopicId, etc.\n\nUser-Friendly Response (Admin Fields Excluded):\n- Full content (html, text, sections)\n- Resources and additional content\n- Title, summary, author name, duration\n- Cover image URL\n- Course, Stream, Week information\n- Active status\n\nExcluded Admin Fields:\n- contentApproverId\n- contentApproverRejectComment\n- contentApprovedAt\n- contentRejectedAt\n- publishStatus\n- Version history fields\n- Content provider ID\n\nAccess: Protected (requires authentication)"
          },
          "response": []
        }
      ],
      "description": "Course Weekly Days endpoints - Get daily curriculum topics (Protected - requires authentication)"
    },
    {
      "name": "Progress Tracking",
      "item": [
        {
          "name": "Get Topic Progress",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/progress-tracking/topics/PTK_EPC_EC_W01D1?courseId=CRS-001&streamId=STR-001&weekId=WEEK-001&dayId=DAY-001&topicType=pepTalk",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "progress-tracking",
                "topics",
                "PTK_EPC_EC_W01D1"
              ],
              "query": [
                {
                  "key": "courseId",
                  "value": "CRS-001"
                },
                {
                  "key": "streamId",
                  "value": "STR-001"
                },
                {
                  "key": "weekId",
                  "value": "WEEK-001"
                },
                {
                  "key": "dayId",
                  "value": "DAY-001"
                },
                {
                  "key": "topicType",
                  "value": "pepTalk"
                }
              ]
            }
          }
        },
        {
          "name": "Update Resource Progress",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"resourceProgress\": [\n    {\n      \"id\": \"vid_01\",\n      \"type\": \"video\",\n      \"status\": \"COMPLETED\"\n    }\n  ],\n  \"isTopicCompleted\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/progress-tracking/topics/PTK_EPC_EC_W01D1/resources",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "progress-tracking",
                "topics",
                "PTK_EPC_EC_W01D1",
                "resources"
              ]
            }
          }
        },
        {
          "name": "Get Day Progress",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/progress-tracking/days/DAY-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "progress-tracking",
                "days",
                "DAY-001"
              ]
            }
          }
        },
        {
          "name": "Upload Tech Diary",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "files",
                  "type": "file",
                  "src": []
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/progress-tracking/tech-diary/upload",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "progress-tracking",
                "tech-diary",
                "upload"
              ]
            }
          }
        },
        {
          "name": "Get Course Percentages",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/progress-tracking/percentages/CRS-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "progress-tracking",
                "percentages",
                "CRS-001"
              ]
            }
          }
        },
        {
          "name": "Get Day Percentage",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/progress-tracking/percentages/WEEK-001/DAY-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "progress-tracking",
                "percentages",
                "WEEK-001",
                "DAY-001"
              ]
            }
          }
        },
        {
          "name": "Review Topic Answers",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/progress-tracking/review-answers/WEEK-001/DAY-001/drill/DRL_001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "progress-tracking",
                "review-answers",
                "WEEK-001",
                "DAY-001",
                "drill",
                "DRL_001"
              ]
            }
          }
        },
        {
          "name": "Download Drill Submission PDF",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/progress-tracking/drills/:topicId/download",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "progress-tracking",
                "drills",
                ":topicId",
                "download"
              ],
              "variable": [
                {
                  "key": "topicId",
                  "value": "DRL_065594",
                  "description": "ID of the drill"
                }
              ]
            }
          }
        },
        {
          "name": "Download Curiosity Seeker Submission PDF",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/users/progress-tracking/curiosity-seekers/:topicId/download",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "users",
                "progress-tracking",
                "curiosity-seekers",
                ":topicId",
                "download"
              ],
              "variable": [
                {
                  "key": "topicId",
                  "value": "CS_001",
                  "description": "ID of the curiosity seeker"
                }
              ]
            }
          }
        }
      ],
      "description": "Progress Tracking endpoints - Manage user progress through topics and resources"
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:5000",
      "type": "string"
    }
  ]
}