{
  "info": {
    "name": "Oudelaa Auth Users Posts",
    "description": "Postman collection for auth, users, posts, feed, notifications, chat, and marketplace modules with frontend-friendly filters, sorting, mixed home feed, comment mentions, post engagement counters, a separated marketplace/listings contract, and one-shop-per-admin marketplace rules.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Auth",
      "item": [
        {
          "name": "Register Basic",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/register-basic",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{registerEmail}}\",\n  \"password\": \"StrongPass123!\",\n  \"confirmPassword\": \"StrongPass123!\"\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const ts = Date.now();",
                  "if (!pm.environment.get('registerEmail')) { pm.environment.set('registerEmail', `test_${ts}@example.com`); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.exist;",
                  "pm.expect(json.email).to.exist;",
                  "if (json.debugCode) { pm.environment.set('emailVerificationCode', json.debugCode); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Register",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/register",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Test User\",\n  \"stageName\": \"Artist One\",\n  \"username\": \"{{registerUsername}}\",\n  \"email\": \"{{registerEmail}}\",\n  \"password\": \"StrongPass123!\",\n  \"confirmPassword\": \"StrongPass123!\",\n  \"musicRoles\": [\"singer\", \"composer\"],\n  \"musicGenres\": [\"Tarab\", \"Pop\"],\n  \"favoriteInstruments\": [\"Oud\", \"Piano\"],\n  \"favoriteMaqamat\": [\"Bayati\", \"Rast\"],\n  \"location\": \"Riyadh, Saudi Arabia\",\n  \"latitude\": 24.7136,\n  \"longitude\": 46.6753,\n  \"isPrivate\": false\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const ts = Date.now();",
                  "if (!pm.environment.get('registerEmail')) { pm.environment.set('registerEmail', `test_${ts}@example.com`); }",
                  "if (!pm.environment.get('registerUsername')) { pm.environment.set('registerUsername', `test_user_${ts}`); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.exist;",
                  "pm.expect(json.email).to.exist;",
                  "if (json.debugCode) { pm.environment.set('emailVerificationCode', json.debugCode); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Login",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/login",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{registerEmail}}\",\n  \"password\": \"StrongPass123!\"\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.user).to.exist;",
                  "const uid = json.user._id || json.user.id;",
                  "pm.environment.set('accessToken', json.accessToken);",
                  "pm.environment.set('refreshToken', json.refreshToken);",
                  "pm.environment.set('userId', uid);",
                  "pm.environment.set('currentUserId', uid);"
                ]
              }
            }
          ]
        },
        {
          "name": "Target User Login",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/login",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{targetLoginEmail}}\",\n  \"password\": \"{{targetLoginPassword}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.user).to.exist;",
                  "const uid = json.user._id || json.user.id;",
                  "pm.environment.set('targetAccessToken', json.accessToken);",
                  "pm.environment.set('targetRefreshToken', json.refreshToken);",
                  "pm.environment.set('targetUserId', uid);"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Login",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/login",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{adminEmail}}\",\n  \"password\": \"{{adminPassword}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.environment.set('adminAccessToken', json.accessToken);",
                  "pm.environment.set('adminRefreshToken', json.refreshToken);",
                  "pm.environment.set('adminUserId', (json.user && (json.user._id || json.user.id)) || pm.environment.get('adminUserId'));"
                ]
              }
            }
          ]
        },
        {
          "name": "Refresh",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/refresh",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"refreshToken\": \"{{refreshToken}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.user).to.exist;",
                  "pm.environment.set('accessToken', json.accessToken);",
                  "pm.environment.set('refreshToken', json.refreshToken);",
                  "pm.environment.set('userId', json.user._id || json.user.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Logout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/logout",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"refreshToken\": \"{{refreshToken}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.eql('Logged out successfully');"
                ]
              }
            }
          ]
        },
        {
          "name": "SuperAdmin",
          "item": [
            {
              "name": "SuperAdmin Login",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{baseUrl}}/auth/superadmin/login",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"admin@oudelaa.com\",\n  \"password\": \"SuperAdminStrongPass123!\"\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                      "const json = pm.response.json();",
                      "pm.expect(json.accessToken).to.exist;",
                      "pm.expect(json.refreshToken).to.exist;",
                      "pm.environment.set('superAdminAccessToken', json.accessToken);",
                      "pm.environment.set('superAdminRefreshToken', json.refreshToken);"
                    ]
                  }
                }
              ]
            },
            {
              "name": "SuperAdmin Refresh",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{baseUrl}}/auth/superadmin/refresh",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"refreshToken\": \"{{superAdminRefreshToken}}\"\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                      "const json = pm.response.json();",
                      "pm.expect(json.accessToken).to.exist;",
                      "pm.expect(json.refreshToken).to.exist;",
                      "pm.environment.set('superAdminAccessToken', json.accessToken);",
                      "pm.environment.set('superAdminRefreshToken', json.refreshToken);"
                    ]
                  }
                }
              ]
            },
            {
              "name": "SuperAdmin Logout",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{baseUrl}}/auth/superadmin/logout",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"refreshToken\": \"{{superAdminRefreshToken}}\"\n}"
                }
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                      "const json = pm.response.json();",
                      "pm.expect(json.message).to.eql('Superadmin logged out successfully');"
                    ]
                  }
                }
              ]
            }
          ]
        },
        {
          "name": "Google OAuth Start (Browser)",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/auth/google",
            "description": "Open this request in browser flow to start Google OAuth redirect."
          }
        },
        {
          "name": "Google OAuth Callback (Browser Redirect)",
          "request": {
            "method": "GET",
            "header": [],
            "url": "{{baseUrl}}/auth/google/callback",
            "description": "Callback endpoint is called by Google redirect after browser login. Do not call directly from Postman."
          }
        },
        {
          "name": "Google Token Login (Mobile - Recommended)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/google/token",
            "description": "Mobile-style Google login (Instagram-like): send Google idToken from app SDK.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"idToken\": \"{{googleIdToken}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const idToken = (pm.environment.get('googleIdToken') || '').trim();",
                  "if (!idToken) {",
                  "  throw new Error('googleIdToken is empty. Paste Google idToken from Flutter/Google SDK into environment variable googleIdToken.');",
                  "}"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.accessToken).to.exist;",
                  "pm.expect(json.refreshToken).to.exist;",
                  "pm.expect(json.user).to.exist;",
                  "const uid = json.user._id || json.user.id;",
                  "pm.environment.set('accessToken', json.accessToken);",
                  "pm.environment.set('refreshToken', json.refreshToken);",
                  "pm.environment.set('userId', uid);",
                  "pm.environment.set('currentUserId', uid);"
                ]
              }
            }
          ]
        },
        {
          "name": "List My Sessions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/auth/sessions"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;",
                  "if (json.items && json.items.length > 0) { pm.environment.set('sessionJti', json.items[0].jti); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Revoke My Session",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/auth/sessions/{{sessionJti}}/revoke"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.success).to.eql(true);"
                ]
              }
            }
          ]
        },
        {
          "name": "Forgot Password",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/forgot-password",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{registerEmail}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.exist;",
                  "if (json.debugCode) { pm.environment.set('resetCode', json.debugCode); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Verify Reset Code",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/verify-reset-code",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{registerEmail}}\",\n  \"code\": \"{{resetCode}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.resetToken).to.exist;",
                  "pm.environment.set('resetToken', json.resetToken);"
                ]
              }
            }
          ]
        },
        {
          "name": "Reset Password",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/reset-password",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"resetToken\": \"{{resetToken}}\",\n  \"newPassword\": \"{{newPassword}}\",\n  \"confirmPassword\": \"{{newPassword}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.eql('Password reset successfully');"
                ]
              }
            }
          ]
        },
        {
          "name": "Send Email Verification",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/send-email-verification",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{registerEmail}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.exist;",
                  "if (json.debugCode) { pm.environment.set('emailVerificationCode', json.debugCode); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Verify Email",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/verify-email",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{registerEmail}}\",\n  \"code\": \"{{emailVerificationCode}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.exist;",
                  "if (json.accessToken) { pm.environment.set('accessToken', json.accessToken); }",
                  "if (json.refreshToken) { pm.environment.set('refreshToken', json.refreshToken); }",
                  "if (json.user) { const uid = json.user._id || json.user.id; pm.environment.set('userId', uid); pm.environment.set('currentUserId', uid); }"
                ]
              }
            }
          ]
        },
        {
          "name": "SuperAdmin List Sessions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/auth/superadmin/sessions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "auth",
                "superadmin",
                "sessions"
              ]
            }
          }
        },
        {
          "name": "SuperAdmin Revoke Session",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/auth/superadmin/sessions/{{sessionId}}/revoke",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "auth",
                "superadmin",
                "sessions",
                "{{sessionId}}",
                "revoke"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Media",
      "item": [
        {
          "name": "Media Health",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/media/health"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.storage).to.be.an('object');",
                  "pm.expect(json.storage.provider).to.be.oneOf(['local', 's3']);",
                  "pm.expect(json.serving.rangeRequests).to.eql(true);",
                  "pm.expect(json.processing).to.be.an('object');"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Search",
      "item": [
        {
          "name": "Global Search - All",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/search?q={{searchQuery}}&type={{searchType}}&page=1&limit={{searchLimit}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('query');",
                  "pm.expect(json).to.have.property('users');",
                  "pm.expect(json).to.have.property('posts');",
                  "pm.expect(json).to.have.property('hashtags');",
                  "pm.expect(json.users.pagination).to.exist;",
                  "pm.expect(json.posts.pagination).to.exist;",
                  "pm.expect(json.hashtags.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Global Search - Users Type",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/search?q={{searchQuery}}&type=users&page=1&limit={{searchLimit}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.users).to.have.property('items');",
                  "pm.expect(json.users).to.have.property('pagination');"
                ]
              }
            }
          ]
        },
        {
          "name": "Search Users",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/search/users?q={{searchQuery}}&page=1&limit={{searchLimit}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('items');",
                  "pm.expect(json).to.have.property('pagination');",
                  "if (json.items.length) {",
                  "  const target = json.items[0];",
                  "  pm.expect(target).to.have.property('username');",
                  "  pm.expect(target).to.have.property('isFollowing');",
                  "  pm.environment.set('targetUserId', target._id || target.id);",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Search Posts",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/search/posts?q={{searchQuery}}&page=1&limit={{searchLimit}}&sortOrder={{listSortOrder}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('items');",
                  "pm.expect(json).to.have.property('pagination');",
                  "if (json.items.length) {",
                  "  const post = json.items[0];",
                  "  pm.expect(post).to.have.property('media');",
                  "  pm.expect(post).to.have.property('isLiked');",
                  "  pm.expect(post).to.have.property('isSaved');",
                  "  pm.environment.set('postId', post._id || post.id);",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Search Hashtags",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/search/hashtags?q={{searchQuery}}&page=1&limit={{searchLimit}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('items');",
                  "pm.expect(json).to.have.property('pagination');",
                  "if (json.items.length) {",
                  "  pm.expect(json.items[0]).to.have.property('tag');",
                  "  pm.expect(json.items[0]).to.have.property('postsCount');",
                  "  pm.environment.set('postHashtag', json.items[0].tag);",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Search Suggestions",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/search/suggestions?q={{searchQuery}}&limit={{searchSuggestionLimit}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('users');",
                  "pm.expect(json).to.have.property('hashtags');"
                ]
              }
            }
          ]
        },
        {
          "name": "Search Users For Mention",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/search/users?q={{mentionQuery}}&page=1&limit=10"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Status is 200\", function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items || []).to.be.an('array');",
                  "if ((json.items || []).length) {",
                  "  const user = json.items[0];",
                  "  pm.expect(user).to.have.property('_id');",
                  "  pm.expect(user).to.have.property('username');",
                  "  pm.expect(user).to.have.property('name');",
                  "  pm.expect(user).to.have.property('stageName');",
                  "  pm.expect(user).to.have.property('avatar');",
                  "  pm.expect(user).to.have.property('isVerified');",
                  "}"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Users",
      "item": [
        {
          "name": "SuperAdmin List Admins",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/admins?page=1&limit=20"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;",
                  "if (json.items && json.items.length > 0) { pm.environment.set('adminUserId', json.items[0]._id || json.items[0].id); }"
                ]
              }
            }
          ]
        },
        {
          "name": "SuperAdmin Update Admin",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/admins/{{adminUserId}}",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Store Admin Updated\",\n  \"stageName\": \"Music Store Owner\",\n  \"bio\": \"Admin managing marketplace tools\",\n  \"location\": \"Riyadh, Saudi Arabia\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('role');",
                  "pm.expect(json.role).to.eql('admin');"
                ]
              }
            }
          ]
        },
        {
          "name": "SuperAdmin Delete Admin",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/admins/{{adminUserId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.eql('Admin deleted successfully');"
                ]
              }
            }
          ]
        },
        {
          "name": "SuperAdmin Create Admin",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/create-admin",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Store Admin\",\n  \"username\": \"{{adminUsername}}\",\n  \"email\": \"{{adminEmail}}\",\n  \"password\": \"{{adminPassword}}\",\n  \"confirmPassword\": \"{{adminPassword}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.environment.set('adminUserId', json._id || json.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "SuperAdmin Set User Role",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/{{adminUserId}}/role",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"role\": \"admin\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.role).to.eql('admin');"
                ]
              }
            }
          ]
        },
        {
          "name": "Search Users",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/users?q={{usersQuery}}&isVerified={{usersVerified}}&musicRole={{talentRole}}&experienceLevel={{talentExperienceLevel}}&hasAvatar={{usersHasAvatar}}&sortBy={{usersSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=20",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.pagination).to.exist;",
                  "const currentUserId = pm.environment.get('currentUserId');",
                  "if (json.items && json.items.length > 0) {",
                  "  const target = json.items.find(u => (u._id || u.id) !== currentUserId) || json.items[0];",
                  "  const targetId = target._id || target.id;",
                  "  pm.environment.set('targetUserId', targetId);",
                  "  if (target.username) { pm.environment.set('targetUsername', target.username); }",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Profile Setup",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/me/profile-setup",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "stageName",
                  "value": "Artist One",
                  "type": "text"
                },
                {
                  "key": "avatarFile",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "bio",
                  "value": "Short bio",
                  "type": "text"
                },
                {
                  "key": "location",
                  "value": "Riyadh, Saudi Arabia",
                  "type": "text"
                },
                {
                  "key": "latitude",
                  "value": "24.7136",
                  "type": "text"
                },
                {
                  "key": "coverImageFile",
                  "type": "file",
                  "src": [],
                  "disabled": true
                },
                {
                  "key": "longitude",
                  "value": "46.6753",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.location).to.eql('Riyadh, Saudi Arabia');",
                  "pm.expect(json.latitude).to.eql(24.7136);",
                  "pm.expect(json.longitude).to.eql(46.6753);",
                  "if (json.avatar) { pm.expect(json.avatar).to.be.a('string'); }",
                  "if (json.coverImage) { pm.expect(json.coverImage).to.be.a('string'); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Music Setup",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/me/music-setup",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"musicRoles\": [\"instrumentalist\", \"composer\"],\n  \"musicGenres\": [\"Tarab\", \"Pop\"],\n  \"experienceLevel\": \"intermediate\",\n  \"favoriteInstruments\": [\"Oud\", \"Piano\"],\n  \"favoriteMaqamat\": [\"Bayati\", \"Rast\"]\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.musicRoles).to.include('instrumentalist');",
                  "pm.expect(json.musicRoles).to.include('composer');",
                  "pm.expect(json.experienceLevel).to.eql('intermediate');",
                  "pm.expect(json).to.not.have.property('isInstrumentalist');",
                  "pm.expect(json).to.not.have.property('isSinger');",
                  "pm.expect(json).to.not.have.property('isComposer');",
                  "pm.expect(json).to.not.have.property('isLyricist');"
                ]
              }
            }
          ]
        },
        {
          "name": "Update Me",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/me",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"bio\": \"Updated from Postman\",\n  \"avatar\": \"https://cdn.example.com/avatar.jpg\",\n  \"stageName\": \"Artist One Updated\",\n  \"musicGenres\": [\"Tarab\", \"Khaleeji\"],\n  \"favoriteInstruments\": [\"Oud\"],\n  \"favoriteMaqamat\": [\"Hijaz\"],\n  \"location\": \"Jeddah, Saudi Arabia\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.bio).to.eql('Updated from Postman');",
                  "if (json.coverImage) { pm.expect(json.coverImage).to.be.a('string'); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Update Me With Files",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/me",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "stageName",
                  "value": "Artist One Files",
                  "type": "text"
                },
                {
                  "key": "bio",
                  "value": "Updated from Postman with files",
                  "type": "text"
                },
                {
                  "key": "location",
                  "value": "Riyadh, Saudi Arabia",
                  "type": "text"
                },
                {
                  "key": "avatar",
                  "value": "https://cdn.example.com/avatar.jpg",
                  "type": "text"
                },
                {
                  "key": "avatarFile",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "coverImageFile",
                  "type": "file",
                  "src": [],
                  "disabled": true
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.stageName).to.eql('Artist One Files');",
                  "if (json.avatar) { pm.expect(json.avatar).to.be.a('string'); }",
                  "if (json.coverImage) { pm.expect(json.coverImage).to.be.a('string'); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Get User By Id",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/users/{{userId}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          }
        },
        {
          "name": "Admin Get Users",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin?page=1&limit=10"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "if (json.items && json.items.length > 0) { pm.environment.set('adminUserId', json.items[0]._id || json.items[0].id); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Get User By Id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/{{adminUserId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json._id || json.id).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Update User",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/{{adminUserId}}",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"stageName\": \"Updated by SuperAdmin\",\n  \"bio\": \"Profile updated by admin\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.stageName).to.eql('Updated by SuperAdmin');"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Disable User",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/{{adminUserId}}/disable",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"Violation of community guidelines\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.isDisabled).to.eql(true);"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Enable User",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/{{adminUserId}}/enable"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.isDisabled).to.eql(false);"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Delete User",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/admin/{{adminUserId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.eql('User deleted successfully');"
                ]
              }
            }
          ]
        },
        {
          "name": "Discover Talents",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/discover?q={{usersQuery}}&musicRole={{talentRole}}&experienceLevel={{talentExperienceLevel}}&hasAvatarOnly={{usersHasAvatar}}&includeRoleBuckets=true&sortBy=followersCount&sortOrder={{listSortOrder}}&page=1&limit=8"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json).to.have.property('roleBuckets');",
                  "pm.expect(json.pagination).to.exist;",
                  "if (json.items && json.items.length > 0) { pm.environment.set('targetUserId', json.items[0]._id || json.items[0].id); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Profile Overview",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/{{targetUserId}}/profile-overview"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('stats');",
                  "pm.expect(json).to.have.property('profileShareUrl');",
                  "pm.expect(json).to.have.property('contentCounts');",
                  "pm.expect(json).to.have.property('viewerState');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Profile Overview By Username",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/by-username/{{username}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('stats');",
                  "pm.expect(json).to.have.property('profileShareUrl');",
                  "pm.expect(json).to.have.property('viewerState');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get My Artist Dashboard",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/users/me/dashboard",
            "description": "Private Flutter artist dashboard endpoint.\n\nReturns profile, aggregate post stats, audience summary, top content, recent activity, and availability flags.\n\nDoes not accept a userId and only uses the authenticated user token."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.test('Dashboard response shape is Flutter-ready', function () {",
                  "  pm.expect(json).to.have.property('profile');",
                  "  pm.expect(json.profile).to.have.property('_id');",
                  "  pm.expect(json.profile).to.have.property('coverImage');",
                  "  pm.expect(json.profile).to.have.property('avatar');",
                  "  pm.expect(json.profile).to.have.property('name');",
                  "  pm.expect(json.profile).to.have.property('stageName');",
                  "  pm.expect(json.profile).to.have.property('bio');",
                  "  pm.expect(json.profile).to.have.property('isVerified');",
                  "  pm.expect(json).to.have.property('stats');",
                  "  ['followersCount','followingCount','postsCount','collaborationsCount','viewCount','playCount','listenCount','likesCount','commentsCount','savesCount','sharesCount','engagementRate','scorePercentage','earnings'].forEach((key) => pm.expect(json.stats).to.have.property(key));",
                  "  pm.expect(json).to.have.property('audience');",
                  "  ['followers','nonFollowers','newFollowersThisWeek','newFollowersThisMonth'].forEach((key) => pm.expect(json.audience).to.have.property(key));",
                  "  pm.expect(json).to.have.property('engagementChart').that.is.an('array');",
                  "  pm.expect(json).to.have.property('topContent').that.is.an('array');",
                  "  pm.expect(json).to.have.property('recentActivity').that.is.an('array');",
                  "  pm.expect(json).to.have.property('meta');",
                  "  ['generatedAt','chartAvailable','earningsAvailable','audienceAnalyticsAvailable'].forEach((key) => pm.expect(json.meta).to.have.property(key));",
                  "});",
                  "pm.environment.set('artistDashboardProfileId', json.profile._id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Discover Users",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/users/admin/discover?page=1&limit=20&q={{usersQuery}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "users",
                "admin",
                "discover"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                },
                {
                  "key": "q",
                  "value": "{{usersQuery}}"
                }
              ]
            }
          }
        },
        {
          "name": "Admin Get User Profile Overview",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/users/admin/{{id}}/profile-overview",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "users",
                "admin",
                "{{id}}",
                "profile-overview"
              ]
            }
          }
        },
        {
          "name": "Get User Follow Counts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/users/{{targetUserId}}/follow-counts"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Status is 200\", function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.userId).to.be.a('string');",
                  "pm.expect(json.followersCount).to.be.a('number');",
                  "pm.expect(json.followingCount).to.be.a('number');",
                  "pm.expect(json.followRequestsCount).to.be.a('number');",
                  "pm.expect(json.viewerState).to.be.an('object');",
                  "pm.expect(json.viewerState).to.have.property('isOwnProfile');",
                  "pm.expect(json.viewerState).to.have.property('isFollowing');",
                  "pm.expect(json.viewerState).to.have.property('hasPendingFollowRequest');",
                  "pm.expect(json.viewerState).to.have.property('isBlocked');",
                  "pm.expect(json.viewerState).to.have.property('isBlockedByUser');"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Posts",
      "item": [
        {
          "name": "Create Post (Own)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "First text post with mention @{{targetUsername}} #music",
                  "type": "text"
                },
                {
                  "key": "taggedUserIds",
                  "value": "{{targetUserId}}",
                  "type": "text"
                },
                {
                  "key": "mentionUsernames",
                  "value": "{{targetUsername}}",
                  "type": "text"
                },
                {
                  "key": "location",
                  "value": "Riyadh, Saudi Arabia",
                  "type": "text"
                },
                {
                  "key": "latitude",
                  "value": "24.7136",
                  "type": "text"
                },
                {
                  "key": "longitude",
                  "value": "46.6753",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('accessToken')) { throw new Error('Missing environment var: accessToken'); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "const pid = json._id || json.id;",
                  "pm.environment.set('postId', pid);",
                  "pm.environment.set('ownPostId', pid);"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Carousel Post (Instagram Style)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Weekend jam session #oud #music",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                },
                {
                  "key": "taggedUserIds",
                  "value": "{{targetUserId}}",
                  "type": "text"
                },
                {
                  "key": "mentionUsernames",
                  "value": "{{targetUsername}}",
                  "type": "text"
                },
                {
                  "key": "location",
                  "value": "Riyadh, Saudi Arabia",
                  "type": "text"
                },
                {
                  "key": "latitude",
                  "value": "24.7136",
                  "type": "text"
                },
                {
                  "key": "longitude",
                  "value": "46.6753",
                  "type": "text"
                },
                {
                  "key": "imageFiles",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "imageFiles",
                  "type": "file",
                  "src": []
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('accessToken')) { throw new Error('Missing environment var: accessToken'); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.postType).to.eql('image');",
                  "pm.expect(json.processingStatus).to.eql('ready');",
                  "pm.expect(json.media).to.be.an('object');",
                  "pm.expect(json.media.mediaType).to.eql(json.postType);",
                  "pm.expect(json.imageUrls).to.be.an('array');",
                  "pm.expect(json.media.images).to.be.an('array').that.is.not.empty;",
                  "pm.expect(json.media.images[0].url).to.be.a('string');",
                  "pm.expect(json.imageUrls.length).to.be.greaterThan(0);",
                  "const pid = json._id || json.id;",
                  "pm.environment.set('postId', pid);",
                  "pm.environment.set('ownPostId', pid);"
                ]
              }
            }
          ]
        },
        {
          "name": "Update Carousel Post (Instagram Style)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/{{postId}}",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Updated carousel caption #oud #live",
                  "type": "text"
                },
                {
                  "key": "imageFiles",
                  "type": "file",
                  "src": []
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.postType).to.eql('image');",
                  "pm.expect(json.imageUrls).to.be.an('array');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get User Posts (Own)",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/posts/user/{{userId}}?visibility={{postVisibility}}&sortBy={{postSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=10",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('userId')) missing.push('userId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;",
                  "if (!pm.environment.get('postId') && json.items && json.items.length > 0) {",
                  "  pm.environment.set('postId', json.items[0]._id || json.items[0].id);",
                  "  pm.environment.set('ownPostId', json.items[0]._id || json.items[0].id);",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Get User Posts Filtered",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/posts/user/{{userId}}?visibility={{postVisibility}}&postType={{postTypeFilter}}&q={{postSearchQuery}}&hashtag={{postHashtag}}&sortBy={{postSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=10",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Post By Id",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/posts/{{postId}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json._id || json.id).to.exist;",
                  "pm.expect(json).to.have.property('content');",
                  "pm.expect(pm.response.json()).to.have.property('isPinned');"
                ]
              }
            }
          ]
        },
        {
          "name": "Register Post View",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/posts/{{postId}}/view",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.success).to.eql(true);",
                  "pm.expect(json).to.have.property('viewCount');",
                  "pm.environment.set('lastViewCount', json.viewCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Register Post Share",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/posts/{{postId}}/share",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"target\": \"copy_link\",\n  \"channel\": \"copy_link\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.success).to.eql(true);",
                  "pm.expect(json).to.have.property('shareCount');",
                  "pm.environment.set('lastShareCount', json.shareCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Update Post",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/{{postId}}",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Updated post content with @{{targetUsername}} #live",
                  "type": "text"
                },
                {
                  "key": "taggedUserIds",
                  "value": "{{targetUserId}}",
                  "type": "text"
                },
                {
                  "key": "mentionUsernames",
                  "value": "{{targetUsername}}",
                  "type": "text"
                },
                {
                  "key": "location",
                  "value": "Jeddah, Saudi Arabia",
                  "type": "text"
                },
                {
                  "key": "latitude",
                  "value": "21.5433",
                  "type": "text"
                },
                {
                  "key": "longitude",
                  "value": "39.1728",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.content).to.eql('Updated post content with @artist_one #live');"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Video Post (Own)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Video post #music",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                },
                {
                  "key": "durationSeconds",
                  "value": "42",
                  "type": "text"
                },
                {
                  "key": "coverImageFile",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "style",
                  "value": "Sharqi",
                  "type": "text"
                },
                {
                  "key": "maqam",
                  "value": "Hijaz",
                  "type": "text"
                },
                {
                  "key": "mentionUsernames",
                  "value": "{{targetUsername}}",
                  "type": "text"
                },
                {
                  "key": "rhythmSignature",
                  "value": "6/8",
                  "type": "text"
                },
                {
                  "key": "location",
                  "value": "Riyadh, Saudi Arabia",
                  "type": "text"
                },
                {
                  "key": "latitude",
                  "value": "24.7136",
                  "type": "text"
                },
                {
                  "key": "longitude",
                  "value": "46.6753",
                  "type": "text"
                },
                {
                  "key": "videoFile",
                  "type": "file",
                  "src": []
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('accessToken')) { throw new Error('Missing environment var: accessToken'); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.postType).to.eql('video');",
                  "pm.expect(json.media.thumbnailUrl).to.be.a('string');",
                  "pm.expect(json.media.preferredPlaybackUrl).to.be.a('string');",
                  "if (json.hlsUrl) { pm.expect(json.media.preferredPlaybackUrl).to.eql(json.hlsUrl); }",
                  "pm.expect(json.processingStatus).to.eql('ready');",
                  "pm.expect(json.media).to.be.an('object');",
                  "pm.expect(json.media.mediaType).to.eql(json.postType);",
                  "pm.expect(json.durationSeconds).to.eql(42);",
                  "if (json.thumbnailUrl) { pm.expect(json.thumbnailUrl).to.be.a('string'); }",
                  "pm.expect(json.style).to.eql('Sharqi');",
                  "pm.expect(json.maqam).to.eql('Hijaz');",
                  "pm.expect(json.rhythmSignature).to.eql('6/8');",
                  "pm.environment.set('postId', json._id || json.id);",
                  "pm.environment.set('ownPostId', json._id || json.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Reel (Video First)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/reels",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "New reel from oud session #reel",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                },
                {
                  "key": "durationSeconds",
                  "value": "30",
                  "type": "text"
                },
                {
                  "key": "coverImageFile",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "style",
                  "value": "Sharqi",
                  "type": "text"
                },
                {
                  "key": "maqam",
                  "value": "Hijaz",
                  "type": "text"
                },
                {
                  "key": "rhythmSignature",
                  "value": "6/8",
                  "type": "text"
                },
                {
                  "key": "videoFile",
                  "type": "file",
                  "src": []
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('accessToken')) { throw new Error('Missing environment var: accessToken'); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.postType).to.eql('video');",
                  "pm.expect(json.media.thumbnailUrl).to.be.a('string');",
                  "pm.expect(json.media.preferredPlaybackUrl).to.be.a('string');",
                  "if (json.hlsUrl) { pm.expect(json.media.preferredPlaybackUrl).to.eql(json.hlsUrl); }",
                  "pm.expect(json.processingStatus).to.eql('ready');",
                  "pm.expect(json.media).to.be.an('object');",
                  "pm.expect(json.media.mediaType).to.eql(json.postType);",
                  "pm.expect(json.durationSeconds).to.eql(30);",
                  "if (json.thumbnailUrl) { pm.expect(json.thumbnailUrl).to.be.a('string'); }",
                  "pm.expect(json.style).to.eql('Sharqi');",
                  "pm.expect(json.maqam).to.eql('Hijaz');",
                  "pm.expect(json.rhythmSignature).to.eql('6/8');",
                  "pm.environment.set('postId', json._id || json.id);",
                  "pm.environment.set('ownPostId', json._id || json.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Reels",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/reels?visibility={{postVisibility}}&authorId={{userId}}&sortBy={{postSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=10"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Reels Filtered",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/reels?visibility={{postVisibility}}&authorId={{userId}}&q={{reelQuery}}&sortBy={{postSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=10"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Audio Post (Own)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Audio post #oud",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                },
                {
                  "key": "durationSeconds",
                  "value": "54",
                  "type": "text"
                },
                {
                  "key": "coverImageFile",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "style",
                  "value": "Sharqi",
                  "type": "text"
                },
                {
                  "key": "maqam",
                  "value": "Hijaz",
                  "type": "text"
                },
                {
                  "key": "rhythmSignature",
                  "value": "6/8",
                  "type": "text"
                },
                {
                  "key": "audioFile",
                  "type": "file",
                  "src": []
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('accessToken')) { throw new Error('Missing environment var: accessToken'); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.postType).to.eql('audio');",
                  "pm.expect(json.media.audioUrl).to.be.a('string');",
                  "pm.expect(json.media.waveformPeaks).to.be.an('array');",
                  "pm.expect(json.media.waveformPeaksPreview).to.be.an('array');",
                  "pm.expect(json.media.waveformPeaksDetailed).to.be.an('array');",
                  "pm.expect(json.media.waveformPeaks.length).to.be.within(80, 120);",
                  "pm.expect(json.media.waveformPeaksPreview.length).to.be.within(80, 120);",
                  "pm.expect(json.media.waveformPeaksDetailed.length).to.be.within(100, 1200);",
                  "pm.expect(json.media.durationSeconds).to.exist;",
                  "pm.expect(json.processingStatus).to.eql('ready');",
                  "pm.expect(json.media).to.be.an('object');",
                  "pm.expect(json.media.mediaType).to.eql(json.postType);",
                  "pm.expect(json.durationSeconds).to.eql(54);",
                  "if (json.thumbnailUrl) { pm.expect(json.thumbnailUrl).to.be.a('string'); }",
                  "pm.expect(json.style).to.eql('Sharqi');",
                  "pm.expect(json.maqam).to.eql('Hijaz');",
                  "pm.expect(json.rhythmSignature).to.eql('6/8');",
                  "pm.environment.set('postId', json._id || json.id);",
                  "pm.environment.set('ownPostId', json._id || json.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Audio Post (URL + Waveform)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Audio post with waveform #oud #hijaz",
                  "type": "text"
                },
                {
                  "key": "audioUrl",
                  "value": "https://cdn.example.com/audio-sample.mp3",
                  "type": "text"
                },
                {
                  "key": "durationSeconds",
                  "value": "54",
                  "type": "text"
                },
                {
                  "key": "thumbnailUrl",
                  "value": "https://cdn.example.com/audio-cover.jpg",
                  "type": "text"
                },
                {
                  "key": "style",
                  "value": "Sharqi",
                  "type": "text"
                },
                {
                  "key": "maqam",
                  "value": "Hijaz",
                  "type": "text"
                },
                {
                  "key": "rhythmSignature",
                  "value": "6/8",
                  "type": "text"
                },
                {
                  "key": "waveformPeaks",
                  "value": "[12,38,27,49,22,44]",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('accessToken')) { throw new Error('Missing environment var: accessToken'); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.postType).to.eql('audio');",
                  "pm.expect(json.media.audioUrl).to.be.a('string');",
                  "pm.expect(json.media.waveformPeaks).to.be.an('array');",
                  "pm.expect(json.media.waveformPeaksPreview).to.be.an('array');",
                  "pm.expect(json.media.waveformPeaksDetailed).to.be.an('array');",
                  "pm.expect(json.media.waveformPeaks.length).to.be.within(80, 120);",
                  "pm.expect(json.media.waveformPeaksPreview.length).to.be.within(80, 120);",
                  "pm.expect(json.media.waveformPeaksDetailed.length).to.be.within(100, 1200);",
                  "pm.expect(json.media.durationSeconds).to.exist;",
                  "pm.expect(json.processingStatus).to.eql('ready');",
                  "pm.expect(json.media).to.be.an('object');",
                  "pm.expect(json.media.mediaType).to.eql(json.postType);",
                  "pm.expect(json.waveformPeaks).to.be.an('array');",
                  "pm.expect(json.waveformPeaks.length).to.be.within(80, 120);",
                  "pm.expect(json.maqam).to.eql('Hijaz');",
                  "pm.environment.set('postId', json._id || json.id);",
                  "pm.environment.set('ownPostId', json._id || json.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Register Post Play (Audio/Video)",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/posts/{{postId}}/play",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.success).to.eql(true);",
                  "pm.expect(json).to.have.property('playCount');",
                  "pm.environment.set('lastPlayCount', json.playCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Invalid Post (Video+Audio)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Invalid post",
                  "type": "text"
                },
                {
                  "key": "videoUrl",
                  "value": "https://cdn.example.com/video.mp4",
                  "type": "text"
                },
                {
                  "key": "audioUrl",
                  "value": "https://cdn.example.com/audio.mp3",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('accessToken')) { throw new Error('Missing environment var: accessToken'); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 400', function () { pm.response.to.have.status(400); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Update Post Video (Form-Data)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/{{postId}}",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Updated with video file",
                  "type": "text"
                },
                {
                  "key": "durationSeconds",
                  "value": "58",
                  "type": "text"
                },
                {
                  "key": "coverImageFile",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "style",
                  "value": "Contemporary",
                  "type": "text"
                },
                {
                  "key": "maqam",
                  "value": "Bayati",
                  "type": "text"
                },
                {
                  "key": "rhythmSignature",
                  "value": "4/4",
                  "type": "text"
                },
                {
                  "key": "videoFile",
                  "type": "file",
                  "src": []
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.postType).to.eql('video');",
                  "pm.expect(json.durationSeconds).to.eql(58);",
                  "if (json.thumbnailUrl) { pm.expect(json.thumbnailUrl).to.be.a('string'); }",
                  "pm.expect(json.style).to.eql('Contemporary');",
                  "pm.expect(json.maqam).to.eql('Bayati');",
                  "pm.expect(json.rhythmSignature).to.eql('4/4');"
                ]
              }
            }
          ]
        },
        {
          "name": "Update Post Audio (Form-Data)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/{{postId}}",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Updated with audio file",
                  "type": "text"
                },
                {
                  "key": "durationSeconds",
                  "value": "61",
                  "type": "text"
                },
                {
                  "key": "coverImageFile",
                  "type": "file",
                  "src": []
                },
                {
                  "key": "style",
                  "value": "Tarab",
                  "type": "text"
                },
                {
                  "key": "maqam",
                  "value": "Nahawand",
                  "type": "text"
                },
                {
                  "key": "rhythmSignature",
                  "value": "6/8",
                  "type": "text"
                },
                {
                  "key": "audioFile",
                  "type": "file",
                  "src": []
                }
              ]
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.postType).to.eql('audio');",
                  "pm.expect(json.durationSeconds).to.eql(61);",
                  "if (json.thumbnailUrl) { pm.expect(json.thumbnailUrl).to.be.a('string'); }",
                  "pm.expect(json.style).to.eql('Tarab');",
                  "pm.expect(json.maqam).to.eql('Nahawand');",
                  "pm.expect(json.rhythmSignature).to.eql('6/8');"
                ]
              }
            }
          ]
        },
        {
          "name": "Delete Post (Cleanup - Run Last)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/{{postId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.success).to.eql(true);"
                ]
              }
            }
          ]
        },
        {
          "name": "Repost Post",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/posts/{{postId}}/repost",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"content\": \"\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.environment.set('repostId', json._id || json.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Quote Post",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/posts/{{postId}}/repost",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"content\": \"My take on this post\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.environment.set('quotePostId', json._id || json.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Update Post Comment Settings",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts/{{postId}}/comment-settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts",
                "{{postId}}",
                "comment-settings"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"commentsDisabled\": false,\n  \"commentsFollowersOnly\": true,\n  \"commentFilterKeywords\": [\n    \"{{commentKeyword}}\",\n    \"offensive\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Pin Post To Profile",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts/{{postId}}/pin-profile",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts",
                "{{postId}}",
                "pin-profile"
              ],
              "query": []
            }
          }
        },
        {
          "name": "Unpin Post From Profile",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts/{{postId}}/unpin-profile",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts",
                "{{postId}}",
                "unpin-profile"
              ],
              "query": []
            }
          }
        },
        {
          "name": "Archive Post",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts/{{postId}}/archive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts",
                "{{postId}}",
                "archive"
              ],
              "query": []
            }
          }
        },
        {
          "name": "Restore Archived Post",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts/{{postId}}/restore-archive",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts",
                "{{postId}}",
                "restore-archive"
              ],
              "query": []
            }
          }
        },
        {
          "name": "Get User Archived Posts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/user/{{userId}}?visibility=archived&sortBy=createdAt&sortOrder=desc&page=1&limit=20"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Status is 200\", function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items || []).to.be.an('array');",
                  "for (const post of (json.items || [])) {",
                  "  pm.expect(post.isArchived).to.eql(true);",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Carousel Post With Metadata",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts"
              ],
              "query": []
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Carousel caption #oud",
                  "type": "text"
                },
                {
                  "key": "imageUrls",
                  "value": "https://cdn.example.com/1.jpg,https://cdn.example.com/2.jpg",
                  "type": "text"
                },
                {
                  "key": "imageCaptions",
                  "value": "First image,Second image",
                  "type": "text"
                },
                {
                  "key": "imageAltTexts",
                  "value": "Oud on stage,Audience closeup",
                  "type": "text"
                },
                {
                  "key": "collaboratorIds",
                  "value": "{{collaboratorId}}",
                  "type": "text"
                },
                {
                  "key": "commentsDisabled",
                  "value": "false",
                  "type": "text"
                },
                {
                  "key": "commentsFollowersOnly",
                  "value": "false",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Request succeeded\", function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const value = json.item;",
                  "if (value) pm.environment.set(\"postId\", value._id || value.id || value);"
                ]
              }
            }
          ]
        },
        {
          "name": "Update Carousel Alt Text",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts/{{postId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts",
                "{{postId}}"
              ],
              "query": []
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "imageUrls",
                  "value": "https://cdn.example.com/1.jpg,https://cdn.example.com/2.jpg",
                  "type": "text"
                },
                {
                  "key": "imageCaptions",
                  "value": "Updated first,Updated second",
                  "type": "text"
                },
                {
                  "key": "imageAltTexts",
                  "value": "Updated oud alt,Updated audience alt",
                  "type": "text"
                }
              ]
            }
          }
        },
        {
          "name": "Disable Comments On Post",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts/{{postId}}/comment-settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts",
                "{{postId}}",
                "comment-settings"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"commentsDisabled\": true,\n  \"commentsFollowersOnly\": false,\n  \"commentFilterKeywords\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Enable Comments On Post",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts/{{postId}}/comment-settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts",
                "{{postId}}",
                "comment-settings"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"commentsDisabled\": false,\n  \"commentsFollowersOnly\": false,\n  \"commentFilterKeywords\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Admin Get Posts Moderation",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/posts/admin/moderation?page=1&limit=20&moderationStatus=flagged",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "posts",
                "admin",
                "moderation"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                },
                {
                  "key": "moderationStatus",
                  "value": "flagged"
                }
              ]
            }
          }
        },
        {
          "name": "Create Post With Mentions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "تعاون جميل مع @{{mentionUsername}}",
                  "type": "text"
                },
                {
                  "key": "mentionUsernames",
                  "value": "[\"{{mentionUsername}}\"]",
                  "type": "text"
                },
                {
                  "key": "mentionedUserIds",
                  "value": "[\"{{targetUserId}}\"]",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Status is 201 or 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.mentionUsernames || []).to.be.an('array');",
                  "pm.expect(json.mentionedUsers || []).to.be.an('array');",
                  "if ((json.mentionedUsers || []).length) {",
                  "  const mentioned = json.mentionedUsers[0];",
                  "  pm.expect(mentioned).to.have.property('_id');",
                  "  pm.expect(mentioned).to.have.property('id');",
                  "  pm.expect(mentioned).to.have.property('username');",
                  "  pm.expect(mentioned).to.have.property('name');",
                  "  pm.expect(mentioned).to.have.property('stageName');",
                  "  pm.expect(mentioned).to.have.property('avatar');",
                  "  pm.expect(mentioned).to.have.property('isVerified');",
                  "}",
                  "pm.environment.set(\"postId\", json._id || json.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Post Share Sheet",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/posts/{{postId}}/share-sheet",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('postId');",
                  "pm.expect(json).to.have.property('shareUrl');",
                  "pm.expect(json).to.have.property('suggestedFriends');"
                ]
              }
            }
          ]
        },
        {
          "name": "Share Post To Profile",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/posts/{{postId}}/share/profile",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"caption\": \"شوفوا هذا العمل\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.shared).to.eql(true);",
                  "pm.expect(json).to.have.property('shareCount');",
                  "if (json.post) pm.environment.set('sharedPostId', json.post._id || json.post.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Share Post To Friend",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/posts/{{postId}}/share/friend",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"friendId\": \"{{targetUserId}}\",\n  \"caption\": \"شوف هذا البوست\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.sent).to.eql(true);",
                  "pm.expect(json).to.have.property('conversationId');",
                  "pm.expect(json).to.have.property('messageId');",
                  "pm.environment.set('conversationId', json.conversationId);",
                  "pm.environment.set('lastMessageId', json.messageId);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Share Friends",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/users/me/share-friends?postId={{postId}}&page=1&limit=20",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('items');",
                  "pm.expect(json.items).to.be.an('array');"
                ]
              }
            }
          ]
        },
        {
          "name": "Share Post External",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/posts/{{postId}}/share/external",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"channel\": \"whatsapp\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('shareCount');"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Collaboration Requests",
      "item": [
        {
          "name": "Create Collaboration Request",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/posts/{{postId}}/collaboration-requests",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "collaborationType",
                  "value": "{{collaborationType}}",
                  "type": "text"
                },
                {
                  "key": "message",
                  "value": "حابب شارك بتعاون على هذا البوست",
                  "type": "text"
                },
                {
                  "key": "attachmentType",
                  "value": "{{collaborationAttachmentType}}",
                  "type": "text"
                },
                {
                  "key": "attachmentUrl",
                  "type": "file",
                  "src": []
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200 or 201', function () { pm.expect([200, 201]).to.include(pm.response.code); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('request');",
                  "pm.environment.set('collaborationRequestId', json.request._id || json.request.id);",
                  "pm.test('Rich collaboration fields are accepted', function () {",
                  "  pm.expect(json.request).to.have.property('collaborationType');",
                  "  pm.expect(json.request).to.have.property('message');",
                  "  pm.expect(json.request).to.have.property('attachmentUrl');",
                  "  pm.expect(json.request).to.have.property('attachmentType');",
                  "});"
                ]
              }
            }
          ]
        },
        {
          "name": "Create General Collaboration Request",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/users/{{targetUserId}}/collaboration-requests",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "collaborationType",
                  "value": "{{collaborationType}}",
                  "type": "text"
                },
                {
                  "key": "message",
                  "value": "حابب نتعاون على عمل جديد",
                  "type": "text"
                },
                {
                  "key": "attachmentType",
                  "value": "{{collaborationAttachmentType}}",
                  "type": "text"
                },
                {
                  "key": "attachmentUrl",
                  "type": "file",
                  "src": []
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200 or 201', function () { pm.expect([200, 201]).to.include(pm.response.code); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('request');",
                  "pm.environment.set('collaborationRequestId', json.request._id || json.request.id);",
                  "pm.test('General collaboration request has no post', function () {",
                  "  pm.expect(json.request.postId === null || typeof json.request.postId === 'undefined').to.equal(true);",
                  "  pm.expect(json.request).to.have.property('status', 'pending');",
                  "});"
                ]
              }
            }
          ]
        },
        {
          "name": "List My Collaboration Requests",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/collaboration-requests?page=1&limit=20",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('items');",
                  "pm.expect(json).to.have.property('pagination');",
                  "if (json.items.length) {",
                  "  pm.environment.set('collaborationRequestId', json.items[0]._id || json.items[0].id);",
                  "  pm.expect(json.items[0]).to.have.property('status');",
                  "  pm.expect(json.items[0]).to.have.property('collaborationType');",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Approve Collaboration Request",
          "request": {
            "method": "PATCH",
            "url": "{{baseUrl}}/collaboration-requests/{{collaborationRequestId}}/approve",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('approved', true);",
                  "pm.expect(json).to.have.property('request');"
                ]
              }
            }
          ]
        },
        {
          "name": "Reject Collaboration Request",
          "request": {
            "method": "PATCH",
            "url": "{{baseUrl}}/collaboration-requests/{{collaborationRequestId}}/reject",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('rejected', true);",
                  "pm.expect(json).to.have.property('request');"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Comments",
      "item": [
        {
          "name": "Create Comment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/comments",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"postId\": \"{{postId}}\",\n  \"content\": \"Awesome post!\"\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "const cid = json._id || json.id;",
                  "pm.environment.set('commentId', cid);",
                  "pm.environment.set('ownCommentId', cid);"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Comment With Mention",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/comments",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"postId\": \"{{postId}}\",\n  \"content\": \"Awesome post @{{targetUsername}}!\",\n  \"mentionUsernames\": [\"{{targetUsername}}\"]\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (!pm.environment.get('targetUsername')) missing.push('targetUsername');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "const cid = json._id || json.id;",
                  "pm.environment.set('commentId', cid);",
                  "pm.expect(json.mentionUsernames || []).to.include(pm.environment.get('targetUsername').toLowerCase());"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Post Comments",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/comments/post/{{postId}}?page=1&limit=10&sortBy={{commentSortBy}}&sortOrder={{listSortOrder}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Comment Reply",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comments/{{commentId}}/replies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comments",
                "{{commentId}}",
                "replies"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"content\": \"Reply to comment\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Request succeeded\", function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const value = json.item;",
                  "if (value) pm.environment.set(\"replyCommentId\", value._id || value.id || value);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Comment Replies",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/comments/{{commentId}}/replies?page=1&limit=10&sortBy={{commentSortBy}}&sortOrder={{listSortOrder}}",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Update Comment",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/comments/{{commentId}}",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"content\": \"Edited comment @{{secondaryUsername}}\",\n  \"mentionUsernames\": [\"{{secondaryUsername}}\"]\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.content).to.include('Edited comment');"
                ]
              }
            }
          ]
        },
        {
          "name": "Delete Comment",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/comments/{{commentId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Delete Comment",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/comments/admin/{{commentId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.success).to.eql(true);"
                ]
              }
            }
          ]
        },
        {
          "name": "Pin Comment",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comments/{{commentId}}/pin",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comments",
                "{{commentId}}",
                "pin"
              ],
              "query": []
            }
          }
        },
        {
          "name": "Unpin Comment",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comments/{{commentId}}/unpin",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comments",
                "{{commentId}}",
                "unpin"
              ],
              "query": []
            }
          }
        },
        {
          "name": "Create Comment Hidden By Filter",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comments"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"postId\": \"{{postId}}\",\n  \"content\": \"This contains {{commentKeyword}} keyword\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get Post Comments - Top",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comments/post/{{postId}}?page=1&limit=20&sortBy=top&sortOrder=desc",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comments",
                "post",
                "{{postId}}"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                },
                {
                  "key": "sortBy",
                  "value": "top"
                },
                {
                  "key": "sortOrder",
                  "value": "desc"
                }
              ]
            }
          }
        },
        {
          "name": "Get Post Comments - Newest",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comments/post/{{postId}}?page=1&limit=20&sortBy=createdAt&sortOrder=desc",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comments",
                "post",
                "{{postId}}"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                },
                {
                  "key": "sortBy",
                  "value": "createdAt"
                },
                {
                  "key": "sortOrder",
                  "value": "desc"
                }
              ]
            }
          }
        },
        {
          "name": "Admin List Comments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/comments/admin?page=1&limit=20&moderationStatus=flagged",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "comments",
                "admin"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                },
                {
                  "key": "moderationStatus",
                  "value": "flagged"
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Likes",
      "item": [
        {
          "name": "Like Post (Set liked=true)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/likes",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetId\": \"{{postId}}\",\n  \"targetType\": \"post\"\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.liked).to.eql(true);"
                ]
              }
            }
          ]
        },
        {
          "name": "Unlike Post (Set liked=false)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/likes/post/{{postId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.liked).to.eql(false);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Post Like Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/likes/status/post/{{postId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('liked');"
                ]
              }
            }
          ]
        },
        {
          "name": "Like Comment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/likes",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetId\": \"{{commentId}}\",\n  \"targetType\": \"comment\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.liked).to.eql(true);"
                ]
              }
            }
          ]
        },
        {
          "name": "Unlike Comment",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/likes/comment/{{commentId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.liked).to.eql(false);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Comment Like Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/likes/status/comment/{{commentId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('liked');"
                ]
              }
            }
          ]
        },
        {
          "name": "React To Post",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/likes",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetId\": \"{{postId}}\",\n  \"targetType\": \"post\",\n  \"reactionType\": \"{{reactionType}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.reactionType).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Reaction Status - Post",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/likes/status/post/{{postId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('reactionSummary');"
                ]
              }
            }
          ]
        },
        {
          "name": "Toggle Like",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/likes/toggle",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "likes",
                "toggle"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetType\": \"post\",\n  \"targetId\": \"{{postId}}\",\n  \"reactionType\": \"like\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Saves",
      "item": [
        {
          "name": "Save Post (Set saved=true)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/saves",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"postId\": \"{{postId}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('postId')) missing.push('postId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.saved).to.eql(true);"
                ]
              }
            }
          ]
        },
        {
          "name": "Unsave Post (Set saved=false)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/saves/{{postId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.saved).to.eql(false);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Save Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/saves/status/{{postId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('saved');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get My Saved Posts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/saves/me?page=1&limit=10&sortOrder={{listSortOrder}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Toggle Save",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/saves/toggle",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "saves",
                "toggle"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"postId\": \"{{postId}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Follows",
      "item": [
        {
          "name": "Toggle Follow User",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/follows/toggle",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetUserId\": \"{{targetUserId}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('targetUserId')) missing.push('targetUserId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('following');",
                  "pm.environment.set('lastFollowingState', json.following ? 'following' : 'not_following');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Followers",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/follows/followers/{{userId}}?page=1&limit=10&sortOrder={{listSortOrder}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Following",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/follows/following/{{userId}}?page=1&limit=10&sortOrder={{listSortOrder}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Follow Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/follows/status/{{targetUserId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('following');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Follow Suggestions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/follows/suggestions?page=1&limit=10&sortOrder={{listSortOrder}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "List Follow Requests",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/follows/requests?page=1&limit=20"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "if (json.items && json.items.length) { pm.environment.set('followRequestId', json.items[0]._id || json.items[0].id); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Approve Follow Request",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/follows/requests/{{followRequestId}}/approve"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Reject Follow Request",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/follows/requests/{{followRequestId}}/reject"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Notifications",
      "item": [
        {
          "name": "Get My Notifications",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications?read={{notificationRead}}&sortOrder={{listSortOrder}}&page=1&limit=20"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;",
                  "if (json.items && json.items.length > 0) {",
                  "  pm.environment.set('notificationId', json.items[0]._id || json.items[0].id);",
                  "  pm.expect(json.items[0]).to.have.property('title');",
                  "  pm.expect(json.items[0]).to.have.property('resourceType');",
                  "  pm.expect(json.items[0]).to.have.property('deepLink');",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Get My Notifications Filtered",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications?read={{notificationRead}}&type={{notificationType}}&resourceType={{notificationResourceType}}&sortOrder={{listSortOrder}}&page=1&limit=20"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Target User Notifications",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{targetAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications?page=1&limit=20&read=false&sortOrder={{listSortOrder}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount || 0);",
                  "const followNotification = (json.items || []).find(item => item.type === 'follow');",
                  "if (followNotification) {",
                  "  pm.environment.set('notificationId', followNotification._id || followNotification.id);",
                  "  pm.expect(followNotification).to.have.property('title');",
                  "  pm.expect(followNotification).to.have.property('resourceType');",
                  "  pm.expect(followNotification).to.have.property('deepLink');",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Unread Notifications Count",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-count"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Unread Notifications Count By Category",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-count?category={{notificationCategory}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');",
                  "pm.expect(json).to.have.property('category');",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Grouped Unread Notification Counts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-counts"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('total');",
                  "pm.expect(json).to.have.property('interactions');",
                  "pm.expect(json).to.have.property('messages');",
                  "pm.expect(json).to.have.property('follows');",
                  "pm.expect(json).to.have.property('followRequests');",
                  "pm.expect(json).to.have.property('collaboration');",
                  "pm.expect(json).to.have.property('system');",
                  "pm.environment.set('notificationUnreadCount', json.total);"
                ]
              }
            }
          ]
        },
        {
          "name": "Badge Count - Interactions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-count?category=interactions"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');",
                  "pm.expect(json).to.have.property('category', 'interactions');",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Badge Count - Messages",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-count?category=messages"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');",
                  "pm.expect(json).to.have.property('category', 'messages');",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Badge Count - Follows",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-count?category=follows"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');",
                  "pm.expect(json).to.have.property('category', 'follows');",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Badge Count - Follow Requests",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-count?category=follow_requests"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');",
                  "pm.expect(json).to.have.property('category', 'follow_requests');",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Badge Count - Collaboration",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-count?category=collaboration"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');",
                  "pm.expect(json).to.have.property('category', 'collaboration');",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Badge Count - System",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-count?category=system"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');",
                  "pm.expect(json).to.have.property('category', 'system');",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Target User Unread Notifications Count",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{targetAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/unread-count"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount || 0);"
                ]
              }
            }
          ]
        },
        {
          "name": "Mark Notification Read",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/{{notificationId}}/read"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');"
                ]
              }
            }
          ]
        },
        {
          "name": "Mark Target Notification Read",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{targetAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/{{notificationId}}/read"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('unreadCount');",
                  "pm.environment.set('notificationUnreadCount', json.unreadCount || 0);"
                ]
              }
            }
          ]
        },
        {
          "name": "Mark All Notifications Read",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/read-all"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.unreadCount).to.eql(0);"
                ]
              }
            }
          ]
        },
        {
          "name": "Mark All Target Notifications Read",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{targetAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/notifications/read-all"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.unreadCount).to.eql(0);",
                  "pm.environment.set('notificationUnreadCount', 0);"
                ]
              }
            }
          ]
        },
        {
          "name": "SuperAdmin Notifications",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/notifications/superadmin?page=1&limit=20&type={{notificationType}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "notifications",
                "superadmin"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                },
                {
                  "key": "type",
                  "value": "{{notificationType}}"
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Chat",
      "item": [
        {
          "name": "Create Conversation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/conversations",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"participantIds\": [\"{{targetUserId}}\"],\n  \"isGroup\": false\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const missing = [];",
                  "if (!pm.environment.get('accessToken')) missing.push('accessToken');",
                  "if (!pm.environment.get('targetUserId')) missing.push('targetUserId');",
                  "if (missing.length) { throw new Error('Missing environment vars: ' + missing.join(', ')); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.environment.set('conversationId', json._id || json.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get My Conversations",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/conversations?limit=20&cursor={{chatConversationsCursor}}&sortOrder={{listSortOrder}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.pagination).to.exist;",
                  "if (json.items && json.items.length > 0) { pm.environment.set('conversationId', json.items[0]._id || json.items[0].id); }",
                  "pm.environment.set('chatConversationsCursor', json.nextCursor || '');"
                ]
              }
            }
          ]
        },
        {
          "name": "Hide Conversation For Me",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/conversations/{{conversationId}}",
            "description": "Hides the conversation from the current user only. Messages and the other participant conversation list are not deleted. A newer message makes it visible again."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Status is 200\", function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.success).to.eql(true);",
                  "pm.expect(json.conversationId).to.eql(pm.environment.get(\"conversationId\"));",
                  "pm.expect(json.deletedForMe).to.eql(true);"
                ]
              }
            }
          ]
        },
        {
          "name": "Send Message",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/chat/messages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "chat",
                "messages"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"{{conversationId}}\",\n  \"content\": \"Hello from Postman\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Request succeeded\", function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const value = json.item;",
                  "if (value) pm.environment.set(\"messageId\", value._id || value.id || value);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Conversation Messages",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/conversations/{{conversationId}}/messages?limit=20&cursor={{chatMessagesCursor}}&sortOrder={{listSortOrder}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.pagination).to.exist;",
                  "pm.environment.set('chatMessagesCursor', json.nextCursor || '');"
                ]
              }
            }
          ]
        },
        {
          "name": "Mark Message Seen",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/messages/{{messageId}}/seen"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Unsend Message",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/messages/{{messageId}}/unsend"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Block User In Chat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/blocks/{{targetUserId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.blocked).to.eql(true);"
                ]
              }
            }
          ]
        },
        {
          "name": "Unblock User In Chat",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/blocks/{{targetUserId}}/unblock"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Chat Block Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/blocks/status/{{targetUserId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('iBlocked');",
                  "pm.expect(json).to.have.property('blockedMe');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get My Chat Blocks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/chat/blocks"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');"
                ]
              }
            }
          ]
        },
        {
          "name": "Send Reply Message",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/chat/messages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "chat",
                "messages"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"{{conversationId}}\",\n  \"content\": \"Replying to a message\",\n  \"replyToMessageId\": \"{{replyToMessageId}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Request succeeded\", function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const value = json.item;",
                  "if (value) pm.environment.set(\"messageId\", value._id || value.id || value);"
                ]
              }
            }
          ]
        },
        {
          "name": "Send Message Media Upload",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/chat/messages/upload",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "chat",
                "messages",
                "upload"
              ],
              "query": []
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "conversationId",
                  "value": "{{conversationId}}",
                  "type": "text"
                },
                {
                  "key": "content",
                  "value": "Media message caption",
                  "type": "text"
                },
                {
                  "key": "replyToMessageId",
                  "value": "{{replyToMessageId}}",
                  "type": "text"
                },
                {
                  "key": "mediaFile",
                  "type": "file",
                  "src": "{{mediaFilePath}}"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Request succeeded\", function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const value = json.item;",
                  "if (value) pm.environment.set(\"messageId\", value._id || value.id || value);"
                ]
              }
            }
          ]
        },
        {
          "name": "React To Message",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/chat/messages/{{messageId}}/reaction",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "chat",
                "messages",
                "{{messageId}}",
                "reaction"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reactionType\": \"love\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete Message For Me",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/chat/messages/{{messageId}}/delete-for-me",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "chat",
                "messages",
                "{{messageId}}",
                "delete-for-me"
              ],
              "query": []
            }
          }
        }
      ]
    },
    {
      "name": "Realtime Socket.IO",
      "description": "Socket.IO realtime contract for Flutter. These examples document emits/listeners; they are not REST endpoints.",
      "item": [
        {
          "name": "Connection - Chat Namespace",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket type: Socket.IO\nNamespace: /chat\nLocal URL: {{socketBaseUrl}}/chat\nProduction URL: https://YOUR_DOMAIN/chat\nFlutter auth: auth: { token: accessToken }\nOn connect, backend joins user room user:{userId}."
          }
        },
        {
          "name": "Connection - Notifications Namespace",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{notificationsSocketUrl}}",
            "description": "Socket type: Socket.IO\nNamespace: /notifications\nLocal URL: {{socketBaseUrl}}/notifications\nProduction URL: https://YOUR_DOMAIN/notifications\nFlutter auth: auth: { token: accessToken }\nOn connect, backend joins user room user:{userId}."
          }
        },
        {
          "name": "Emit join_conversation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: join_conversation\nDirection: Client -> Backend\nServer confirms with joined_conversation.\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\"\n}\n```",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"{{conversationId}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Emit leave_conversation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: leave_conversation\nDirection: Client -> Backend\nServer confirms with left_conversation. Socket remains connected.\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\"\n}\n```",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"{{conversationId}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Emit send_message",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: send_message\nDirection: Client -> Backend\nServer emits new_message to conversation:{conversationId}. REST send also emits new_message once.\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\",\n  \"content\": \"Hello\",\n  \"messageType\": \"text\"\n}\n```",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"{{conversationId}}\",\n  \"content\": \"Hello\",\n  \"messageType\": \"text\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Emit typing",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: typing\nDirection: Client -> Backend\nBackend validates membership and broadcasts typing to the conversation room excluding sender.\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\",\n  \"isTyping\": true\n}\n```",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"{{conversationId}}\",\n  \"isTyping\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Emit mark_delivered",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: mark_delivered\nDirection: Client -> Backend\nBackend stores deliveredBy once per user and emits message_delivered.\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\",\n  \"messageId\": \"{{messageId}}\"\n}\n```",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"{{conversationId}}\",\n  \"messageId\": \"{{messageId}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Emit mark_seen",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: mark_seen\nDirection: Client -> Backend\nBackend stores seenBy, clears unread count, and emits message_seen.\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\",\n  \"messageId\": \"{{messageId}}\"\n}\n```",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"conversationId\": \"{{conversationId}}\",\n  \"messageId\": \"{{messageId}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Listen joined_conversation",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: joined_conversation\nDirection: Backend -> Client\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\"\n}\n```"
          }
        },
        {
          "name": "Listen left_conversation",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: left_conversation\nDirection: Backend -> Client\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\"\n}\n```"
          }
        },
        {
          "name": "Listen new_message",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: new_message\nDirection: Backend -> Client\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"_id\": \"{{messageId}}\",\n  \"conversationId\": \"{{conversationId}}\",\n  \"senderId\": \"{{userId}}\",\n  \"content\": \"Hello\",\n  \"messageType\": \"text\"\n}\n```"
          }
        },
        {
          "name": "Listen message_delivered",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: message_delivered\nDirection: Backend -> Client\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\",\n  \"messageId\": \"{{messageId}}\",\n  \"userId\": \"{{targetUserId}}\",\n  \"deliveredAt\": \"2026-06-07T10:00:00.000Z\"\n}\n```"
          }
        },
        {
          "name": "Listen message_seen",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: message_seen\nDirection: Backend -> Client\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"conversationId\": \"{{conversationId}}\",\n  \"messageId\": \"{{messageId}}\",\n  \"userId\": \"{{targetUserId}}\",\n  \"seenAt\": \"2026-06-07T10:00:00.000Z\"\n}\n```"
          }
        },
        {
          "name": "Listen presence",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: presence\nDirection: Backend -> Client\nonline is kept for backward compatibility; prefer isOnline.\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"userId\": \"{{targetUserId}}\",\n  \"isOnline\": true,\n  \"online\": true,\n  \"lastSeenAt\": null\n}\n```"
          }
        },
        {
          "name": "Listen socket_error",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{chatSocketUrl}}",
            "description": "Socket.IO event: socket_error\nDirection: Backend -> Client\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"event\": \"join_conversation\",\n  \"message\": \"Not allowed\",\n  \"code\": \"FORBIDDEN\"\n}\n```"
          }
        },
        {
          "name": "Listen notification:new",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{notificationsSocketUrl}}",
            "description": "Socket.IO event: notification:new\nDirection: Backend -> Client\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"_id\": \"{{notificationId}}\",\n  \"type\": \"message\",\n  \"resourceType\": \"conversation\",\n  \"deepLink\": \"/chat/conversations/{{conversationId}}\"\n}\n```"
          }
        },
        {
          "name": "Listen notification:unread_counts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{notificationsSocketUrl}}",
            "description": "Socket.IO event: notification:unread_counts\nDirection: Backend -> Client\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"total\": 10,\n  \"interactions\": 4,\n  \"messages\": 3,\n  \"follows\": 1,\n  \"followRequests\": 2,\n  \"collaboration\": 1,\n  \"system\": 0\n}\n```"
          }
        },
        {
          "name": "Legacy Notification Events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Socket.IO",
                "value": "Use socket_io_client / Socket.IO, not HTTP REST"
              },
              {
                "key": "Auth",
                "value": "auth: { token: '{{socketAccessToken}}' }"
              }
            ],
            "url": "{{notificationsSocketUrl}}",
            "description": "Socket.IO event: notification_created / notifications_unread_count\nDirection: Backend -> Client\nKept for backward compatibility. New Flutter code should prefer notification:new and notification:unread_counts.\nConnection auth:\nauth: { token: '{{socketAccessToken}}' }\nPayload example:\n```json\n{\n  \"notification_created\": {\n    \"_id\": \"{{notificationId}}\"\n  },\n  \"notifications_unread_count\": {\n    \"unreadCount\": 10\n  }\n}\n```"
          }
        }
      ]
    },
    {
      "name": "Feed",
      "item": [
        {
          "name": "Get My Feed Mixed Home",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/feed/me?page=1&limit=20&includeSuggestions={{feedIncludeSuggestions}}&suggestionInterval={{feedSuggestionInterval}}&followingOnly={{feedFollowingOnly}}&radiusKm={{feedRadiusKm}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "if (json.items && json.items.length > 0) {",
                  "  pm.expect(json.items[0]).to.have.property('feedItemType');",
                  "}",
                  "const hasMixedItems = (json.items || []).some(item => item.feedItemType === 'suggested_users' || item.feedItemType === 'featured_marketplace');",
                  "pm.environment.set('homeFeedHasMixedItems', hasMixedItems ? 'true' : 'false');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get My Feed",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/feed/me?limit=20&cursor={{feedCursor}}&followingOnly={{feedFollowingOnly}}&radiusKm={{feedRadiusKm}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;",
                  "const firstPost = (json.items || []).find(item => item.feedItemType === 'post');",
                  "if (firstPost) {",
                  "  pm.expect(firstPost).to.have.property('likedByMe');",
                  "  pm.expect(firstPost).to.have.property('savedByMe');",
                  "  pm.expect(firstPost).to.have.property('engagement');",
                  "}",
                  "pm.environment.set('feedCursor', json.nextCursor || '');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get My Feed Preferred Type",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/feed/me?limit=20&cursor={{feedCursor}}&preferredPostType={{feedPreferredPostType}}&followingOnly={{feedFollowingOnly}}&radiusKm={{feedRadiusKm}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.pagination).to.exist;",
                  "const firstPost = (json.items || []).find(item => item.feedItemType === 'post');",
                  "if (firstPost) { pm.expect(firstPost).to.have.property('engagement'); }",
                  "pm.environment.set('feedCursor', json.nextCursor || '');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get Trending Feed",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/feed/trending?limit=20&cursor={{feedCursor}}&preferredPostType={{feedPreferredPostType}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.exist;",
                  "const firstPost = (json.items || []).find(item => item.feedItemType === 'post');",
                  "if (firstPost) {",
                  "  pm.expect(firstPost).to.have.property('likedByMe');",
                  "  pm.expect(firstPost).to.have.property('savedByMe');",
                  "}",
                  "pm.environment.set('feedCursor', json.nextCursor || '');"
                ]
              }
            }
          ]
        },
        {
          "name": "Explore Feed",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/feed/explore?page=1&limit=20"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Music World",
      "item": [
        {
          "name": "Get Music World Config",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/music-world",
            "description": "Arabic-friendly static screen metadata and optional shortcut cards. The main Instagram-like grid should use Music World Explore Grid."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json).to.have.property('title', '???? ????????');",
                  "pm.expect(json).to.have.property('searchPlaceholder');",
                  "pm.expect(json.cards).to.be.an('array');",
                  "pm.expect(json.sections).to.be.an('array');"
                ]
              }
            }
          ]
        },
        {
          "name": "Music World Explore Grid",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/music-world/explore?page=1&limit=20&cursor={{feedCursor}}",
            "description": "Main Flutter Music World grid. Uses real feed explore posts and maps them to displayUrl/thumbnailUrl for Instagram-like explore UI."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json).to.have.property('pagination');",
                  "pm.expect(json.pagination).to.have.property('hasNextPage');",
                  "if ((json.items || []).length) {",
                  "  const item = json.items[0];",
                  "  pm.expect(item).to.have.property('id');",
                  "  pm.expect(item).to.have.property('postType');",
                  "  pm.expect(item).to.have.property('thumbnailUrl');",
                  "  pm.expect(item).to.have.property('displayUrl');",
                  "  pm.expect(item).to.have.property('media');",
                  "  pm.expect(item).to.have.property('author');",
                  "  pm.expect(item).to.have.property('engagement');",
                  "  pm.expect(item).to.have.property('isLiked');",
                  "  pm.expect(item).to.have.property('isSaved');",
                  "}"
                ]
              }
            }
          ]
        },
        {
          "name": "Music World Search Posts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/music-world/search?q={{searchQuery}}&page=1&limit={{searchLimit}}",
            "description": "Search bar endpoint for Music World. Searches real posts/media, not static categories."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json).to.have.property('pagination');",
                  "if ((json.items || []).length) {",
                  "  const item = json.items[0];",
                  "  pm.expect(item).to.have.property('id');",
                  "  pm.expect(item).to.have.property('postType');",
                  "  pm.expect(item).to.have.property('displayUrl');",
                  "  pm.expect(item).to.have.property('author');",
                  "}"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Smoke",
      "item": [
        {
          "name": "Login (Smoke)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/auth/login",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"{{registerEmail}}\",\n  \"password\": \"StrongPass123!\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "const uid = json.user._id || json.user.id;",
                  "pm.environment.set('accessToken', json.accessToken);",
                  "pm.environment.set('refreshToken', json.refreshToken);",
                  "pm.environment.set('userId', uid);"
                ]
              }
            }
          ]
        },
        {
          "name": "Get User Posts (Smoke)",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/posts/user/{{userId}}?page=1&limit=10",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ]
          }
        },
        {
          "name": "Get My Feed (Smoke)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/feed/me?limit=20&cursor={{feedCursor}}&radiusKm=30"
          }
        }
      ]
    },
    {
      "name": "Full E2E",
      "item": [
        {
          "name": "Create Post (Own) - E2E",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "E2E text post",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                }
              ]
            }
          }
        },
        {
          "name": "Create Comment - E2E",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/comments",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"postId\": \"{{postId}}\",\n  \"content\": \"E2E comment\"\n}"
            }
          }
        },
        {
          "name": "Like Post - E2E",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/likes",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetId\": \"{{postId}}\",\n  \"targetType\": \"post\"\n}"
            }
          }
        },
        {
          "name": "Save Post - E2E",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/saves",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"postId\": \"{{postId}}\"\n}"
            }
          }
        },
        {
          "name": "Delete Post - E2E Cleanup",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/{{postId}}"
          }
        }
      ]
    },
    {
      "name": "Negative Tests",
      "item": [
        {
          "name": "Create Invalid Post (Video+Audio) - Negative",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "Invalid post",
                  "type": "text"
                },
                {
                  "key": "videoUrl",
                  "value": "https://cdn.example.com/video.mp4",
                  "type": "text"
                },
                {
                  "key": "audioUrl",
                  "value": "https://cdn.example.com/audio.mp3",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 400', function () { pm.response.to.have.status(400); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Post Without Token - Negative",
          "request": {
            "method": "POST",
            "header": [],
            "url": "{{baseUrl}}/posts",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "content",
                  "value": "No token request",
                  "type": "text"
                },
                {
                  "key": "visibility",
                  "value": "public",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 401', function () { pm.response.to.have.status(401); });"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Cleanup",
      "item": [
        {
          "name": "Delete Own Comment (if exists)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/comments/{{ownCommentId}}"
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('ownCommentId')) { postman.setNextRequest('Delete Own Post (if exists)'); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Delete Own Post (if exists)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/posts/{{ownPostId}}"
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('ownPostId')) { postman.setNextRequest('Delete Instrument (if exists)'); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Delete Instrument (if exists)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{adminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/marketplace/admin/instruments/{{instrumentId}}"
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('instrumentId')) { postman.setNextRequest(null); }"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "AI Music",
      "item": [
        {
          "name": "Generate Music From Text (Gemini)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/media/ai/text-to-music",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"prompt\": \"{{aiMusicPrompt}}\",\n  \"durationSeconds\": {{aiMusicDuration}},\n  \"seed\": {{aiMusicSeed}}\n}"
            }
          },
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (!pm.environment.get('aiMusicPrompt')) { pm.environment.set('aiMusicPrompt', 'Calm oud melody with light percussion and emotional Arabic mood'); }",
                  "if (!pm.environment.get('aiMusicDuration')) { pm.environment.set('aiMusicDuration', '12'); }",
                  "if (!pm.environment.get('aiMusicSeed')) { pm.environment.set('aiMusicSeed', '42'); }"
                ]
              }
            },
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.audioUrl).to.exist;",
                  "pm.expect(json.mimeType).to.exist;",
                  "pm.expect(json.sizeBytes).to.be.a('number');",
                  "pm.environment.set('generatedMusicUrl', json.audioUrl);",
                  "if (json.archiveItemId) { pm.environment.set('aiArchiveItemId', json.archiveItemId); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Get My AI Music Archive",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/media/ai/music/archive?page={{aiArchivePage}}&limit={{aiArchiveLimit}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.items).to.be.an('array');",
                  "pm.expect(json.pagination).to.have.property('hasMore');",
                  "if (json.items.length > 0) { pm.environment.set('aiArchiveItemId', json.items[0].id); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Get AI Music Archive Item",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/media/ai/music/archive/{{aiArchiveItemId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.id).to.eql(pm.environment.get('aiArchiveItemId'));",
                  "pm.expect(json.audioUrl).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Rename AI Music Archive Item",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/media/ai/music/archive/{{aiArchiveItemId}}",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"{{aiArchiveNewTitle}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.title).to.eql(pm.environment.get('aiArchiveNewTitle'));"
                ]
              }
            }
          ]
        },
        {
          "name": "Share AI Music Archive Item",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/media/ai/music/archive/{{aiArchiveItemId}}/share"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201 or 200', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.shareUrl).to.exist;",
                  "pm.expect(json.audioUrl).to.exist;"
                ]
              }
            }
          ]
        },
        {
          "name": "Share AI Music Archive Item To Feed",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/media/ai/music/archive/{{aiArchiveItemId}}/share-to-feed",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"content\": \"{{aiArchiveShareContent}}\"\n}"
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201 or 200', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.audioUrl).to.exist;",
                  "pm.environment.set('ownPostId', json.id || json._id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Delete AI Music Archive Item",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/media/ai/music/archive/{{aiArchiveItemId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.message).to.eql('Archive item deleted');"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Marketplace",
      "item": [
        {
          "name": "01 Marketplace Overview",
          "item": [
            {
              "name": "Public Marketplace Home",
              "request": {
                "method": "GET",
                "header": [],
                "url": "{{baseUrl}}/marketplace/home?listingsLimit=4&instrumentsLimit=4&repairShopsLimit=3&onlyActive=true"
              },
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                      "const json = pm.response.json();",
                      "pm.expect(json).to.have.property('categories');",
                      "pm.expect(json).to.have.property('summary');",
                      "pm.expect(json).to.have.property('featuredShops');",
                      "pm.expect(json.filters).to.have.property('listingCategories');",
                      "pm.expect(json.sections).to.have.property('listings');",
                      "pm.expect(json.sections).to.have.property('musicalInstruments');",
                      "pm.expect(json.sections).to.have.property('repairShops');"
                    ]
                  }
                }
              ]
            }
          ]
        },
        {
          "name": "02 Shop Profile",
          "item": [
            {
              "name": "Admin",
              "item": [
                {
                  "name": "Admin Update Shop Profile",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/shop-profile",
                    "body": {
                      "mode": "formdata",
                      "formdata": [
                        {
                          "key": "shopName",
                          "value": "Awtarna Store",
                          "type": "text"
                        },
                        {
                          "key": "shopDescription",
                          "value": "Trusted marketplace shop profile",
                          "type": "text"
                        },
                        {
                          "key": "shopLocation",
                          "value": "Riyadh",
                          "type": "text"
                        },
                        {
                          "key": "shopLatitude",
                          "value": "24.7136",
                          "type": "text"
                        },
                        {
                          "key": "shopLongitude",
                          "value": "46.6753",
                          "type": "text"
                        },
                        {
                          "key": "shopImageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        },
                        {
                          "key": "shopImageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        }
                      ]
                    }
                  },
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "if (!pm.environment.get('adminAccessToken')) { throw new Error('Missing environment var: adminAccessToken'); }"
                        ]
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.shopName).to.eql('Oudelaa Music Store');"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Get My Shop Profile",
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/shop-profile/me"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json).to.have.property('shopName');"
                        ]
                      }
                    }
                  ]
                }
              ]
            },
            {
              "name": "Public",
              "item": [
                {
                  "name": "Public Get Shop By Admin Id",
                  "request": {
                    "method": "GET",
                    "header": [],
                    "url": "{{baseUrl}}/marketplace/shops/{{adminUserId}}"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json).to.have.property('shopName');"
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "03 Repair Shops",
          "item": [
            {
              "name": "Admin",
              "item": [
                {
                  "name": "Admin Create Repair Shop (One Shop Per Admin)",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/repair-shops",
                    "body": {
                      "mode": "formdata",
                      "formdata": [
                        {
                          "key": "name",
                          "value": "Fix Strings Workshop",
                          "type": "text"
                        },
                        {
                          "key": "description",
                          "value": "Repair shop for oud and violin",
                          "type": "text"
                        },
                        {
                          "key": "services",
                          "value": "repair,setup,cleaning",
                          "type": "text"
                        },
                        {
                          "key": "phone",
                          "value": "+966500000000",
                          "type": "text"
                        },
                        {
                          "key": "whatsapp",
                          "value": "+966500000000",
                          "type": "text"
                        },
                        {
                          "key": "location",
                          "value": "Riyadh",
                          "type": "text"
                        },
                        {
                          "key": "latitude",
                          "value": "24.7136",
                          "type": "text"
                        },
                        {
                          "key": "longitude",
                          "value": "46.6753",
                          "type": "text"
                        },
                        {
                          "key": "isActive",
                          "value": "true",
                          "type": "text"
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        }
                      ]
                    }
                  },
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "if (!pm.environment.get('adminAccessToken')) { throw new Error('Missing environment var: adminAccessToken'); }"
                        ]
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                          "const json = pm.response.json();",
                          "pm.environment.set('repairShopId', json._id || json.id);",
                          "pm.expect(json.name).to.eql('Oudelaa Repair Center');"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Create Second Repair Shop Should Fail",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/repair-shops",
                    "body": {
                      "mode": "formdata",
                      "formdata": [
                        {
                          "key": "name",
                          "value": "Fix Strings Workshop",
                          "type": "text"
                        },
                        {
                          "key": "description",
                          "value": "Repair shop for oud and violin",
                          "type": "text"
                        },
                        {
                          "key": "services",
                          "value": "repair,setup,cleaning",
                          "type": "text"
                        },
                        {
                          "key": "phone",
                          "value": "+966500000000",
                          "type": "text"
                        },
                        {
                          "key": "whatsapp",
                          "value": "+966500000000",
                          "type": "text"
                        },
                        {
                          "key": "location",
                          "value": "Riyadh",
                          "type": "text"
                        },
                        {
                          "key": "latitude",
                          "value": "24.7136",
                          "type": "text"
                        },
                        {
                          "key": "longitude",
                          "value": "46.6753",
                          "type": "text"
                        },
                        {
                          "key": "isActive",
                          "value": "true",
                          "type": "text"
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        }
                      ]
                    }
                  },
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "if (!pm.environment.get('adminAccessToken')) { throw new Error('Missing environment var: adminAccessToken'); }",
                          "if (!pm.environment.get('repairShopId')) { throw new Error('Create the first repair shop before running this negative test.'); }"
                        ]
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 400', function () { pm.response.to.have.status(400); });",
                          "const json = pm.response.json();",
                          "const messages = Array.isArray(json.message) ? json.message : [json.message];",
                          "pm.expect(messages.join(' ')).to.include('Each admin can create one marketplace shop only');"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Update Repair Shop",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/repair-shops/{{repairShopId}}",
                    "body": {
                      "mode": "formdata",
                      "formdata": [
                        {
                          "key": "name",
                          "value": "Updated Fix Strings Workshop",
                          "type": "text"
                        },
                        {
                          "key": "description",
                          "value": "Updated repair shop description",
                          "type": "text"
                        },
                        {
                          "key": "services",
                          "value": "repair,setup,polishing",
                          "type": "text"
                        },
                        {
                          "key": "phone",
                          "value": "+966511111111",
                          "type": "text"
                        },
                        {
                          "key": "whatsapp",
                          "value": "+966511111111",
                          "type": "text"
                        },
                        {
                          "key": "location",
                          "value": "Jeddah",
                          "type": "text"
                        },
                        {
                          "key": "latitude",
                          "value": "21.5433",
                          "type": "text"
                        },
                        {
                          "key": "longitude",
                          "value": "39.1728",
                          "type": "text"
                        },
                        {
                          "key": "isActive",
                          "value": "true",
                          "type": "text"
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        }
                      ]
                    }
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Get My Repair Shops",
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/repair-shops/me?q={{repairShopQuery}}&isActive={{repairShopIsActive}}&sortBy={{repairShopSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=20"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.items).to.be.an('array');",
                          "pm.expect(json.pagination).to.exist;",
                          "if (json.items && json.items.length > 0) { pm.environment.set('repairShopId', json.items[0]._id || json.items[0].id); }"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Delete Repair Shop",
                  "request": {
                    "method": "DELETE",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/repair-shops/{{repairShopId}}"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.success).to.eql(true);"
                        ]
                      }
                    }
                  ]
                }
              ]
            },
            {
              "name": "Public",
              "item": [
                {
                  "name": "Public List Repair Shops",
                  "request": {
                    "method": "GET",
                    "header": [],
                    "url": "{{baseUrl}}/marketplace/repair-shops?q={{repairShopQuery}}&isActive={{repairShopIsActive}}&sortBy={{repairShopSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=20"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.items).to.be.an('array');",
                          "pm.expect(json.pagination).to.exist;",
                          "if (json.items && json.items.length > 0) { pm.environment.set('repairShopId', json.items[0]._id || json.items[0].id); }"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Public Get Repair Shop By Id",
                  "request": {
                    "method": "GET",
                    "header": [],
                    "url": "{{baseUrl}}/marketplace/repair-shops/{{repairShopId}}"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "04 Musical Instruments",
          "item": [
            {
              "name": "Admin",
              "item": [
                {
                  "name": "Admin Create Instrument",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/instruments",
                    "body": {
                      "mode": "formdata",
                      "formdata": [
                        {
                          "key": "title",
                          "value": "Concert Guitar",
                          "type": "text"
                        },
                        {
                          "key": "description",
                          "value": "Acoustic guitar in excellent condition",
                          "type": "text"
                        },
                        {
                          "key": "price",
                          "value": "2100",
                          "type": "text"
                        },
                        {
                          "key": "currency",
                          "value": "SAR",
                          "type": "text"
                        },
                        {
                          "key": "quantity",
                          "value": "1",
                          "type": "text"
                        },
                        {
                          "key": "condition",
                          "value": "used",
                          "type": "text"
                        },
                        {
                          "key": "instrumentType",
                          "value": "Guitar",
                          "type": "text"
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        }
                      ]
                    }
                  },
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "if (!pm.environment.get('adminAccessToken')) { throw new Error('Missing environment var: adminAccessToken'); }"
                        ]
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                          "const json = pm.response.json();",
                          "pm.environment.set('instrumentId', json._id || json.id);"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Update Instrument",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/instruments/{{instrumentId}}",
                    "body": {
                      "mode": "formdata",
                      "formdata": [
                        {
                          "key": "title",
                          "value": "Updated Concert Guitar",
                          "type": "text"
                        },
                        {
                          "key": "description",
                          "value": "Updated instrument description",
                          "type": "text"
                        },
                        {
                          "key": "price",
                          "value": "2400",
                          "type": "text"
                        },
                        {
                          "key": "currency",
                          "value": "SAR",
                          "type": "text"
                        },
                        {
                          "key": "quantity",
                          "value": "1",
                          "type": "text"
                        },
                        {
                          "key": "condition",
                          "value": "used",
                          "type": "text"
                        },
                        {
                          "key": "instrumentType",
                          "value": "Violin",
                          "type": "text"
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        }
                      ]
                    }
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Get My Instruments",
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/instruments/me?q={{marketplaceQuery}}&minPrice={{marketplaceMinPrice}}&maxPrice={{marketplaceMaxPrice}}&isActive={{marketplaceIsActive}}&condition={{marketplaceCondition}}&instrumentType={{marketplaceInstrumentType}}&sortBy={{marketplaceSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=20"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.items).to.be.an('array');",
                          "pm.expect(json.pagination).to.exist;",
                          "if (json.items && json.items.length > 0) { pm.environment.set('instrumentId', json.items[0]._id || json.items[0].id); }"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Delete Instrument",
                  "request": {
                    "method": "DELETE",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/instruments/{{instrumentId}}"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.success).to.eql(true);"
                        ]
                      }
                    }
                  ]
                }
              ]
            },
            {
              "name": "Public",
              "item": [
                {
                  "name": "Public List Instruments",
                  "request": {
                    "method": "GET",
                    "header": [],
                    "url": "{{baseUrl}}/marketplace/instruments?q={{marketplaceQuery}}&minPrice={{marketplaceMinPrice}}&maxPrice={{marketplaceMaxPrice}}&isActive={{marketplaceIsActive}}&condition={{marketplaceCondition}}&instrumentType={{marketplaceInstrumentType}}&sortBy={{marketplaceSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=20"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.items).to.be.an('array');",
                          "pm.expect(json.pagination).to.exist;",
                          "if (json.items && json.items.length > 0) { pm.environment.set('instrumentId', json.items[0]._id || json.items[0].id); }"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Public Get Instrument By Id",
                  "request": {
                    "method": "GET",
                    "header": [],
                    "url": "{{baseUrl}}/marketplace/instruments/{{instrumentId}}"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "05 General Marketplace",
          "item": [
            {
              "name": "Admin",
              "item": [
                {
                  "name": "Admin Create Listing",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/listings",
                    "body": {
                      "mode": "formdata",
                      "formdata": [
                        {
                          "key": "title",
                          "value": "Microphone SM58",
                          "type": "text"
                        },
                        {
                          "key": "description",
                          "value": "Durable dynamic microphone for studio and stage",
                          "type": "text"
                        },
                        {
                          "key": "price",
                          "value": "450",
                          "type": "text"
                        },
                        {
                          "key": "currency",
                          "value": "SAR",
                          "type": "text"
                        },
                        {
                          "key": "quantity",
                          "value": "1",
                          "type": "text"
                        },
                        {
                          "key": "condition",
                          "value": "used",
                          "type": "text"
                        },
                        {
                          "key": "instrumentType",
                          "value": "Microphone",
                          "type": "text"
                        },
                        {
                          "key": "listingCategory",
                          "value": "audio_gear",
                          "type": "text"
                        },
                        {
                          "key": "isActive",
                          "value": "true",
                          "type": "text"
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        }
                      ]
                    }
                  },
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "if (!pm.environment.get('adminAccessToken')) { throw new Error('Missing environment var: adminAccessToken'); }"
                        ]
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 201', function () { pm.response.to.have.status(201); });",
                          "const json = pm.response.json();",
                          "pm.environment.set('listingId', json._id || json.id);",
                          "pm.expect(json.listingCategory).to.eql('accessory');"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Update Listing",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/listings/{{listingId}}",
                    "body": {
                      "mode": "formdata",
                      "formdata": [
                        {
                          "key": "title",
                          "value": "Updated Microphone SM58",
                          "type": "text"
                        },
                        {
                          "key": "description",
                          "value": "Updated marketplace listing description",
                          "type": "text"
                        },
                        {
                          "key": "price",
                          "value": "500",
                          "type": "text"
                        },
                        {
                          "key": "currency",
                          "value": "SAR",
                          "type": "text"
                        },
                        {
                          "key": "quantity",
                          "value": "1",
                          "type": "text"
                        },
                        {
                          "key": "condition",
                          "value": "used",
                          "type": "text"
                        },
                        {
                          "key": "instrumentType",
                          "value": "Microphone",
                          "type": "text"
                        },
                        {
                          "key": "listingCategory",
                          "value": "audio_gear",
                          "type": "text"
                        },
                        {
                          "key": "isActive",
                          "value": "true",
                          "type": "text"
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        },
                        {
                          "key": "imageFiles",
                          "type": "file",
                          "src": [],
                          "disabled": true
                        }
                      ]
                    }
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Get My Listings",
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/listings/me?q={{marketplaceQuery}}&minPrice={{marketplaceMinPrice}}&maxPrice={{marketplaceMaxPrice}}&isActive={{marketplaceIsActive}}&listingCategory={{marketplaceListingCategory}}&condition={{marketplaceCondition}}&instrumentType={{marketplaceInstrumentType}}&sortBy={{marketplaceSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=20"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.items).to.be.an('array');",
                          "pm.expect(json.pagination).to.exist;",
                          "if (json.items && json.items.length > 0) { pm.environment.set('listingId', json.items[0]._id || json.items[0].id); }"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Admin Delete Listing",
                  "request": {
                    "method": "DELETE",
                    "header": [
                      {
                        "key": "Authorization",
                        "value": "Bearer {{adminAccessToken}}"
                      }
                    ],
                    "url": "{{baseUrl}}/marketplace/admin/listings/{{listingId}}"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.success).to.eql(true);"
                        ]
                      }
                    }
                  ]
                }
              ]
            },
            {
              "name": "Public",
              "item": [
                {
                  "name": "Public List Listings",
                  "request": {
                    "method": "GET",
                    "header": [],
                    "url": "{{baseUrl}}/marketplace/listings?q={{marketplaceQuery}}&minPrice={{marketplaceMinPrice}}&maxPrice={{marketplaceMaxPrice}}&isActive={{marketplaceIsActive}}&listingCategory={{marketplaceListingCategory}}&condition={{marketplaceCondition}}&instrumentType={{marketplaceInstrumentType}}&sortBy={{marketplaceSortBy}}&sortOrder={{listSortOrder}}&page=1&limit=20"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });",
                          "const json = pm.response.json();",
                          "pm.expect(json.items).to.be.an('array');",
                          "pm.expect(json.pagination).to.exist;",
                          "if (json.items && json.items.length > 0) { pm.environment.set('listingId', json.items[0]._id || json.items[0].id); }"
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "Public Get Listing By Id",
                  "request": {
                    "method": "GET",
                    "header": [],
                    "url": "{{baseUrl}}/marketplace/listings/{{listingId}}"
                  },
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "SuperAdmin List Marketplace Listings",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/listings?page=1&limit=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "listings"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                }
              ]
            }
          }
        },
        {
          "name": "SuperAdmin Update Listing Status",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/listings/{{id}}/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "listings",
                "{{id}}",
                "status"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"isActive\": false,\n  \"moderationStatus\": \"flagged\",\n  \"moderationReason\": \"Needs marketplace review\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "SuperAdmin Delete Listing",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/listings/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "listings",
                "{{id}}"
              ]
            }
          }
        },
        {
          "name": "SuperAdmin List Repair Shops",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/repair-shops?page=1&limit=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "repair-shops"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                }
              ]
            }
          }
        },
        {
          "name": "SuperAdmin Update Repair Shop Status",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/repair-shops/{{id}}/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "repair-shops",
                "{{id}}",
                "status"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"isActive\": false,\n  \"moderationStatus\": \"flagged\",\n  \"moderationReason\": \"Needs marketplace review\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "SuperAdmin Delete Repair Shop",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/repair-shops/{{id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "repair-shops",
                "{{id}}"
              ]
            }
          }
        },
        {
          "name": "SuperAdmin Create Listing For Admin",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/admins/{{adminId}}/listings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "admins",
                "{{adminId}}",
                "listings"
              ]
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "title",
                  "value": "Superadmin listing",
                  "type": "text"
                },
                {
                  "key": "description",
                  "value": "Created by superadmin",
                  "type": "text"
                },
                {
                  "key": "price",
                  "value": "1000",
                  "type": "text"
                },
                {
                  "key": "currency",
                  "value": "SAR",
                  "type": "text"
                },
                {
                  "key": "quantity",
                  "value": "1",
                  "type": "text"
                },
                {
                  "key": "listingCategory",
                  "value": "general",
                  "type": "text"
                }
              ]
            }
          }
        },
        {
          "name": "SuperAdmin Create Instrument For Admin",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/admins/{{adminId}}/instruments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "admins",
                "{{adminId}}",
                "instruments"
              ]
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "title",
                  "value": "Superadmin instrument",
                  "type": "text"
                },
                {
                  "key": "description",
                  "value": "Created by superadmin",
                  "type": "text"
                },
                {
                  "key": "price",
                  "value": "1200",
                  "type": "text"
                },
                {
                  "key": "currency",
                  "value": "SAR",
                  "type": "text"
                },
                {
                  "key": "quantity",
                  "value": "1",
                  "type": "text"
                },
                {
                  "key": "instrumentType",
                  "value": "Oud",
                  "type": "text"
                }
              ]
            }
          }
        },
        {
          "name": "SuperAdmin Create Repair Shop For Admin",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/admins/{{adminId}}/repair-shops",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "admins",
                "{{adminId}}",
                "repair-shops"
              ]
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "name",
                  "value": "Superadmin Repair Shop",
                  "type": "text"
                },
                {
                  "key": "description",
                  "value": "Created by superadmin",
                  "type": "text"
                },
                {
                  "key": "services",
                  "value": "oud repair,string replacement",
                  "type": "text"
                },
                {
                  "key": "location",
                  "value": "Riyadh",
                  "type": "text"
                }
              ]
            }
          }
        },
        {
          "name": "SuperAdmin Update Admin Shop Profile",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/marketplace/superadmin/admins/{{adminId}}/shop-profile",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "marketplace",
                "superadmin",
                "admins",
                "{{adminId}}",
                "shop-profile"
              ]
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "shopName",
                  "value": "Superadmin Shop",
                  "type": "text"
                },
                {
                  "key": "shopDescription",
                  "value": "Updated by superadmin",
                  "type": "text"
                },
                {
                  "key": "shopLocation",
                  "value": "Riyadh",
                  "type": "text"
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Blocks",
      "item": [
        {
          "name": "Block User",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/blocks/{{targetUserId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 201', function () { pm.response.to.have.status(201); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Block Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/blocks/status/{{targetUserId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Unblock User",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/blocks/{{targetUserId}}/unblock"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Reports",
      "item": [
        {
          "name": "Report Post",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/reports",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "reports"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetType\": \"post\",\n  \"targetId\": \"{{postId}}\",\n  \"reason\": \"spam\",\n  \"details\": \"This content looks suspicious\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Request succeeded\", function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const value = json.item;",
                  "if (value) pm.environment.set(\"reportId\", value._id || value.id || value);"
                ]
              }
            }
          ]
        },
        {
          "name": "My Reports",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/reports/me?page=1&limit=20"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Superadmin Reports",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/reports/superadmin?status=open"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Status is 200', function () { pm.response.to.have.status(200); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Superadmin Update Report Status",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/reports/superadmin/{{reportId}}/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "reports",
                "superadmin",
                "{{reportId}}",
                "status"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"in_review\",\n  \"resolutionNote\": \"Under review\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Report Post - Fixed Reason",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/reports",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "reports"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetType\": \"post\",\n  \"targetId\": \"{{postId}}\",\n  \"reason\": \"{{reportReason}}\",\n  \"details\": \"Reported from Postman\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Report User And Block",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/reports",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "reports"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetType\": \"user\",\n  \"targetId\": \"{{targetUserId}}\",\n  \"reason\": \"harassment\",\n  \"details\": \"Unsafe interaction\",\n  \"blockTarget\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Request succeeded\", function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const value = json.item;",
                  "if (value) pm.environment.set(\"reportId\", value._id || value.id || value);"
                ]
              }
            }
          ]
        },
        {
          "name": "Report Comment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/reports",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "reports"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetType\": \"comment\",\n  \"targetId\": \"{{commentId}}\",\n  \"reason\": \"harassment\",\n  \"details\": \"Offensive comment\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"Request succeeded\", function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const value = json.item;",
                  "if (value) pm.environment.set(\"reportId\", value._id || value.id || value);"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Support",
      "item": [
        {
          "name": "Create Support Ticket",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/tickets",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "subject",
                  "value": "{{supportSubject}}",
                  "type": "text"
                },
                {
                  "key": "message",
                  "value": "{{supportMessage}}",
                  "type": "text"
                },
                {
                  "key": "category",
                  "value": "{{supportCategory}}",
                  "type": "text"
                },
                {
                  "key": "priority",
                  "value": "{{supportPriority}}",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const item = json.item || json.ticket || (json.items && json.items[0]);",
                  "if (item) pm.environment.set('supportTicketId', item._id || item.id);",
                  "pm.test('Ticket created', function () { const json = pm.response.json(); pm.expect(json.item).to.have.property('status', 'open'); });"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Support Ticket With Image",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/tickets",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "subject",
                  "value": "{{supportSubject}}",
                  "type": "text"
                },
                {
                  "key": "message",
                  "value": "{{supportMessage}}",
                  "type": "text"
                },
                {
                  "key": "category",
                  "value": "{{supportCategory}}",
                  "type": "text"
                },
                {
                  "key": "priority",
                  "value": "{{supportPriority}}",
                  "type": "text"
                },
                {
                  "key": "image",
                  "type": "file",
                  "src": "{{supportImagePath}}"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const item = json.item || json.ticket || (json.items && json.items[0]);",
                  "if (item) pm.environment.set('supportTicketId', item._id || item.id);",
                  "pm.test('Ticket created', function () { const json = pm.response.json(); pm.expect(json.item).to.have.property('status', 'open'); });"
                ]
              }
            }
          ]
        },
        {
          "name": "List My Support Tickets",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/tickets?page=1&limit=20&sortOrder={{listSortOrder}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "if (json.items && json.items[0]) pm.environment.set('supportTicketId', json.items[0]._id || json.items[0].id);",
                  "pm.expect(json.items).to.be.an('array');"
                ]
              }
            }
          ]
        },
        {
          "name": "Get My Support Ticket",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/tickets/{{supportTicketId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.ticket).to.exist;",
                  "pm.expect(json.messages).to.be.an('array');"
                ]
              }
            }
          ]
        },
        {
          "name": "Add Support Message",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/tickets/{{supportTicketId}}/messages",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "message",
                  "value": "{{supportMessage}}",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const item = json.item || (json.messages && json.messages[0]);",
                  "if (item) pm.environment.set('supportMessageId', item._id || item.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Add Support Message With Image",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/tickets/{{supportTicketId}}/messages",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "message",
                  "value": "{{supportMessage}}",
                  "type": "text"
                },
                {
                  "key": "image",
                  "type": "file",
                  "src": "{{supportImagePath}}"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const item = json.item || (json.messages && json.messages[0]);",
                  "if (item) pm.environment.set('supportMessageId', item._id || item.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Close My Support Ticket",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{accessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/tickets/{{supportTicketId}}/close"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.item).to.have.property('status', 'closed');"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin List Support Tickets",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/admin/tickets?page=1&limit=20&status={{supportStatus}}&category={{supportCategory}}&priority={{supportPriority}}&sortOrder={{listSortOrder}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "if (json.items && json.items[0]) pm.environment.set('supportTicketId', json.items[0]._id || json.items[0].id);",
                  "pm.expect(json.items).to.be.an('array');"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Get Support Ticket",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/admin/tickets/{{supportTicketId}}"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.ticket).to.exist;",
                  "pm.expect(json.ticket.user).to.exist;",
                  "pm.expect(json.messages).to.be.an('array');"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Reply To Ticket",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/admin/tickets/{{supportTicketId}}/messages",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "message",
                  "value": "{{supportReplyMessage}}",
                  "type": "text"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const item = json.item || (json.messages && json.messages[0]);",
                  "if (item) pm.environment.set('supportMessageId', item._id || item.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Reply With Image",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": "{{baseUrl}}/support/admin/tickets/{{supportTicketId}}/messages",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "message",
                  "value": "{{supportReplyMessage}}",
                  "type": "text"
                },
                {
                  "key": "image",
                  "type": "file",
                  "src": "{{supportImagePath}}"
                }
              ]
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "const item = json.item || (json.messages && json.messages[0]);",
                  "if (item) pm.environment.set('supportMessageId', item._id || item.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Update Support Ticket Status",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/support/admin/tickets/{{supportTicketId}}/status",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"{{supportStatus}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.item).to.have.property('status');"
                ]
              }
            }
          ]
        },
        {
          "name": "Admin Assign Support Ticket",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/support/admin/tickets/{{supportTicketId}}/assign",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"adminId\": \"{{supportAdminId}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('Request succeeded', function () { pm.expect(pm.response.code).to.be.oneOf([200, 201]); });",
                  "const json = pm.response.json();",
                  "pm.expect(json.item).to.exist;"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Health",
      "item": [
        {
          "name": "Health Check",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": []
            }
          }
        }
      ]
    },
    {
      "name": "Audit",
      "item": [
        {
          "name": "SuperAdmin Audit Logs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/audit/superadmin/logs?page=1&limit=20&action={{auditAction}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "audit",
                "superadmin",
                "logs"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                },
                {
                  "key": "action",
                  "value": "{{auditAction}}"
                }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "SuperAdmin",
      "item": [
        {
          "name": "Get SuperAdmin Session",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/session",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "session"
              ]
            }
          }
        },
        {
          "name": "Get SuperAdmin Overview",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/overview",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "overview"
              ]
            }
          }
        },
        {
          "name": "Get SuperAdmin Charts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/charts?range=30d",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "charts"
              ],
              "query": [
                {
                  "key": "range",
                  "value": "30d"
                }
              ]
            }
          }
        },
        {
          "name": "Get SuperAdmin Recent Activity",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/recent-activity?page=1&limit=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "recent-activity"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                }
              ]
            }
          }
        },
        {
          "name": "Get SuperAdmin Reports",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/reports?range=30d",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "reports"
              ],
              "query": [
                {
                  "key": "range",
                  "value": "30d"
                }
              ]
            }
          }
        },
        {
          "name": "Get SuperAdmin Ops",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/ops",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "ops"
              ]
            }
          }
        },
        {
          "name": "List SuperAdmin Cases",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/cases?page=1&limit=20&status=open",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "cases"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                },
                {
                  "key": "status",
                  "value": "open"
                }
              ]
            }
          }
        },
        {
          "name": "Create SuperAdmin Case",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/cases",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "cases"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Manual review\",\n  \"description\": \"Created from Postman\",\n  \"targetType\": \"post\",\n  \"targetId\": \"{{postId}}\",\n  \"priority\": \"medium\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Update SuperAdmin Case",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/cases/{{caseId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "cases",
                "{{caseId}}"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"in_review\",\n  \"resolutionNote\": \"Updated from Postman\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Perform SuperAdmin Bulk Action",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/bulk-actions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "bulk-actions"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"targetType\": \"post\",\n  \"targetIds\": [\n    \"{{bulkActionTargetId}}\"\n  ],\n  \"action\": \"flag\",\n  \"reason\": \"Bulk moderation from Postman\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get SuperAdmin Settings",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "settings"
              ]
            }
          }
        },
        {
          "name": "Get SuperAdmin Settings History",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/settings/history?page=1&limit=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "settings",
                "history"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1"
                },
                {
                  "key": "limit",
                  "value": "20"
                }
              ]
            }
          }
        },
        {
          "name": "Update SuperAdmin Settings",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "settings"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"maintenanceMode\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Restore SuperAdmin Settings Version",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/settings/history/{{historyId}}/restore",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "settings",
                "history",
                "{{historyId}}",
                "restore"
              ]
            }
          }
        },
        {
          "name": "Update Post Moderation Status",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/posts/{{postId}}/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "posts",
                "{{postId}}",
                "status"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"flagged\",\n  \"reason\": \"Needs review\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete Post By SuperAdmin",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/posts/{{postId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "posts",
                "{{postId}}"
              ]
            }
          }
        },
        {
          "name": "Restore Post By SuperAdmin",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/posts/{{postId}}/restore",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "posts",
                "{{postId}}",
                "restore"
              ]
            }
          }
        },
        {
          "name": "Update Comment Moderation Status",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/comments/{{commentId}}/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "comments",
                "{{commentId}}",
                "status"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"flagged\",\n  \"reason\": \"Needs review\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Delete Comment By SuperAdmin",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/comments/{{commentId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "comments",
                "{{commentId}}"
              ]
            }
          }
        },
        {
          "name": "Restore Comment By SuperAdmin",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/comments/{{commentId}}/restore",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "comments",
                "{{commentId}}",
                "restore"
              ]
            }
          }
        },
        {
          "name": "Update User Status By SuperAdmin",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{superAdminAccessToken}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/superadmin/users/{{userId}}/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "superadmin",
                "users",
                "{{userId}}",
                "status"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"isDisabled\": true,\n  \"reason\": \"Policy violation\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:4000/api/v1",
      "type": "string"
    },
    {
      "key": "accessToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "refreshToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "superAdminAccessToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "superAdminRefreshToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "targetAccessToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "targetRefreshToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "userId",
      "value": "",
      "type": "string"
    },
    {
      "key": "currentUserId",
      "value": "",
      "type": "string"
    },
    {
      "key": "targetUserId",
      "value": "",
      "type": "string"
    },
    {
      "key": "targetUsername",
      "value": "",
      "type": "string"
    },
    {
      "key": "lastFollowingState",
      "value": "",
      "type": "string"
    },
    {
      "key": "notificationUnreadCount",
      "value": "",
      "type": "string"
    },
    {
      "key": "notificationId",
      "value": "",
      "type": "string"
    },
    {
      "key": "postId",
      "value": "",
      "type": "string"
    },
    {
      "key": "ownPostId",
      "value": "",
      "type": "string"
    },
    {
      "key": "targetPostId",
      "value": "",
      "type": "string"
    },
    {
      "key": "adminPostId",
      "value": "",
      "type": "string"
    },
    {
      "key": "commentId",
      "value": "",
      "type": "string"
    },
    {
      "key": "ownCommentId",
      "value": "",
      "type": "string"
    },
    {
      "key": "replyCommentId",
      "value": "",
      "type": "string"
    },
    {
      "key": "conversationId",
      "value": "",
      "type": "string"
    },
    {
      "key": "messageId",
      "value": "",
      "type": "string"
    },
    {
      "key": "sessionJti",
      "value": "",
      "type": "string"
    },
    {
      "key": "registerEmail",
      "value": "",
      "type": "string"
    },
    {
      "key": "registerUsername",
      "value": "",
      "type": "string"
    },
    {
      "key": "adminUserId",
      "value": "",
      "type": "string"
    },
    {
      "key": "targetLoginEmail",
      "value": "",
      "type": "string"
    },
    {
      "key": "targetLoginPassword",
      "value": "",
      "type": "string"
    },
    {
      "key": "resetCode",
      "value": "",
      "type": "string"
    },
    {
      "key": "resetToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "emailVerificationCode",
      "value": "",
      "type": "string"
    },
    {
      "key": "googleIdToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "newPassword",
      "value": "NewStrongPass123!",
      "type": "string"
    },
    {
      "key": "feedCursor",
      "value": "",
      "type": "string"
    },
    {
      "key": "chatConversationsCursor",
      "value": "",
      "type": "string"
    },
    {
      "key": "chatMessagesCursor",
      "value": "",
      "type": "string"
    },
    {
      "key": "adminAccessToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "adminRefreshToken",
      "value": "",
      "type": "string"
    },
    {
      "key": "adminEmail",
      "value": "store_admin@example.com",
      "type": "string"
    },
    {
      "key": "adminUsername",
      "value": "store_admin_01",
      "type": "string"
    },
    {
      "key": "adminPassword",
      "value": "AdminStrongPass123!",
      "type": "string"
    },
    {
      "key": "usersQuery",
      "value": "user",
      "type": "string"
    },
    {
      "key": "usersVerified",
      "value": "true",
      "type": "string"
    },
    {
      "key": "usersSortBy",
      "value": "createdAt",
      "type": "string"
    },
    {
      "key": "listSortOrder",
      "value": "desc",
      "type": "string"
    },
    {
      "key": "commentSortBy",
      "value": "createdAt",
      "type": "string"
    },
    {
      "key": "postVisibility",
      "value": "public",
      "type": "string"
    },
    {
      "key": "postSortBy",
      "value": "createdAt",
      "type": "string"
    },
    {
      "key": "postTypeFilter",
      "value": "image",
      "type": "string"
    },
    {
      "key": "postSearchQuery",
      "value": "music",
      "type": "string"
    },
    {
      "key": "postHashtag",
      "value": "music",
      "type": "string"
    },
    {
      "key": "reelQuery",
      "value": "reel",
      "type": "string"
    },
    {
      "key": "notificationRead",
      "value": "false",
      "type": "string"
    },
    {
      "key": "notificationType",
      "value": "mention",
      "type": "string"
    },
    {
      "key": "notificationResourceType",
      "value": "post",
      "type": "string"
    },
    {
      "key": "feedPreferredPostType",
      "value": "video",
      "type": "string"
    },
    {
      "key": "feedIncludeSuggestions",
      "value": "true",
      "type": "string"
    },
    {
      "key": "feedSuggestionInterval",
      "value": "4",
      "type": "string"
    },
    {
      "key": "feedFollowingOnly",
      "value": "false",
      "type": "string"
    },
    {
      "key": "feedRadiusKm",
      "value": "30",
      "type": "string"
    },
    {
      "key": "homeFeedHasMixedItems",
      "value": "",
      "type": "string"
    },
    {
      "key": "lastViewCount",
      "value": "",
      "type": "string"
    },
    {
      "key": "lastPlayCount",
      "value": "",
      "type": "string"
    },
    {
      "key": "lastShareCount",
      "value": "",
      "type": "string"
    },
    {
      "key": "marketplaceQuery",
      "value": "oud",
      "type": "string"
    },
    {
      "key": "marketplaceMinPrice",
      "value": "1000",
      "type": "string"
    },
    {
      "key": "marketplaceMaxPrice",
      "value": "5000",
      "type": "string"
    },
    {
      "key": "marketplaceIsActive",
      "value": "true",
      "type": "string"
    },
    {
      "key": "marketplaceSortBy",
      "value": "price",
      "type": "string"
    },
    {
      "key": "repairShopQuery",
      "value": "riyadh",
      "type": "string"
    },
    {
      "key": "repairShopIsActive",
      "value": "true",
      "type": "string"
    },
    {
      "key": "repairShopSortBy",
      "value": "name",
      "type": "string"
    },
    {
      "key": "instrumentId",
      "value": "",
      "type": "string"
    },
    {
      "key": "repairShopId",
      "value": "",
      "type": "string"
    },
    {
      "key": "generatedMusicUrl",
      "value": "",
      "type": "string"
    },
    {
      "key": "aiMusicPrompt",
      "value": "Calm oud melody with light percussion and emotional Arabic mood",
      "type": "string"
    },
    {
      "key": "aiMusicDuration",
      "value": "12",
      "type": "string"
    },
    {
      "key": "aiMusicSeed",
      "value": "42",
      "type": "string"
    },
    {
      "key": "listingId",
      "value": "",
      "type": "string"
    },
    {
      "key": "marketplaceListingCategory",
      "value": "accessory",
      "type": "string"
    },
    {
      "key": "marketplaceCondition",
      "value": "used",
      "type": "string"
    },
    {
      "key": "marketplaceInstrumentType",
      "value": "oud",
      "type": "string"
    },
    {
      "key": "talentRole",
      "value": "instrumentalist",
      "type": "string"
    },
    {
      "key": "talentExperienceLevel",
      "value": "",
      "type": "string"
    },
    {
      "key": "usersHasAvatar",
      "value": "true",
      "type": "string"
    },
    {
      "key": "username",
      "value": "artist_one",
      "type": "string"
    },
    {
      "key": "reactionType",
      "value": "love",
      "type": "string"
    },
    {
      "key": "followRequestId",
      "value": "",
      "type": "string"
    },
    {
      "key": "reportId",
      "value": "",
      "type": "string"
    },
    {
      "key": "repostId",
      "value": "",
      "type": "string"
    },
    {
      "key": "quotePostId",
      "value": "",
      "type": "string"
    },
    {
      "key": "replyToMessageId",
      "value": ""
    },
    {
      "key": "mediaFilePath",
      "value": ""
    },
    {
      "key": "collaboratorId",
      "value": ""
    },
    {
      "key": "commentKeyword",
      "value": "spam"
    },
    {
      "key": "reportReason",
      "value": "spam"
    },
    {
      "key": "sessionId",
      "value": ""
    },
    {
      "key": "caseId",
      "value": ""
    },
    {
      "key": "historyId",
      "value": ""
    },
    {
      "key": "bulkActionTargetId",
      "value": ""
    },
    {
      "key": "auditAction",
      "value": ""
    },
    {
      "key": "searchQuery",
      "value": "music"
    },
    {
      "key": "searchType",
      "value": "all"
    },
    {
      "key": "searchLimit",
      "value": "20"
    },
    {
      "key": "searchSuggestionLimit",
      "value": "5"
    },
    {
      "key": "collaborationType",
      "value": "duet"
    },
    {
      "key": "collaborationMessage",
      "value": "I want to collaborate on this piece"
    },
    {
      "key": "collaborationAttachmentUrl",
      "value": ""
    },
    {
      "key": "collaborationAttachmentType",
      "value": "audio"
    },
    {
      "key": "supportTicketId",
      "value": ""
    },
    {
      "key": "supportMessageId",
      "value": ""
    },
    {
      "key": "supportSubject",
      "value": "????? ?? ????? ??? ??? MP3"
    },
    {
      "key": "supportMessage",
      "value": "????? ??? ????? ???? ?? ??? ??? ????"
    },
    {
      "key": "supportReplyMessage",
      "value": "?? ?????? ??????? ????? ??? ???????."
    },
    {
      "key": "supportCategory",
      "value": "technical"
    },
    {
      "key": "supportPriority",
      "value": "normal"
    },
    {
      "key": "supportStatus",
      "value": "in_progress"
    },
    {
      "key": "supportImagePath",
      "value": ""
    },
    {
      "key": "supportAdminId",
      "value": ""
    },
    {
      "key": "notificationCategory",
      "value": "interactions"
    },
    {
      "key": "socketBaseUrl",
      "value": "http://localhost:4000"
    },
    {
      "key": "chatSocketUrl",
      "value": "{{socketBaseUrl}}/chat"
    },
    {
      "key": "notificationsSocketUrl",
      "value": "{{socketBaseUrl}}/notifications"
    },
    {
      "key": "socketAccessToken",
      "value": "{{accessToken}}"
    },
    {
      "key": "aiArchivePage",
      "value": "1"
    },
    {
      "key": "aiArchiveLimit",
      "value": "20"
    },
    {
      "key": "aiArchiveItemId",
      "value": ""
    },
    {
      "key": "aiArchiveNewTitle",
      "value": "Renamed AI Music"
    },
    {
      "key": "aiArchiveShareContent",
      "value": "Shared from my AI music archive"
    }
  ]
}
