{"info":{"_postman_id":"2409b7c0-f536-45c0-a55b-8aed078b5654","name":"Visitor Pass Management (API)","description":"<html><head></head><body><p>This is the Visitor Pass Management API</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"49477121","collectionId":"2409b7c0-f536-45c0-a55b-8aed078b5654","publishedId":"2sBXitCSp4","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-04-10T20:20:34.000Z"},"item":[{"name":"Authentication (Staff)","item":[{"name":"Staff Register","id":"a704a64a-3b57-42ff-87e9-9a5b11e0dd6a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Admin 1\",\n  \"email\": \"admin1@gmail.com\",\n  \"password\": \"password123\",\n  \"role\": \"admin\"\n}"},"url":"http://localhost:5000/api/auth/register","description":"<p>New staff user: name, email, password, role (admin / employee / security).</p>\n","urlObject":{"path":["auth","register"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"bcf23d67-ab7a-40d6-9cf1-e49d7a73d589","name":"Staff Register","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Admin 1\",\n  \"email\": \"admin1@gmail.com\",\n  \"password\": \"password123\",\n  \"role\": \"admin\"\n}"},"url":"http://localhost:5000/api/auth/register"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"RateLimit-Policy","value":"10;w=900"},{"key":"RateLimit-Limit","value":"10"},{"key":"RateLimit-Remaining","value":"8"},{"key":"RateLimit-Reset","value":"877"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"141"},{"key":"ETag","value":"W/\"8d-udDXznXFrpqGn7WH+8zZETz4sWE\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:24:11 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Registered\",\n    \"user\": {\n        \"id\": \"69d94e5b89b7f8b581f0816c\",\n        \"name\": \"Admin 1\",\n        \"email\": \"admin1@gmail.com\",\n        \"role\": \"admin\",\n        \"visitorId\": null\n    }\n}"}],"_postman_id":"a704a64a-3b57-42ff-87e9-9a5b11e0dd6a"},{"name":"Staff Login","event":[{"listen":"test","script":{"type":"text/javascript","exec":["try {","  const json = pm.response.json();","  if(json && json.token){","    pm.collectionVariables.set('token', json.token);","  }","} catch (e) {}"],"id":"41258c2b-218a-450b-9228-17acc9e3e3dd"}}],"id":"d94c2768-d45e-44fd-b84f-e2ccfb48e5e8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"admin@gmail.com\",\n  \"password\": \"password123\"\n}"},"url":"http://localhost:5000/api/auth/login","description":"<p>Email + password → you will get a token for the next requests.</p>\n","urlObject":{"path":["auth","login"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"af631d60-8945-4b3c-8614-48c882174a1b","name":"Staff Login","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"admin@gmail.com\",\n  \"password\": \"password123\"\n}"},"url":"http://localhost:5000/api/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"RateLimit-Policy","value":"10;w=900"},{"key":"RateLimit-Limit","value":"10"},{"key":"RateLimit-Remaining","value":"7"},{"key":"RateLimit-Reset","value":"827"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"371"},{"key":"ETag","value":"W/\"173-gvrU9Az8NoOhd5MKKnNJL6aVA0g\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:25:02 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5ZDk0OGIxNTNmZDBjODg0MGUxMGMyNyIsIm5hbWUiOiJBZG1pbiBVc2VyIiwicm9sZSI6ImFkbWluIiwidmlzaXRvcklkIjpudWxsLCJpYXQiOjE3NzU4NDkxMDIsImV4cCI6MTc3NTkzNTUwMn0.g_Qv9Nd_P54rC_XRI5LIw2ymQMvVBpPzROXBeoeYo98\",\n    \"user\": {\n        \"id\": \"69d948b153fd0c8840e10c27\",\n        \"name\": \"Admin User\",\n        \"email\": \"admin@gmail.com\",\n        \"role\": \"admin\",\n        \"visitorId\": null\n    }\n}"}],"_postman_id":"d94c2768-d45e-44fd-b84f-e2ccfb48e5e8"},{"name":"Get Staff Users (admin)","id":"d542158b-d64a-49c1-b877-2ce23b713228","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/auth/users","description":"<p>For Admin only. Shows the list of staff accounts.</p>\n","urlObject":{"path":["auth","users"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"82c0de6e-68cd-47e9-887f-4ff2a09ffbe5","name":"Get Staff Users (admin)","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/auth/users"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"RateLimit-Policy","value":"10;w=900"},{"key":"RateLimit-Limit","value":"10"},{"key":"RateLimit-Remaining","value":"6"},{"key":"RateLimit-Reset","value":"731"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"634"},{"key":"ETag","value":"W/\"27a-zK+jGtY8/Iv3voAf28O67VNTZbY\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:26:37 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"_id\": \"69d94e5b89b7f8b581f0816c\",\n        \"name\": \"Admin 1\",\n        \"email\": \"admin1@gmail.com\",\n        \"phone\": \"\",\n        \"role\": \"admin\",\n        \"visitorId\": null,\n        \"isEmailVerified\": true,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"69d948b153fd0c8840e10c27\",\n        \"name\": \"Admin User\",\n        \"email\": \"admin@gmail.com\",\n        \"phone\": \"\",\n        \"role\": \"admin\",\n        \"visitorId\": null,\n        \"isEmailVerified\": true,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"69d948b153fd0c8840e10c29\",\n        \"name\": \"Staff Member\",\n        \"email\": \"staff@gmail.com\",\n        \"phone\": \"\",\n        \"role\": \"employee\",\n        \"visitorId\": null,\n        \"isEmailVerified\": true,\n        \"__v\": 0\n    },\n    {\n        \"_id\": \"69d948b153fd0c8840e10c2b\",\n        \"name\": \"Security Staff\",\n        \"email\": \"security@gmail.com\",\n        \"phone\": \"\",\n        \"role\": \"security\",\n        \"visitorId\": null,\n        \"isEmailVerified\": true,\n        \"__v\": 0\n    }\n]"}],"_postman_id":"d542158b-d64a-49c1-b877-2ce23b713228"},{"name":"Delete Staff User (admin)","id":"26c58070-6e87-416e-b825-6682f3bb2ae0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:5000/api/auth/users/{{user_id}}","description":"<p>For Admin only. Deletes staff user by their id in the URL.</p>\n","urlObject":{"path":["auth","users","{{user_id}}"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"bcfe20c1-a342-4a7f-ae5b-d7a8454e0a33","name":"Delete Staff User (admin)","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:5000/api/auth/users/{{user_id}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"RateLimit-Policy","value":"10;w=900"},{"key":"RateLimit-Limit","value":"10"},{"key":"RateLimit-Remaining","value":"5"},{"key":"RateLimit-Reset","value":"683"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"39"},{"key":"ETag","value":"W/\"27-27o4zzUjhHNmthTJyia4gBCjpos\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:27:26 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"User deleted successfully\"\n}"}],"_postman_id":"26c58070-6e87-416e-b825-6682f3bb2ae0"}],"id":"d38ca712-db4a-444b-9f3c-fd892ad233bb","description":"<p>Here you can sign up new staff or log in to get access. Admin can also see all staff or delete a staff account but (not themselves)</p>\n","_postman_id":"d38ca712-db4a-444b-9f3c-fd892ad233bb"},{"name":"Authentication (Visitor)","item":[{"name":"Visitor Register (self-service)","id":"242c7a7b-9849-4fc9-96db-41ef0cccb567","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"Test Visitor","type":"text"},{"key":"email","value":"testvisitor@example.com","type":"text"},{"key":"phone","value":"9999999999","type":"text"},{"key":"purpose","value":"Demo","type":"text"},{"key":"password","value":"password123","type":"text"},{"key":"photo","type":"file","value":""}]},"url":"http://localhost:5000/api/auth/visitor/register","description":"<p>Visitor fills name, email, phone, password, purpose, optional photo. OTP will be sent to email.</p>\n","urlObject":{"path":["auth","visitor","register"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"2e3ada61-0033-46c0-a685-623283f33cd3","name":"Visitor Register (self-service)","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"Test Visitor","type":"text"},{"key":"email","value":"mr.aman.kr2025@gmail.com","type":"text"},{"key":"phone","value":"9999999999","type":"text"},{"key":"purpose","value":"Demo","type":"text"},{"key":"password","value":"password123","type":"text"},{"key":"photo","type":"file","value":""}]},"url":"http://localhost:5000/api/auth/visitor/register"},"status":"Created","code":201,"_postman_previewlanguage":"","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"RateLimit-Policy","value":"10;w=900"},{"key":"RateLimit-Limit","value":"10"},{"key":"RateLimit-Remaining","value":"9"},{"key":"RateLimit-Reset","value":"900"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"60"},{"key":"ETag","value":"W/\"3c-MUxGuLFiE3h+bDlLGgaTIcs0kGk\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:40:08 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"message\": \"Registered. Please verify OTP from your email.\"\n}"}],"_postman_id":"242c7a7b-9849-4fc9-96db-41ef0cccb567"},{"name":"Visitor Verify OTP","id":"0ee94307-2523-4a64-b9d8-46314086c5dc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"mr.aman.kr2025@gmail.com\",\n  \"otp\": \"925262\"\n}"},"url":"http://localhost:5000/api/auth/visitor/verify-otp","description":"<p>Same email + the 6-digit code from the email.</p>\n","urlObject":{"path":["auth","visitor","verify-otp"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"ea532a6b-3380-41c5-8ff4-599de93892a4","name":"Visitor Verify OTP","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"mr.aman.kr2025@gmail.com\",\n  \"otp\": \"925262\"\n}"},"url":"http://localhost:5000/api/auth/visitor/verify-otp"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"RateLimit-Policy","value":"10;w=900"},{"key":"RateLimit-Limit","value":"10"},{"key":"RateLimit-Remaining","value":"4"},{"key":"RateLimit-Reset","value":"712"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"62"},{"key":"ETag","value":"W/\"3e-aqtWlR3ZBV/UnZj7iw8EqijHSzI\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:43:16 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Email verified successfully. You can log in now.\"\n}"}],"_postman_id":"0ee94307-2523-4a64-b9d8-46314086c5dc"},{"name":"Visitor Resend OTP","id":"6bf8c0d1-ee86-453c-9650-258ebd3aa656","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"testvisitor@example.com\"\n}"},"url":"http://localhost:5000/api/auth/visitor/resend-otp","description":"<p>Same email — ask again if OTP did not arrive.</p>\n","urlObject":{"path":["auth","visitor","resend-otp"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"a1fdfe55-1e79-4496-9d56-25ed6b2ff147","name":"Visitor Resend OTP","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"testvisitor@example.com\"\n}"},"url":"http://localhost:5000/api/auth/visitor/resend-otp"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"RateLimit-Policy","value":"10;w=900"},{"key":"RateLimit-Limit","value":"10"},{"key":"RateLimit-Remaining","value":"2"},{"key":"RateLimit-Reset","value":"631"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"52"},{"key":"ETag","value":"W/\"34-4pLHV/+VVAtvxZfZqhKs8cDLvxQ\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:44:38 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"A new OTP has been sent to your email.\"\n}"}],"_postman_id":"6bf8c0d1-ee86-453c-9650-258ebd3aa656"},{"name":"Visitor Login","event":[{"listen":"test","script":{"id":"b2ec825f-45e6-4405-b975-a767b7cd1615","exec":["try {","  const json = pm.response.json();","  if(json && json.token){","    pm.collectionVariables.set('visitor_token', json.token);","  }","  if(json && json.user && json.user.visitorId){","    pm.collectionVariables.set('visitor_id', json.user.visitorId);","  }","} catch (e) {}"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"181a470e-ad1b-4a80-a4d7-c8e929e9986e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"mr.aman.kr2025@gmail.com\",\n  \"password\": \"password123\"\n}"},"url":"http://localhost:5000/api/auth/visitor/login","description":"<p>Email + password (after OTP is verified) → visitor token for “My Pass”.</p>\n","urlObject":{"path":["auth","visitor","login"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"adcd612b-438f-498c-a000-e273375df2fe","name":"Visitor Login","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"mr.aman.kr2025@gmail.com\",\n  \"password\": \"password123\"\n}"},"url":"http://localhost:5000/api/auth/visitor/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"RateLimit-Policy","value":"10;w=900"},{"key":"RateLimit-Limit","value":"10"},{"key":"RateLimit-Remaining","value":"0"},{"key":"RateLimit-Reset","value":"582"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"441"},{"key":"ETag","value":"W/\"1b9-RiZbDbZ9FLkrSrqr7vyRHMqKAMk\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:45:26 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5ZDk1Mjk4ODliN2Y4YjU4MWYwODE5MiIsIm5hbWUiOiJUZXN0IFZpc2l0b3IiLCJyb2xlIjoidmlzaXRvciIsInZpc2l0b3JJZCI6IjY5ZDk1Mjk4ODliN2Y4YjU4MWYwODE5NSIsImlhdCI6MTc3NTg1MDMyNiwiZXhwIjoxNzc1OTM2NzI2fQ.xvXXAMB6Kp_DsEyzI9zX70mMMDDyh-TSHPHQDC8-t30\",\n    \"user\": {\n        \"id\": \"69d9529889b7f8b581f08192\",\n        \"name\": \"Test Visitor\",\n        \"email\": \"mr.aman.kr2025@gmail.com\",\n        \"role\": \"visitor\",\n        \"visitorId\": \"69d9529889b7f8b581f08195\"\n    }\n}"}],"_postman_id":"181a470e-ad1b-4a80-a4d7-c8e929e9986e"}],"id":"df6af6e4-0561-4ef2-b1df-73fa1c01f244","description":"<p>For outside visitors who use the app themselves. They register, get an OTP on email, verify it, then log in to see their digital pass.</p>\n","_postman_id":"df6af6e4-0561-4ef2-b1df-73fa1c01f244"},{"name":"Visitors","item":[{"name":"Visitor Pre-register (public)","id":"06173f2c-db73-49da-a0c0-31f671e03b1c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"Aman","type":"text"},{"key":"email","value":"aamankumarak594@gmail.com","type":"text"},{"key":"phone","value":"7367962921","type":"text"},{"key":"photo","type":"file","src":["","/C:/Users/lenovo/OneDrive/Pictures/aman.jpg"]}]},"url":"http://localhost:5000/api/visitors/preregister","description":"<p>No login. Name, email, phone, optional photo — starts as pending.</p>\n","urlObject":{"path":["visitors","preregister"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"263d3965-d5c0-42a1-a52c-2ad5e70c735a","name":"Visitor Pre-register (public)","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"Aman","type":"text"},{"key":"email","value":"aamankumarak594@gmail.com","type":"text"},{"key":"phone","value":"7367962921","type":"text"},{"key":"photo","type":"file","src":["","/C:/Users/lenovo/OneDrive/Pictures/aman.jpg"]}]},"url":"http://localhost:5000/api/visitors/preregister"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"431"},{"key":"ETag","value":"W/\"1af-mTwsZ3AaF9L7OYToBdW22D1siOM\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:29:06 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Pre-registration done\",\n    \"visitor\": {\n        \"userId\": null,\n        \"name\": \"Aman\",\n        \"phone\": \"7367962921\",\n        \"email\": \"aamankumarak594@gmail.com\",\n        \"purpose\": \"General Visit\",\n        \"photo\": \"1775849346159-aman.jpg\",\n        \"visitDate\": \"\",\n        \"visitTime\": \"\",\n        \"isScheduled\": false,\n        \"scheduledBy\": \"\",\n        \"status\": \"pending\",\n        \"passIssued\": false,\n        \"passIssuedBy\": \"\",\n        \"passFile\": \"\",\n        \"emailVerifiedAt\": null,\n        \"_id\": \"69d94f8289b7f8b581f08172\",\n        \"createdAt\": \"2026-04-10T19:29:06.193Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"06173f2c-db73-49da-a0c0-31f671e03b1c"},{"name":"Add Visitor (staff)","id":"3b71a719-891e-400f-a4b8-500bb9817737","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"New Visitor","type":"text"},{"key":"email","value":"newvisitor@example.com","type":"text"},{"key":"phone","value":"9111111111","type":"text"},{"key":"purpose","value":"Meeting","type":"text"},{"key":"photo","type":"file","value":""}]},"url":"http://localhost:5000/api/visitors","description":"<p>Logged-in employee/admin adds a visitor (form + optional photo).</p>\n","urlObject":{"path":["visitors"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"af709c6f-668e-4feb-a6d1-e3cc5015d774","name":"Add Visitor (staff)","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"New Visitor","type":"text"},{"key":"email","value":"newvisitor@example.com","type":"text"},{"key":"phone","value":"9111111111","type":"text"},{"key":"purpose","value":"Meeting","type":"text"},{"key":"photo","type":"file","value":""}]},"url":"http://localhost:5000/api/visitors"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"399"},{"key":"ETag","value":"W/\"18f-JAAjwqvyrfgB8+nIm2t3uknY1Vs\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:30:02 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Visitor added\",\n    \"visitor\": {\n        \"userId\": null,\n        \"name\": \"New Visitor\",\n        \"phone\": \"9111111111\",\n        \"email\": \"newvisitor@example.com\",\n        \"purpose\": \"Meeting\",\n        \"photo\": \"\",\n        \"visitDate\": \"\",\n        \"visitTime\": \"\",\n        \"isScheduled\": false,\n        \"scheduledBy\": \"\",\n        \"status\": \"pending\",\n        \"passIssued\": false,\n        \"passIssuedBy\": \"\",\n        \"passFile\": \"\",\n        \"emailVerifiedAt\": null,\n        \"_id\": \"69d94fba89b7f8b581f08174\",\n        \"createdAt\": \"2026-04-10T19:30:02.013Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"3b71a719-891e-400f-a4b8-500bb9817737"},{"name":"Get Visitors (search/filter)","id":"fa0833ad-25dc-4e1b-aa88-b15a9edde275","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/visitors?search={{search}}&status={{status}}","description":"<p>List with optional search (name) and status filter.</p>\n","urlObject":{"path":["visitors"],"host":["http://localhost:5000/api"],"query":[{"key":"search","value":"{{search}}"},{"key":"status","value":"{{status}}"}],"variable":[]}},"response":[{"id":"c7d9797e-0bdb-47e5-889d-f4f5d7691c41","name":"Get Visitors (search/filter)","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:5000/api/visitors?search={{search}}&status={{status}}","host":["http://localhost:5000/api"],"path":["visitors"],"query":[{"key":"search","value":"{{search}}"},{"key":"status","value":"{{status}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"543"},{"key":"ETag","value":"W/\"21f-sEcg2HES8ffGb3z3Ndf1dW4qPWU\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:31:45 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"visitors\": [\n        {\n            \"_id\": \"69d94f8289b7f8b581f08172\",\n            \"userId\": null,\n            \"name\": \"Aman\",\n            \"phone\": \"7367962921\",\n            \"email\": \"aamankumarak594@gmail.com\",\n            \"purpose\": \"General Visit\",\n            \"photo\": \"1775849346159-aman.jpg\",\n            \"visitDate\": \"\",\n            \"visitTime\": \"\",\n            \"isScheduled\": false,\n            \"scheduledBy\": \"\",\n            \"status\": \"pending\",\n            \"passIssued\": false,\n            \"passIssuedBy\": \"\",\n            \"passFile\": \"\",\n            \"emailVerifiedAt\": null,\n            \"createdAt\": \"2026-04-10T19:29:06.193Z\",\n            \"__v\": 0,\n            \"checkStatus\": \"not-visited\",\n            \"lastCheckIn\": null,\n            \"lastCheckOut\": null\n        }\n    ],\n    \"summary\": {\n        \"total\": 1,\n        \"pending\": 1,\n        \"approved\": 0,\n        \"checkedIn\": 0,\n        \"checkedOut\": 0\n    }\n}"}],"_postman_id":"fa0833ad-25dc-4e1b-aa88-b15a9edde275"},{"name":"Get Visitor By Id","id":"5580e600-eacf-406f-b083-a55f7401397e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/visitors/","description":"<p>visitor by <code>visitor_id</code> — full details + photo/pass links if they exist.</p>\n","urlObject":{"path":["visitors",""],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"e8ff4e2d-ce2e-4c71-a3fb-060a53aede52","name":"Get Visitor By Id","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/visitors/"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"471"},{"key":"ETag","value":"W/\"1d7-pNd6/uGGPxh8EIrnsV9+1SPJYdY\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:32:39 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"_id\": \"69d94f8289b7f8b581f08172\",\n    \"userId\": null,\n    \"name\": \"Aman\",\n    \"phone\": \"7367962921\",\n    \"email\": \"aamankumarak594@gmail.com\",\n    \"purpose\": \"General Visit\",\n    \"photo\": \"1775849346159-aman.jpg\",\n    \"visitDate\": \"\",\n    \"visitTime\": \"\",\n    \"isScheduled\": false,\n    \"scheduledBy\": \"\",\n    \"status\": \"pending\",\n    \"passIssued\": false,\n    \"passIssuedBy\": \"\",\n    \"passFile\": \"\",\n    \"emailVerifiedAt\": null,\n    \"createdAt\": \"2026-04-10T19:29:06.193Z\",\n    \"__v\": 0,\n    \"photoUrl\": \"http://localhost:5000/uploads/photos/1775849346159-aman.jpg\",\n    \"passUrl\": \"\"\n}"}],"_postman_id":"5580e600-eacf-406f-b083-a55f7401397e"}],"id":"229413e7-b402-4fa2-b2e1-f46a92a068d4","description":"<p>Everything about visitor records in the system: someone can pre-register without login, staff can add a visitor, you can list / search or open one visitor by id.</p>\n","_postman_id":"229413e7-b402-4fa2-b2e1-f46a92a068d4"},{"name":"Approve & Pass","item":[{"name":"Approve Visitor (employee/admin)","id":"9441993c-23b6-445c-b08f-fa57bad20b45","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PATCH","header":[],"url":"http://localhost:5000/api/visitors//approve","description":"<p>Visitor must be pending → becomes approved.</p>\n","urlObject":{"path":["visitors","","approve"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"7d29debf-f62d-44af-96d9-6a91ffdee2fe","name":"Approve Visitor (employee/admin)","originalRequest":{"method":"PATCH","header":[],"url":"http://localhost:5000/api/visitors//approve"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"507"},{"key":"ETag","value":"W/\"1fb-Pgz8aH09uucFS+hFJOP5B6nS8Jw\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:33:37 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Visitor approved\",\n    \"visitor\": {\n        \"_id\": \"69d94f8289b7f8b581f08172\",\n        \"userId\": null,\n        \"name\": \"Aman\",\n        \"phone\": \"7367962921\",\n        \"email\": \"aamankumarak594@gmail.com\",\n        \"purpose\": \"General Visit\",\n        \"photo\": \"1775849346159-aman.jpg\",\n        \"visitDate\": \"\",\n        \"visitTime\": \"\",\n        \"isScheduled\": false,\n        \"scheduledBy\": \"\",\n        \"status\": \"approved\",\n        \"passIssued\": false,\n        \"passIssuedBy\": \"\",\n        \"passFile\": \"\",\n        \"emailVerifiedAt\": null,\n        \"createdAt\": \"2026-04-10T19:29:06.193Z\",\n        \"__v\": 0,\n        \"approvedBy\": \"69d948b153fd0c8840e10c27\",\n        \"approvedAt\": \"2026-04-10T19:33:37.347Z\"\n    }\n}"}],"_postman_id":"9441993c-23b6-445c-b08f-fa57bad20b45"},{"name":"Reject Visitor (employee/admin)","id":"453a9d94-1940-4410-bb96-0f949dbac584","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PATCH","header":[],"url":"http://localhost:5000/api/visitors//reject","description":"<p>Visitor will be rejected .</p>\n","urlObject":{"path":["visitors","","reject"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"79efad14-744e-4693-9b27-1f6683a9a6ff","name":"Reject Visitor (employee/admin)","originalRequest":{"method":"PATCH","header":[],"url":"http://localhost:5000/api/visitors//reject"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"403"},{"key":"ETag","value":"W/\"193-FUod8KiJ1ZPxrkFa+tDlVkomffg\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:34:41 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Visitor rejected\",\n    \"visitor\": {\n        \"_id\": \"69d94fba89b7f8b581f08174\",\n        \"userId\": null,\n        \"name\": \"New Visitor\",\n        \"phone\": \"9111111111\",\n        \"email\": \"newvisitor@example.com\",\n        \"purpose\": \"Meeting\",\n        \"photo\": \"\",\n        \"visitDate\": \"\",\n        \"visitTime\": \"\",\n        \"isScheduled\": false,\n        \"scheduledBy\": \"\",\n        \"status\": \"rejected\",\n        \"passIssued\": false,\n        \"passIssuedBy\": \"\",\n        \"passFile\": \"\",\n        \"emailVerifiedAt\": null,\n        \"createdAt\": \"2026-04-10T19:30:02.013Z\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"453a9d94-1940-4410-bb96-0f949dbac584"},{"name":"Schedule Appointment (employee/admin)","id":"679c6181-44b6-4083-a6f1-fa6cfb4c8258","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"visitDate\": \"2026-05-20\",\n  \"visitTime\": \"11:30\"\n}"},"url":"http://localhost:5000/api/visitors//schedule","description":"<p>Only after approve. Send visitDate and visitTime (JSON). Needed before issuing pass.</p>\n","urlObject":{"path":["visitors","","schedule"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"5dd6a1e1-b90b-4269-9a89-ef7f04577b27","name":"Schedule Appointment (employee/admin)","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"visitDate\": \"2026-05-20\",\n  \"visitTime\": \"11:30\"\n}"},"url":"http://localhost:5000/api/visitors//schedule"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"591"},{"key":"ETag","value":"W/\"24f-iPzbURq/McMoudHWwQUrSiV7OBE\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:35:11 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Appointment scheduled\",\n    \"visitor\": {\n        \"_id\": \"69d94f8289b7f8b581f08172\",\n        \"userId\": null,\n        \"name\": \"Aman\",\n        \"phone\": \"7367962921\",\n        \"email\": \"aamankumarak594@gmail.com\",\n        \"purpose\": \"General Visit\",\n        \"photo\": \"1775849346159-aman.jpg\",\n        \"visitDate\": \"2026-05-20\",\n        \"visitTime\": \"11:30\",\n        \"isScheduled\": true,\n        \"scheduledBy\": \"69d948b153fd0c8840e10c27\",\n        \"status\": \"approved\",\n        \"passIssued\": false,\n        \"passIssuedBy\": \"\",\n        \"passFile\": \"\",\n        \"emailVerifiedAt\": null,\n        \"createdAt\": \"2026-04-10T19:29:06.193Z\",\n        \"__v\": 0,\n        \"approvedAt\": \"2026-04-10T19:33:37.347Z\",\n        \"approvedBy\": \"69d948b153fd0c8840e10c27\",\n        \"scheduledAt\": \"2026-04-10T19:35:11.135Z\"\n    }\n}"}],"_postman_id":"679c6181-44b6-4083-a6f1-fa6cfb4c8258"},{"name":"Issue Pass (security/admin)","id":"dacd4541-8968-4a84-8652-c7dd2b32d973","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PATCH","header":[],"url":"http://localhost:5000/api/visitors//issue-pass","description":"<p>Security/admin. Creates PDF + QR; may send email/SMS if configured.</p>\n","urlObject":{"path":["visitors","","issue-pass"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"4094e49d-a968-4f3a-bccf-b4e708564c6e","name":"Issue Pass (security/admin)","originalRequest":{"method":"PATCH","header":[],"url":"http://localhost:5000/api/visitors//issue-pass"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"692"},{"key":"ETag","value":"W/\"2b4-Xk98FElPEg4gTxQWUefnKzBRwjg\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:35:27 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Pass issued successfully\",\n    \"visitor\": {\n        \"_id\": \"69d94f8289b7f8b581f08172\",\n        \"userId\": null,\n        \"name\": \"Aman\",\n        \"phone\": \"7367962921\",\n        \"email\": \"aamankumarak594@gmail.com\",\n        \"purpose\": \"General Visit\",\n        \"photo\": \"1775849346159-aman.jpg\",\n        \"visitDate\": \"2026-05-20\",\n        \"visitTime\": \"11:30\",\n        \"isScheduled\": true,\n        \"scheduledBy\": \"69d948b153fd0c8840e10c27\",\n        \"status\": \"approved\",\n        \"passIssued\": true,\n        \"passIssuedBy\": \"69d948b153fd0c8840e10c27\",\n        \"passFile\": \"pass-69d94f8289b7f8b581f08172.pdf\",\n        \"emailVerifiedAt\": null,\n        \"createdAt\": \"2026-04-10T19:29:06.193Z\",\n        \"__v\": 0,\n        \"approvedAt\": \"2026-04-10T19:33:37.347Z\",\n        \"approvedBy\": \"69d948b153fd0c8840e10c27\",\n        \"scheduledAt\": \"2026-04-10T19:35:11.135Z\",\n        \"passIssuedAt\": \"2026-04-10T19:35:27.623Z\"\n    }\n}"}],"_postman_id":"dacd4541-8968-4a84-8652-c7dd2b32d973"}],"id":"019989ba-eefa-44a4-9b0b-ae7e51e34e1a","description":"<p>workflow: approve or reject the visit → set date and time → security creates the PDF pass with QR.</p>\n","_postman_id":"019989ba-eefa-44a4-9b0b-ae7e51e34e1a"},{"name":"Security & Report","item":[{"name":"Scan (checkin/checkout)","id":"dcf9f03b-621c-4089-be17-772498d79ca9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"visitorId\": \"\",\n  \"action\": \"checkin\"\n}"},"url":"http://localhost:5000/api/check/scan","description":"<p>Send visitorId (from QR) and action: <code>checkin</code> or <code>checkout</code>. Pass must already be issued.</p>\n","urlObject":{"path":["check","scan"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"0e799097-a483-4ce0-a41f-ca5753635860","name":"Scan (checkin/checkout)","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"visitorId\": \"\",\n  \"action\": \"checkin\"\n}"},"url":"http://localhost:5000/api/check/scan"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"33"},{"key":"ETag","value":"W/\"21-ByO7aqxK/Ahjqz9+q0Ay11X64qA\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:36:33 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Check-in successful\"\n}"}],"_postman_id":"dcf9f03b-621c-4089-be17-772498d79ca9"},{"name":"Export CSV (admin)","id":"761ac6a5-9d99-47b9-aaae-e8be659f2d65","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/visitors/export","description":"<p>Admin only. Downloads a CSV file of visitors for reports.</p>\n","urlObject":{"path":["visitors","export"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"c83ae66a-0e41-4b49-acbb-42cd8093fabd","name":"Export CSV (admin)","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/visitors/export"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"text/csv; charset=utf-8"},{"key":"Content-Disposition","value":"attachment; filename=\"visitor_report.csv\""},{"key":"Content-Length","value":"492"},{"key":"ETag","value":"W/\"1ec-GfGq8TmmgEI9w3qHaBVXSNlfFJk\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:36:02 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"Name,Email,Phone,Purpose,Status,VisitDate,VisitTime\n\"New Visitor\",\"newvisitor@example.com\",\"9111111111\",\"Meeting\",\"rejected\",\"\",\"\"\n\"Aman\",\"aamankumarak594@gmail.com\",\"7367962921\",\"General Visit\",\"approved\",\"2026-05-20\",\"11:30\"\n\"Arjun Patel\",\"arjun@example.com\",\"9988776655\",\"Vendor visit\",\"approved\",\"2026-04-11\",\"15:00\"\n\"Neha Singh\",\"neha@example.com\",\"9123456780\",\"Interview\",\"approved\",\"2026-04-10\",\"12:00\"\n\"Rahul Sharma\",\"rahul@example.com\",\"9876543210\",\"Project meeting\",\"pending\",\"\",\"\"\n"}],"_postman_id":"761ac6a5-9d99-47b9-aaae-e8be659f2d65"}],"id":"0c82b3e9-6b26-4cfa-9cbb-af8c921a22cb","description":"<p>Security uses scan at the gate. Admin can export a spreadsheet of all visitors.</p>\n","_postman_id":"0c82b3e9-6b26-4cfa-9cbb-af8c921a22cb"},{"name":"Pass","item":[{"name":"Pass Lookup by Email (staff)","id":"29e6cb4b-9cae-40e3-9485-d3ec64f95e50","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/pass/view?email={{pass_email}}","description":"<p>Staff: add email in query. Shows status, schedule, and PDF link if issued.</p>\n","urlObject":{"path":["pass","view"],"host":["http://localhost:5000/api"],"query":[{"key":"email","value":"{{pass_email}}"}],"variable":[]}},"response":[{"id":"d1d0b8b0-e6ee-4a3c-a606-70cd214b4389","name":"Pass Lookup by Email (staff)","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:5000/api/pass/view?email={{pass_email}}","host":["http://localhost:5000/api"],"path":["pass","view"],"query":[{"key":"email","value":"{{pass_email}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"388"},{"key":"ETag","value":"W/\"184-KR3W2DeloWD0EA2KiHT4KbOETNI\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:37:43 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"69d94f8289b7f8b581f08172\",\n    \"name\": \"Aman\",\n    \"email\": \"aamankumarak594@gmail.com\",\n    \"phone\": \"7367962921\",\n    \"purpose\": \"General Visit\",\n    \"status\": \"approved\",\n    \"isScheduled\": true,\n    \"visitDate\": \"2026-05-20\",\n    \"visitTime\": \"11:30\",\n    \"photoUrl\": \"http://localhost:5000/uploads/photos/1775849346159-aman.jpg\",\n    \"passUrl\": \"http://localhost:5000/uploads/passes/pass-69d94f8289b7f8b581f08172.pdf\",\n    \"passIssued\": true\n}"}],"_postman_id":"29e6cb4b-9cae-40e3-9485-d3ec64f95e50"},{"name":"My Pass (visitor)","id":"92975f1c-f68b-447b-97dc-8cdf8b28f470","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:5000/api/pass/my-pass","description":"<p>Visitor: use visitor token (from visitor login). Shows their pass info.</p>\n","urlObject":{"path":["pass","my-pass"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[{"id":"4a6b141a-5997-49cc-81c8-e6a6daf2be96","name":"My Pass (visitor)","originalRequest":{"method":"GET","header":[],"url":"http://localhost:5000/api/pass/my-pass"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"243"},{"key":"ETag","value":"W/\"f3-I19A0Lishp6oj4GG+KfVKJxrGlw\""},{"key":"Date","value":"Fri, 10 Apr 2026 19:45:50 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"69d9529889b7f8b581f08195\",\n    \"name\": \"Test Visitor\",\n    \"email\": \"mr.aman.kr2025@gmail.com\",\n    \"phone\": \"9999999999\",\n    \"purpose\": \"Demo\",\n    \"status\": \"pending\",\n    \"isScheduled\": false,\n    \"visitDate\": \"\",\n    \"visitTime\": \"\",\n    \"photoUrl\": \"\",\n    \"passUrl\": \"\",\n    \"passIssued\": false\n}"}],"_postman_id":"92975f1c-f68b-447b-97dc-8cdf8b28f470"}],"id":"5f592b57-3ae6-447b-be10-552eec8acac0","description":"<p>Staff can look up a pass by visitor email. Visitors use My Pass only with their visitor token.</p>\n","_postman_id":"5f592b57-3ae6-447b-be10-552eec8acac0"}],"event":[{"listen":"prerequest","script":{"id":"32baaa8c-adb2-447a-a15d-49ae07c32117","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"dd2607a3-b420-43d6-a444-ebb1c143b7b9","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"base_url","value":"http://localhost:5000/api"},{"key":"visitor_token","value":""},{"key":"visitor_id","value":""},{"key":"token","value":""}]}