{
  "info": {
    "_postman_id": "buddymentor-users-unified-collection-001",
    "name": "BuddyMentor - Users Unified APIs",
    "description": "Unified Postman collection containing all user-facing endpoints: Auth, Streams, Courses, Weeks, Weekly Days, Course Purchase, Notifications, and File Uploads.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Authentication",
      "description": "User authentication, profile management, and session validation endpoints",
      "item": [
        {
          "name": "Registration Flow",
          "item": [
            {
              "name": "Step 1 - Register Start",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "if (pm.response.code === 200 || pm.response.code === 201) {",
                      "    pm.environment.set('emailId', pm.request.body.raw ? JSON.parse(pm.request.body.raw).emailId : '');",
                      "}"
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emailId\": \"user@example.com\",\n  \"password\": \"SecurePass@123\",\n  \"confirmPassword\": \"SecurePass@123\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/register-start",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "register-start"
                  ]
                },
                "description": "Step 1: Register with email and password, OTP will be sent to email\n\nRequired Fields:\n- emailId: Valid email address\n- password: Min 8 chars, must contain uppercase, lowercase, number, and special character (@$!%*?&)\n- confirmPassword: Must match password"
              },
              "response": []
            },
            {
              "name": "Step 2 - Verify OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emailId\": \"user@example.com\",\n  \"otp\": \"123456\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/verify-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "verify-otp"
                  ]
                },
                "description": "Step 2: Verify OTP received in email\n\nRequired Fields:\n- emailId: Same email used in register-start\n- otp: 6-digit code sent to email"
              },
              "response": []
            },
            {
              "name": "Step 3 - Complete Profile",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emailId\": \"user@example.com\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"mobileCountryCode\": \"+91\",\n  \"mobileNumber\": \"9876543210\",\n  \"dateOfBirth\": \"2000-01-15\",\n  \"gender\": \"male\",\n  \"state\": \"Maharashtra\",\n  \"city\": \"Mumbai\",\n  \"disciplineCode\": \"CSE\",\n  \"disciplineName\": \"Computer Science Engineering\",\n  \"stream\": \"Engineering\",\n  \"degreeOrDiploma\": \"B.Tech\",\n  \"institutionOrCompanyName\": \"XYZ Institute\",\n  \"userType\": \"fresher_final_year_student\",\n  \"termsAccepted\": true\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/complete-profile",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "complete-profile"
                  ]
                },
                "description": "Step 3: Complete user registration with full profile details\n\nRequired Fields:\n- emailId, firstName, lastName, mobileNumber, dateOfBirth (ISO format)\n- gender: male | female | prefer_not_to_say\n- state, city, disciplineCode\n- degreeOrDiploma\n- userType: fresher_final_year_student | industry_pro\n- termsAccepted: true\n\nOptional Fields:\n- mobileCountryCode (default: +91)\n- disciplineName, stream, institutionOrCompanyName"
              },
              "response": []
            },
            {
              "name": "Resend OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emailId\": \"user@example.com\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/resend-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "resend-otp"
                  ]
                },
                "description": "Resend OTP to email if not received or expired\n\nRequired Fields:\n- emailId: Email address to resend OTP to"
              },
              "response": []
            },
            {
              "name": "Send Mobile OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"mobileCountryCode\": \"+91\",\n  \"mobileNumber\": \"9876543210\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/send-mobile-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "send-mobile-otp"
                  ]
                },
                "description": "Send OTP to mobile number for verification. Generates a 6-digit OTP and logs it (ready for SMS integration)."
              },
              "response": []
            },
            {
              "name": "Verify Mobile OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"mobileCountryCode\": \"+91\",\n  \"mobileNumber\": \"9876543210\",\n  \"otp\": \"123456\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/verify-mobile-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "verify-mobile-otp"
                  ]
                },
                "description": "Verify the OTP sent to user's mobile. If valid, marks the mobile number as verified on the profile."
              },
              "response": []
            }
          ],
          "description": "User registration flow with email verification"
        },
        {
          "name": "Login & Authentication",
          "item": [
            {
              "name": "Login with Email & Password",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "if (pm.response.code === 200) {",
                      "    var jsonData = pm.response.json();",
                      "    pm.environment.set('token', jsonData.data.token);",
                      "    pm.environment.set('refreshToken', jsonData.data.refreshToken);",
                      "}"
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emailId\": \"user@example.com\",\n  \"password\": \"SecurePass@123\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/login",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "login"
                  ]
                },
                "description": "Login with email and password\n\nRequired Fields:\n- emailId: User's email address\n- password: User's password\n\nReturns:\n- token: JWT access token (stored in environment)\n- refreshToken: Refresh token for getting new access token"
              },
              "response": []
            },
            {
              "name": "Login with OTP - Step 1: Request OTP",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "if (pm.response.code === 200 || pm.response.code === 201) {",
                      "    pm.environment.set('contact', pm.request.body.raw ? JSON.parse(pm.request.body.raw).contact : '');",
                      "}"
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact\": \"user@example.com\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/login-with-otp",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "login-with-otp"
                  ]
                },
                "description": "Step 1: Request OTP for login - OTP will be sent to email or mobile number\n\nRequired Fields:\n- contact: Email address or mobile number (e.g., user@example.com or 9876543210)"
              },
              "response": []
            },
            {
              "name": "Login with OTP - Step 2: Verify OTP & Login",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "if (pm.response.code === 200) {",
                      "    var jsonData = pm.response.json();",
                      "    pm.environment.set('token', jsonData.data.token);",
                      "    pm.environment.set('refreshToken', jsonData.data.refreshToken);",
                      "}"
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact\": \"user@example.com\",\n  \"otp\": \"123456\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/verify-otp-login",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "verify-otp-login"
                  ]
                },
                "description": "Step 2: Verify OTP and complete login\n\nRequired Fields:\n- contact: Email address or mobile number (same as Step 1)\n- otp: 6-digit OTP received via email or SMS\n\nReturns:\n- token: JWT access token (stored in environment)\n- refreshToken: Refresh token for getting new access token"
              },
              "response": []
            },
            {
              "name": "Login with OTP - Resend OTP",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact\": \"user@example.com\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/resend-otp-login",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "resend-otp-login"
                  ]
                },
                "description": "Resend OTP for login if not received or expired\n\nRequired Fields:\n- contact: Email address or mobile number"
              },
              "response": []
            },
            {
              "name": "Refresh Access Token",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "if (pm.response.code === 200) {",
                      "    var jsonData = pm.response.json();",
                      "    pm.environment.set('token', jsonData.data.token);",
                      "    if(jsonData.data.refreshToken) pm.environment.set('refreshToken', jsonData.data.refreshToken);",
                      "}"
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"refreshToken\": \"{{refreshToken}}\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/refresh-token",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "refresh-token"
                  ]
                },
                "description": "Refresh access token using refresh token. Called when the access token expires."
              },
              "response": []
            },
            {
              "name": "Is User Valid",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/is-user-valid",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "is-user-valid"
                  ]
                },
                "description": "Check if the currently authenticated user's account is valid (exists, not suspended, active)."
              },
              "response": []
            },
            {
              "name": "Validate Session",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/validate-session",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "validate-session"
                  ]
                },
                "description": "Validate current authenticated user session."
              },
              "response": []
            },
            {
              "name": "Logout",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "if (pm.response.code === 200) {",
                      "    pm.environment.set('token', '');",
                      "    pm.environment.set('refreshToken', '');",
                      "}"
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/logout",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "logout"
                  ]
                },
                "description": "Log out the currently authenticated user and revoke tokens."
              },
              "response": []
            }
          ],
          "description": "User login and authentication endpoints (supports both password and OTP-based login)"
        },
        {
          "name": "Password Management",
          "item": [
            {
              "name": "Forgot Password",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emailId\": \"user@example.com\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/forgot-password",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "forgot-password"
                  ]
                },
                "description": "Request password reset - link will be sent to email\n\nRequired Fields:\n- emailId: User's email address"
              },
              "response": []
            },
            {
              "name": "Reset Password",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"token\": \"reset-token-from-email\",\n  \"emailId\": \"user@example.com\",\n  \"newPassword\": \"NewSecurePass@456\",\n  \"confirmPassword\": \"NewSecurePass@456\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/reset-password",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "reset-password"
                  ]
                },
                "description": "Reset password using token from email\n\nRequired Fields:\n- token: Reset token from email link\n- emailId: User's email address\n- newPassword: Min 8 chars, must contain uppercase, lowercase, number, special character (@$!%*?&)\n- confirmPassword: Must match newPassword"
              },
              "response": []
            }
          ],
          "description": "Password reset and recovery endpoints"
        },
        {
          "name": "Profile Management",
          "item": [
            {
              "name": "Update Profile",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe Updated\",\n  \"mobileNumber\": \"9876543210\",\n  \"gender\": \"male\",\n  \"state\": \"Maharashtra\",\n  \"city\": \"Pune\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/update-profile",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "update-profile"
                  ]
                },
                "description": "Update user profile (protected endpoint - requires authentication)\n\nRequired Headers:\n- Authorization: Bearer {{token}}\n\nOptional Fields (at least one required):\n- firstName, lastName, mobileCountryCode, mobileNumber\n- gender, state, city\n- disciplineCode, disciplineName, stream\n- degreeOrDiploma, institutionOrCompanyName"
              },
              "response": []
            },
            {
              "name": "Get User Profile (getUser)",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/getUser",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "getUser"
                  ]
                },
                "description": "Get authenticated user profile details from the JWT token."
              },
              "response": []
            },
            {
              "name": "Is Profile Completed",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/is-profile-completed",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "is-profile-completed"
                  ]
                },
                "description": "Check if authenticated user's profile is complete (validates mandatory fields: email, firstName, lastName, disciplineId)."
              },
              "response": []
            },
            {
              "name": "Upload Avatar",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "avatar",
                      "type": "file",
                      "description": "Select an image file to upload (JPEG, PNG, GIF, WebP)"
                    }
                  ]
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/upload-avatar",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "upload-avatar"
                  ]
                },
                "description": "Upload user avatar image. The file gets saved under uploads/useravatar folder and user profile is updated with the avatar URL."
              },
              "response": []
            }
          ],
          "description": "User profile management endpoints"
        },
        {
          "name": "OAuth - Google",
          "item": [
            {
              "name": "Get Google Auth URL",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/google/url",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "google",
                    "url"
                  ]
                },
                "description": "Get Google OAuth authorization URL\n\nReturns:\n- authUrl: URL to redirect user for Google sign-in"
              },
              "response": []
            },
            {
              "name": "Google OAuth Callback",
              "request": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/google/callback?code=authorization-code",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "google",
                    "callback"
                  ],
                  "query": [
                    {
                      "key": "code",
                      "value": "authorization-code"
                    }
                  ]
                },
                "description": "Google OAuth callback handler\n\nQuery Parameters:\n- code: Authorization code from Google"
              },
              "response": []
            },
            {
              "name": "Sign In with Google",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "if (pm.response.code === 200) {",
                      "    var jsonData = pm.response.json();",
                      "    pm.environment.set('token', jsonData.data.token);",
                      "}"
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"idToken\": \"google-id-token\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/google/signin",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "google",
                    "signin"
                  ]
                },
                "description": "Sign in with Google using ID token\n\nRequired Fields:\n- idToken: Google ID token from frontend\n\nReturns:\n- token: JWT access token\n- refreshToken: Refresh token"
              },
              "response": []
            }
          ],
          "description": "Google OAuth integration endpoints"
        },
        {
          "name": "FCM Token Management",
          "description": "Firebase Cloud Messaging token registration for push notifications",
          "item": [
            {
              "name": "Register FCM Token",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"fcmToken\": \"cXf5TYhDXXX:APA91...\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/register-fcm-token",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "register-fcm-token"
                  ]
                },
                "description": "Register device FCM token for push notifications after login."
              },
              "response": []
            },
            {
              "name": "Unregister FCM Token",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/unregister-fcm-token",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "unregister-fcm-token"
                  ]
                },
                "description": "Unregister FCM token on logout or app removal to disable notifications on this device."
              },
              "response": []
            }
          ]
        },
        {
          "name": "Admin Actions",
          "description": "User suspension administration endpoints",
          "item": [
            {
              "name": "Suspend User",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Violation of terms of service\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/suspend-user/:userId",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "suspend-user",
                    ":userId"
                  ],
                  "variable": [
                    {
                      "key": "userId",
                      "value": "user-uuid-here",
                      "description": "The unique ID of the user to suspend"
                    }
                  ]
                },
                "description": "Suspend a user account (Admin only)."
              },
              "response": []
            },
            {
              "name": "Unsuspend User",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/auth/unsuspend-user/:userId",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "auth",
                    "unsuspend-user",
                    ":userId"
                  ],
                  "variable": [
                    {
                      "key": "userId",
                      "value": "user-uuid-here",
                      "description": "The unique ID of the user to unsuspend"
                    }
                  ]
                },
                "description": "Restore a suspended user account (Admin only)."
              },
              "response": []
            }
          ]
        }
      ]
    },
    {
      "name": "Admin Courses",
      "description": "Administrative course management endpoints (Create, update, publish, delete, restore)",
      "item": [
        {
          "name": "Create Course",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"courseId\": \"COURSE-TEST-001\",\n  \"streamId\": \"stream-001\",\n  \"productVerticalId\": \"vertical-001\",\n  \"courseName\": \"Introduction to Computer Science\",\n  \"courseCode\": \"CS101\",\n  \"duration\": \"8 Weeks\",\n  \"cardDescription\": \"A beginner-friendly introduction to the fundamental concepts of computer science.\",\n  \"language\": \"English\",\n  \"weekLength\": 8,\n  \"courseDisciplines\": [\n    {\n      \"id\": \"discipline-001\"\n    }\n  ],\n  \"educationStreams\": [\n    {\n      \"id\": \"edu-stream-001\"\n    }\n  ],\n  \"categories\": [\n    {\n      \"id\": \"category-001\"\n    }\n  ],\n  \"stayPutPeriod\": \"1 Week\",\n  \"prerequisites\": [],\n  \"imageAssets\": {\n    \"thumbnailImages\": [],\n    \"webImages\": [],\n    \"bannerImages\": [],\n    \"mobileImages\": [],\n    \"conceptWheelImages\": [],\n    \"generalImages\": []\n  },\n  \"aboutCourse\": \"Detailed description about the course content.\",\n  \"learningObjectives\": \"Objectives...\",\n  \"completionObjective\": \"Completion objectives...\",\n  \"isActive\": true,\n  \"displayOrder\": 1\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/courses/create",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "courses",
                "create"
              ]
            },
            "description": "Create a new course. Note: streamId and productVerticalId must exist and be associated. Includes the cardDescription field."
          },
          "response": []
        },
        {
          "name": "Get All Courses",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/courses/getAll?limit=10&offset=0&search=&streamId=&productVerticalId=&publishStatus=&isActive=true",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "courses",
                "getAll"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "search",
                  "value": ""
                },
                {
                  "key": "streamId",
                  "value": ""
                },
                {
                  "key": "productVerticalId",
                  "value": ""
                },
                {
                  "key": "publishStatus",
                  "value": ""
                },
                {
                  "key": "isActive",
                  "value": "true"
                }
              ]
            },
            "description": "Get all courses with pagination and filters. Returns all fields including cardDescription."
          },
          "response": []
        },
        {
          "name": "Get Course by ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/courses/getById/:courseId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "courses",
                "getById",
                ":courseId"
              ],
              "variable": [
                {
                  "key": "courseId",
                  "value": "COURSE-TEST-001",
                  "description": "ID of the course to retrieve"
                }
              ]
            },
            "description": "Get details of a specific course by its ID."
          },
          "response": []
        },
        {
          "name": "Update Course",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"courseName\": \"Introduction to Computer Science (Updated)\",\n  \"cardDescription\": \"An updated beginner-friendly introduction to computer science.\",\n  \"duration\": \"10 Weeks\",\n  \"weekLength\": 10,\n  \"isActive\": true\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/courses/update/:courseId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "courses",
                "update",
                ":courseId"
              ],
              "variable": [
                {
                  "key": "courseId",
                  "value": "COURSE-TEST-001",
                  "description": "ID of the course to update"
                }
              ]
            },
            "description": "Update fields of an existing course. Supports updating the cardDescription field."
          },
          "response": []
        },
        {
          "name": "Publish Course",
          "request": {
            "method": "PUT",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/courses/:courseId/publish",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "courses",
                ":courseId",
                "publish"
              ],
              "variable": [
                {
                  "key": "courseId",
                  "value": "COURSE-TEST-001",
                  "description": "ID of the course to publish"
                }
              ]
            },
            "description": "Publish course to make it active and visible. Requires weeks and days to be set up and approved."
          },
          "response": []
        },
        {
          "name": "Restore Course",
          "request": {
            "method": "PATCH",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/courses/:courseId/restore",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "courses",
                ":courseId",
                "restore"
              ],
              "variable": [
                {
                  "key": "courseId",
                  "value": "COURSE-TEST-001",
                  "description": "ID of the course to restore"
                }
              ]
            },
            "description": "Restore a soft-deleted course."
          },
          "response": []
        },
        {
          "name": "Delete Course",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/courses/delete/:courseId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "courses",
                "delete",
                ":courseId"
              ],
              "variable": [
                {
                  "key": "courseId",
                  "value": "COURSE-TEST-001",
                  "description": "ID of the course to delete"
                }
              ]
            },
            "description": "Soft delete a course and its associated weeks/days."
          },
          "response": []
        }
      ]
    },
    {
      "name": "User Streams",
      "item": [
        {
          "name": "Get All Streams",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-streams/getAll?limit=10&offset=0&search=&sortBy=displayOrder&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-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/user-streams/getAll?limit=10&offset=0&search=Science&sortBy=streamName&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-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/user-streams/getAll?limit=10&offset=0&sortBy=createdAt&sortOrder=DESC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-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/user-streams/getby/stream-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-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": "User Courses",
      "item": [
        {
          "name": "Get All Courses",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-courses/getAll?limit=10&offset=0&search=&streamId=&sortBy=displayOrder&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-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/user-courses/stream/stream-001?limit=10&offset=0&search=&sortBy=displayOrder&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-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/user-courses/course-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-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": "User Course Weeks",
      "item": [
        {
          "name": "Get All Course Weeks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-courseWeeks/getAll?limit=10&offset=0&courseId=&streamId=&search=&sortBy=weekNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeks",
                "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/user-courseWeeks/course/course-001?limit=10&offset=0&search=&sortBy=weekNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeks",
                "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/user-courseWeeks/stream/EDU-0001/course/COURSE-001?limit=10&offset=0&search=&sortBy=weekNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeks",
                "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/user-courseWeeks/week-001",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeks",
                "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": "User Course Weekly Days",
      "description": "Course Weekly Days endpoints - Get daily curriculum topics (Protected - requires authentication)",
      "item": [
        {
          "name": "Get All Course Days",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-courseWeeklyDay?limit=10&offset=0&courseId=&streamId=&weekId=&search=&sortBy=dayNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeklyDay"
              ],
              "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 (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."
          },
          "response": []
        },
        {
          "name": "Get Course Days by Week ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-courseWeeklyDay/week/:weekId?limit=10&offset=0&search=&sortBy=dayNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeklyDay",
                "week",
                ":weekId"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "search",
                  "value": ""
                },
                {
                  "key": "sortBy",
                  "value": "dayNumber"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC"
                }
              ],
              "variable": [
                {
                  "key": "weekId",
                  "value": "week-001",
                  "description": "ID of the week"
                }
              ]
            },
            "description": "Get daily topics for a specific week ID."
          },
          "response": []
        },
        {
          "name": "Get Course Days by Stream, Course, and Week",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-courseWeeklyDay/stream/:streamId/course/:courseId/week/:weekId?limit=10&offset=0&search=&sortBy=dayNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeklyDay",
                "stream",
                ":streamId",
                "course",
                ":courseId",
                "week",
                ":weekId"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                },
                {
                  "key": "search",
                  "value": ""
                },
                {
                  "key": "sortBy",
                  "value": "dayNumber"
                },
                {
                  "key": "sortOrder",
                  "value": "ASC"
                }
              ],
              "variable": [
                {
                  "key": "streamId",
                  "value": "stream-001",
                  "description": "Stream ID"
                },
                {
                  "key": "courseId",
                  "value": "course-001",
                  "description": "Course ID"
                },
                {
                  "key": "weekId",
                  "value": "week-001",
                  "description": "Week ID"
                }
              ]
            },
            "description": "Get all course days for a specific stream + course + week combination."
          },
          "response": []
        },
        {
          "name": "Get Course Days by Stream ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-courseWeeklyDay/stream/:streamId?limit=10&offset=0&courseId=&weekId=&search=&sortBy=dayNumber&sortOrder=ASC",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeklyDay",
                "stream",
                ":streamId"
              ],
              "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"
                }
              ],
              "variable": [
                {
                  "key": "streamId",
                  "value": "stream-001",
                  "description": "ID of the stream"
                }
              ]
            },
            "description": "Get daily topics for a specific stream ID."
          },
          "response": []
        },
        {
          "name": "Get Course Day by ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-courseWeeklyDay/:dayId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeklyDay",
                ":dayId"
              ],
              "variable": [
                {
                  "key": "dayId",
                  "value": "day-001",
                  "description": "ID of the course day"
                }
              ]
            },
            "description": "Get details of a specific course day (daily topic) by its ID."
          },
          "response": []
        },
        {
          "name": "Get Week Days with All Topics",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-courseWeeklyDay/topics/:streamId/:courseId/:weekId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeklyDay",
                "topics",
                ":streamId",
                ":courseId",
                ":weekId"
              ],
              "variable": [
                {
                  "key": "streamId",
                  "value": "stream-001"
                },
                {
                  "key": "courseId",
                  "value": "course-001"
                },
                {
                  "key": "weekId",
                  "value": "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."
          },
          "response": []
        },
        {
          "name": "Get Restricted Categories by Day ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/user-courseWeeklyDay/getById/:dayId/categories/restricted",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "user-courseWeeklyDay",
                "getById",
                ":dayId",
                "categories",
                "restricted"
              ],
              "variable": [
                {
                  "key": "dayId",
                  "value": "day-001",
                  "description": "ID of the course day"
                }
              ]
            },
            "description": "Get restricted content categories for a specific course day."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Course Purchase",
      "description": "Course Purchase and payment processing endpoints",
      "item": [
        {
          "name": "Purchase Management",
          "item": [
            {
              "name": "Initiate Purchase",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"courseId\": \"COURSE-001\",\n  \"purchasedBy\": \"SELF\",\n  \"notes\": \"Purchased for learning purposes\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/coursePurchase/initiate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "coursePurchase",
                    "initiate"
                  ]
                },
                "description": "Initiate a course purchase before payment\n\nValidations:\n- User profile must be complete (disciplineId, streamId)\n- User account must not be suspended\n- User must not have already purchased this course\n\nRequest Body:\n- courseId: Course ID (required) - String\n- purchasedBy: \"SELF\" or \"ADMIN\" (optional, default: \"SELF\")\n- notes: Purchase notes (optional)\n\nResponse:\n- purchase: Purchase object with purchaseId, orderId, invoiceNumber, courseName, totalAmount, etc.\n\nAccess: Protected (Authenticated users only)"
              },
              "response": []
            },
            {
              "name": "Check Purchase Status",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/coursePurchase/check-status/COURSE-001",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "coursePurchase",
                    "check-status",
                    "COURSE-001"
                  ]
                },
                "description": "Check if authenticated user has already purchased a specific course\n\nPath Parameters:\n- courseId: Course ID (required) - String - e.g., COURSE-001\n\nResponse:\n- alreadyPurchased: boolean - True if user already purchased this course\n- courseId: Course ID that was checked\n- purchaseId: (optional) Purchase ID if already purchased\n- purchaseStatus: (optional) Current purchase status if already purchased (PENDING, SUCCESS, FAILED, etc.)\n- purchaseDate: (optional) Date when course was purchased\n\nUse Case:\n- Check if user can purchase a course or if already purchased\n- Prevent duplicate purchases\n- Show purchase status before checkout\n\nAccess: Protected (Authenticated users only)"
              },
              "response": []
            },
            {
              "name": "Get My Purchases",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/coursePurchase/my-purchases?page=1&limit=10",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "coursePurchase",
                    "my-purchases"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "description": "Page number (default: 1)"
                    },
                    {
                      "key": "limit",
                      "value": "10",
                      "description": "Records per page (default: 10)"
                    }
                  ]
                },
                "description": "Get all purchases made by authenticated user with pagination\n\nQuery Parameters:\n- page: Page number (optional, default: 1)\n- limit: Records per page (optional, default: 10)\n\nResponse:\n- pagination: { currentPage, totalPages, totalRecords, limit }\n- purchases: Array of purchase objects\n  - purchaseId, courseId, courseName, amount\n  - purchaseStatus, paymentStatus, purchasedAt\n  - enrollmentStartDate, enrollmentEndDate, etc.\n\nAccess: Protected (Authenticated users only)"
              },
              "response": []
            },
            {
              "name": "Get Purchase Details",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/api/v1/coursePurchase/PURCHASE-001",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "coursePurchase",
                    "PURCHASE-001"
                  ]
                },
                "description": "Get detailed information for a specific purchase\n\nPath Parameters:\n- purchaseId: Purchase ID (required) - String\n\nResponse:\n- purchaseId: Purchase unique identifier\n- courseDetails: { courseId, courseName, courseCode, totalAmount }\n- courseEnrollment: Enrollment details if purchased\n- amount: Total purchase amount\n- purchaseStatus: Current status (INITIATED, PAID, COMPLETED, CANCELLED, REFUNDED)\n- paymentStatus: Payment status (PENDING, SUCCESS, FAILED)\n- paymentDetails: Razorpay payment information\n- purchasedBy: \"SELF\" or \"ADMIN\"\n- notes: Purchase notes\n- purchasedAt, updatedAt: Timestamps\n\nAccess: Protected (Authenticated users only, can only view own purchases)"
              },
              "response": []
            }
          ],
          "description": "Purchase management endpoints - Create and view purchases"
        },
        {
          "name": "Payment Processing",
          "item": [
            {
              "name": "Initialize Payment",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/coursePurchase/PURCHASE-001/initialize-payment",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "coursePurchase",
                    "PURCHASE-001",
                    "initialize-payment"
                  ]
                },
                "description": "Initialize Razorpay payment for a purchase\n\nCreates a Razorpay order and returns order ID for frontend payment processing\n\nPath Parameters:\n- purchaseId: Purchase ID (required) - String\n\nResponse:\n- payment: {\n    purchaseId: Purchase ID,\n    razorpayOrderId: Razorpay order ID,\n    amount: Total amount in paise (multiply by 100),\n    keyId: Razorpay Key ID,\n    currency: \"INR\",\n    receiptId: Invoice number,\n    description: Course name,\n    customerEmail: User email,\n    customerPhone: User phone\n  }\n\nAccess: Protected (Authenticated users only)"
              },
              "response": []
            },
            {
              "name": "Verify Payment",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"purchaseId\": \"PURCHASE-001\",\n  \"paymentId\": \"pay_XXXXXXXXXXXXX\",\n  \"orderId\": \"order_XXXXXXXXXXXXX\",\n  \"signature\": \"9ef4dffbfd84f1318f6739a3ce19f9d85851857ae648f114332d8401e0949a3d\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/coursePurchase/verify-payment",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "coursePurchase",
                    "verify-payment"
                  ]
                },
                "description": "Verify and process Razorpay payment\n\nMust be called AFTER successful payment on frontend.\nVerifies Razorpay payment signature and updates purchase status.\nTriggers payment success email notification.\n\nRequest Body:\n- purchaseId: Purchase ID (required) - String\n- paymentId: Razorpay payment ID (required) - String (from payment response)\n- orderId: Razorpay order ID (required) - String (from initialize-payment)\n- signature: Razorpay signature (required) - String (from payment response)\n\nResponse:\n- purchase: {\n    purchaseId: Purchase ID,\n    paymentId: Payment ID,\n    paymentStatus: \"SUCCESS\",\n    purchaseStatus: \"PAID\",\n    amount: Total amount,\n    courseEnrollment: { enrollmentId, startDate, endDate },\n    purchasedAt: Timestamp\n  }\n\nAccess: Protected (Authenticated users only)"
              },
              "response": []
            }
          ],
          "description": "Payment initialization and verification endpoints"
        },
        {
          "name": "Refunds",
          "item": [
            {
              "name": "Request Refund",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Authorization",
                    "value": "Bearer {{token}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 499.00,\n  \"reason\": \"Course not as expected\"\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/coursePurchase/PURCHASE-001/refund",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "coursePurchase",
                    "PURCHASE-001",
                    "refund"
                  ]
                },
                "description": "Request refund for a purchased course\n\nPath Parameters:\n- purchaseId: Purchase ID (required) - String\n\nRequest Body:\n- amount: Refund amount (optional) - Number\n  If not provided, full purchase amount is refunded\n- reason: Reason for refund (optional) - String\n  User-provided refund reason\n\nResponse:\n- refund: {\n    refundId: Unique refund identifier,\n    purchaseId: Related purchase ID,\n    amount: Refunded amount,\n    reason: Refund reason,\n    status: \"PENDING\" | \"SUCCESS\" | \"FAILED\",\n    razorpayRefundId: Razorpay refund ID,\n    requestedAt: Request timestamp,\n    processedAt: (optional) Processing timestamp\n  }\n\nAccess: Protected (Authenticated users only, can only refund own purchases)"
              },
              "response": []
            }
          ],
          "description": "Refund request endpoints"
        },
        {
          "name": "Webhooks",
          "item": [
            {
              "name": "Razorpay Webhook",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "X-Razorpay-Signature",
                    "value": "9ef4dffbfd84f1318f6739a3ce19f9d85851857ae648f114332d8401e0949a3d"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"payment.authorized\",\n  \"created_at\": 1677583200,\n  \"payload\": {\n    \"payment\": {\n      \"entity\": \"payment\",\n      \"id\": \"pay_XXXXXXXXXXXXX\",\n      \"amount\": 50000,\n      \"currency\": \"INR\",\n      \"status\": \"authorized\",\n      \"method\": \"card\",\n      \"order_id\": \"order_XXXXXXXXXXXXX\",\n      \"receipt\": \"INVOICE-001\"\n    }\n  }\n}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api/v1/coursePurchase/webhook",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "coursePurchase",
                    "webhook"
                  ]
                },
                "description": "Razorpay webhook endpoint for payment events\n\nPublic endpoint that receives payment events from Razorpay.\nNo authentication required (Webhook signature verification done internally).\n\nHeader:\n- X-Razorpay-Signature: Razorpay webhook signature (required)\n\nSupported Events:\n- payment.authorized: Payment authorized\n- payment.failed: Payment failed\n- payment.captured: Payment captured\n- refund.created: Refund initiated\n- refund.failed: Refund failed\n\nResponse:\n- { event, purchaseId, status, message }\n\nAccess: Public (Webhook signature verification required)"
              },
              "response": []
            }
          ],
          "description": "Webhook endpoints for Razorpay payment events"
        }
      ]
    },
    {
      "name": "Notifications",
      "description": "Push notification token registration and testing endpoints",
      "item": [
        {
          "name": "Register FCM Token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"fcmToken\": \"fcm_token_example_123456\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications/register-token",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications",
                "register-token"
              ]
            },
            "description": "Register Firebase Cloud Messaging (FCM) token for push notifications"
          },
          "response": []
        },
        {
          "name": "Unregister FCM Token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications/unregister-token",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications",
                "unregister-token"
              ]
            },
            "description": "Unregister FCM token on logout to stop push notifications"
          },
          "response": []
        },
        {
          "name": "Send Test Notification",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Test Title\",\n  \"body\": \"This is a test notification from BuddyMentor\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications/send-test",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications",
                "send-test"
              ]
            },
            "description": "Send a test notification to the logged-in user"
          },
          "response": []
        },
        {
          "name": "Send Bulk Notification (Admin)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Important Announcement\",\n  \"body\": \"This is a bulk notification sent to all users\",\n  \"data\": {\n    \"type\": \"announcement\"\n  }\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/notifications/send-bulk",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "notifications",
                "send-bulk"
              ]
            },
            "description": "Send bulk notification to all registered users (Admin only)"
          },
          "response": []
        }
      ]
    },
    {
      "name": "File Uploads",
      "description": "File upload and download endpoints",
      "item": [
        {
          "name": "Upload Image",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "image",
                  "type": "file",
                  "description": "Image file to upload (JPEG, PNG, GIF, WebP)"
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/uploads/image",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "uploads",
                "image"
              ]
            },
            "description": "Upload a single image file"
          },
          "response": []
        },
        {
          "name": "Upload Video",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "video",
                  "type": "file",
                  "description": "Video file to upload"
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/uploads/video",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "uploads",
                "video"
              ]
            },
            "description": "Upload a single video file"
          },
          "response": []
        },
        {
          "name": "Upload PDF",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "pdf",
                  "type": "file",
                  "description": "PDF document to upload"
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/uploads/pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "uploads",
                "pdf"
              ]
            },
            "description": "Upload a single PDF file"
          },
          "response": []
        },
        {
          "name": "Upload Audio",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "audio",
                  "type": "file",
                  "description": "Audio file to upload"
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/uploads/audio",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "uploads",
                "audio"
              ]
            },
            "description": "Upload a single audio file"
          },
          "response": []
        },
        {
          "name": "Upload Multiple Files",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "files",
                  "type": "file",
                  "description": "Select multiple files to upload"
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/uploads/multiple",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "uploads",
                "multiple"
              ]
            },
            "description": "Upload multiple files of any type"
          },
          "response": []
        },
        {
          "name": "Upload Course Images",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "course-images",
                  "type": "file",
                  "description": "Images for courses/categories"
                }
              ]
            },
            "url": {
              "raw": "{{baseUrl}}/api/v1/uploads/course-images",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "uploads",
                "course-images"
              ]
            },
            "description": "Upload course category images"
          },
          "response": []
        },
        {
          "name": "Download File",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/api/v1/uploads/download/:fileType/:filename",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "uploads",
                "download",
                ":fileType",
                ":filename"
              ],
              "variable": [
                {
                  "key": "fileType",
                  "value": "image",
                  "description": "Type of file (image, video, pdf, audio, avatar, etc.)"
                },
                {
                  "key": "filename",
                  "value": "example-file-name.jpg",
                  "description": "Filename returned by upload endpoint"
                }
              ]
            },
            "description": "Download an uploaded file by type and filename"
          },
          "response": []
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:5000",
      "type": "string"
    },
    {
      "key": "apiVersion",
      "value": "v1",
      "type": "string"
    },
    {
      "key": "token",
      "value": "",
      "type": "string"
    },
    {
      "key": "refreshToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "emailId",
      "value": "",
      "type": "string"
    }
  ]
}