{"app":"ZoomBro backend","routes":{"GET /api/health":"Backend health check","POST /api/auth/register":"Register user (body: name, email, password)","POST /api/auth/login":"Login (body: email, password)","POST /api/auth/otp/send":"Send phone OTP (body: phone, flow=login|register)","POST /api/auth/otp/login":"Phone OTP login (body: phone, reqId, code)","POST /api/auth/otp/register":"Phone OTP registration (body: name, phone, reqId, code)","POST /api/auth/phone/send-otp":"Send OTP to verify phone (Bearer, body: phone)","POST /api/auth/phone/verify-otp":"Verify phone OTP (Bearer, body: phone, reqId, code)","GET /api/auth/google/redirect-config":"Google redirect sign-in config","GET /api/auth/google/start":"Start Google OAuth redirect","GET /api/auth/google/callback":"Google OAuth callback","POST /api/auth/google":"Google ID token login (body: credential)","GET /api/auth/me":"Current user (header: Authorization Bearer <token>)","POST /api/auth/forgot-password":"Password reset email","POST /api/auth/reset-password":"Complete reset with token + new password","POST /api/auth/verify-email":"Verify email with token","POST /api/auth/resend-verification":"Resend verification email","PATCH /api/auth/profile":"Update name/email (Bearer)","POST /api/auth/change-password":"Change password (Bearer)","POST /api/auth/avatar":"Upload avatar (Bearer, multipart)","DELETE /api/auth/avatar":"Delete avatar (Bearer)","GET /api/auth/carpool-provider-profile":"Saved driver/vehicle verification profile (Bearer)","PUT /api/auth/carpool-provider-profile":"Update saved verification profile (Bearer)","GET /api/users/:userId":"Public user profile (minimal, no auth)","GET /api/users/blocked":"List users you blocked (Bearer)","POST /api/users/:userId/block":"Block a user (Bearer)","DELETE /api/users/:userId/block":"Unblock a user (Bearer)","POST /api/carpool/reports":"Report a user/trip (Bearer)","GET /api/carpool/reports/mine":"List your submitted trust reports and outcomes (Bearer)","GET /api/admin/carpool/reports":"Admin: list user-submitted carpool reports","PATCH /api/admin/carpool/reports/:id":"Admin: update report status/notes","GET /api/admin/carpool/document-compliance":"Admin: rides with expiring/expired provider documents","POST /api/admin/carpool/document-compliance/sweep":"Admin: recompute document compliance on rides","GET /api/admin/feedback":"Admin: list in-app user feedback","GET /api/public/terms?type=carpooling":"Carpooling terms content (public)","GET /api/terms/by-type?type=Carpooling&status=active":"Carpooling terms (compat for VOIZE UI)","GET /api/agreements/check/:type":"Check if user accepted latest terms (Bearer)","POST /api/agreements":"Record terms acceptance (Bearer)","POST /api/rides":"Create a new ride (Bearer)","GET /api/rides":"List rides (Bearer)","POST /api/rides/request":"Create ride request (Bearer)","GET /api/rides/requests":"List user ride requests (Bearer)","GET /api/rides/bookings":"List user bookings (Bearer)","GET /api/rides/history":"Ride history (Bearer)","GET /api/notifications":"In-app notifications (Bearer)","PATCH /api/notifications/:id/read":"Mark notification read (Bearer)","POST /api/notifications/read-all":"Mark all notifications read (Bearer)","POST /api/feedback":"Submit in-app feedback (Bearer, multipart: category, message, pageUrl?, userAgent?, screenshot?)"}}