{"openapi":"3.1.0","info":{"title":"Bharat Swasth Medical Report Analyzer","description":"Admin and User Management API for Medical Report Analysis Platform","version":"1.0.0"},"paths":{"/api/v1/auth/register":{"post":{"tags":["Authentication"],"summary":"Register","description":"User registration endpoint. Returns access token for auto-login.","operationId":"register_api_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["Authentication"],"summary":"Login","description":"User login endpoint.","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLogin"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["Authentication"],"summary":"Refresh","description":"Exchange a valid refresh token for a new access + refresh pair.\n\nThe presented refresh token is single-use: a new one is issued and the\nold one revoked. Reusing an already-revoked token revokes ALL of that\nuser's refresh tokens (suspected theft).","operationId":"refresh_api_v1_auth_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["Authentication"],"summary":"Logout","description":"User logout endpoint.\n\nIf the client sends its refresh token in the body, that token is revoked\nserver-side. Older clients without refresh tokens still log out cleanly.","operationId":"logout_api_v1_auth_logout_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/LogoutRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/me":{"get":{"tags":["Authentication"],"summary":"Get Current User Info","description":"Get current user information.","operationId":"get_current_user_info_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/verify-2fa":{"post":{"tags":["Authentication"],"summary":"Verify 2Fa Login","description":"Verify 2FA token during login.","operationId":"verify_2fa_login_api_v1_auth_verify_2fa_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/wa-connect":{"post":{"tags":["Authentication"],"summary":"Whatsapp Connect","description":"One-click WhatsApp account connection endpoint.\n\nValidates the token, finds or creates user by phone number,\nlinks WhatsApp user, and returns JWT for auto-login.","operationId":"whatsapp_connect_api_v1_auth_wa_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WAConnectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WAConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/google":{"post":{"tags":["Authentication"],"summary":"Google Auth","description":"Google OAuth sign-in/sign-up endpoint.\nVerifies Google ID token, finds or creates user, returns JWT.","operationId":"google_auth_api_v1_auth_google_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleAuthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleAuthResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/apple":{"post":{"tags":["Authentication"],"summary":"Apple Auth","description":"Apple Sign-In endpoint.\nVerifies Apple identity token, finds or creates user, returns JWT.\nApple only sends name/email on the FIRST sign-in — subsequent calls only send the sub (user ID).","operationId":"apple_auth_api_v1_auth_apple_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppleAuthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppleAuthResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/apple/notifications":{"post":{"tags":["Authentication"],"summary":"Apple Server Notifications","description":"Apple Sign in with Apple server-to-server notification endpoint.\nApple sends JWTs here when users:\n  - consent-revoked: User revoked Sign in with Apple for this app\n  - account-delete: User deleted their Apple Account\n  - email-disabled / email-enabled: User changed private email relay preferences\n\nRegister this URL in Apple Developer Portal:\n  https://bharatswasth.com/api/v1/auth/apple/notifications","operationId":"apple_server_notifications_api_v1_auth_apple_notifications_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/admin/auth/login":{"post":{"tags":["Admin Auth"],"summary":"Admin Login","description":"Admin login endpoint.","operationId":"admin_login_api_v1_admin_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLogin"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/auth/logout":{"post":{"tags":["Admin Auth"],"summary":"Admin Logout","description":"Admin logout endpoint.","operationId":"admin_logout_api_v1_admin_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/auth/me":{"get":{"tags":["Admin Auth"],"summary":"Get Current Admin Info","description":"Get current admin information.","operationId":"get_current_admin_info_api_v1_admin_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/dashboard/stats":{"get":{"tags":["Admin Dashboard"],"summary":"Get Dashboard Stats","description":"Get comprehensive dashboard statistics for admin panel.","operationId":"get_dashboard_stats_api_v1_admin_dashboard_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Dashboard Stats Api V1 Admin Dashboard Stats Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/dashboard/recent-activity":{"get":{"tags":["Admin Dashboard"],"summary":"Get Recent Activity","description":"Get recent admin activity logs.","operationId":"get_recent_activity_api_v1_admin_dashboard_recent_activity_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Number of activities to return","default":10,"title":"Limit"},"description":"Number of activities to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/dashboard/analytics/time-series":{"get":{"tags":["Admin Dashboard"],"summary":"Get Time Series Analytics","description":"Get time-series data for analytics charts.","operationId":"get_time_series_analytics_api_v1_admin_dashboard_analytics_time_series_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":7,"description":"Number of days to include","default":30,"title":"Days"},"description":"Number of days to include"},{"name":"metric","in":"query","required":false,"schema":{"type":"string","description":"Metric type: reports, users, chats","default":"reports","title":"Metric"},"description":"Metric type: reports, users, chats"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/list":{"get":{"tags":["Admin User Management"],"summary":"List Users","description":"Get paginated list of users with search and filtering capabilities.","operationId":"list_users_api_v1_admin_users_list_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search by name or email","title":"Search"},"description":"Search by name or email"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: active, inactive, verified, unverified","title":"Status"},"description":"Filter by status: active, inactive, verified, unverified"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort field: created_at, full_name, email, last_login","default":"created_at","title":"Sort By"},"description":"Sort field: created_at, full_name, email, last_login"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort order: asc, desc","default":"desc","title":"Sort Order"},"description":"Sort order: asc, desc"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter users created from this date","title":"Date From"},"description":"Filter users created from this date"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter users created to this date","title":"Date To"},"description":"Filter users created to this date"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}":{"get":{"tags":["Admin User Management"],"summary":"Get User Detail","description":"Get detailed information about a specific user.","operationId":"get_user_detail_api_v1_admin_users__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin User Management"],"summary":"Update User","description":"Update user information.","operationId":"update_user_api_v1_admin_users__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/suspend":{"post":{"tags":["Admin User Management"],"summary":"Suspend User","description":"Suspend/deactivate a user account.","operationId":"suspend_user_api_v1_admin_users__user_id__suspend_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"reason","in":"query","required":true,"schema":{"type":"string","description":"Reason for suspension","title":"Reason"},"description":"Reason for suspension"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/{user_id}/activate":{"post":{"tags":["Admin User Management"],"summary":"Activate User","description":"Activate/reactivate a user account.","operationId":"activate_user_api_v1_admin_users__user_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/users/export/csv":{"get":{"tags":["Admin User Management"],"summary":"Export Users Csv","description":"Export users data as CSV.","operationId":"export_users_csv_api_v1_admin_users_export_csv_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: active, inactive","title":"Status"},"description":"Filter by status: active, inactive"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Export users created from this date","title":"Date From"},"description":"Export users created from this date"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Export users created to this date","title":"Date To"},"description":"Export users created to this date"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/reports":{"get":{"tags":["Admin Data Management"],"summary":"List Reports","description":"Get paginated list of reports with filtering and search","operationId":"list_reports_api_v1_admin_data_reports_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"report_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Type"}},{"name":"is_flagged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flagged"}},{"name":"user_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","pattern":"^(created_at|updated_at|filename|status|file_size|processing_time_seconds)$","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","default":"desc","title":"Sort Order"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/reports/{report_id}":{"get":{"tags":["Admin Data Management"],"summary":"Get Report Detail","description":"Get detailed information about a specific report","operationId":"get_report_detail_api_v1_admin_data_reports__report_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin Data Management"],"summary":"Update Report","description":"Update report flags and admin notes","operationId":"update_report_api_v1_admin_data_reports__report_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin Data Management"],"summary":"Delete Report","description":"Delete a report (soft delete by default, permanent if specified)","operationId":"delete_report_api_v1_admin_data_reports__report_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"permanent","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Permanent"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/reports/bulk-delete":{"post":{"tags":["Admin Data Management"],"summary":"Bulk Delete Reports","description":"Bulk delete multiple reports","operationId":"bulk_delete_reports_api_v1_admin_data_reports_bulk_delete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/reports/{report_id}/reprocess":{"post":{"tags":["Admin Data Management"],"summary":"Reprocess Report","description":"Re-run OCR + analysis for an existing report.\n\nUsed by admins to recover reports that landed in a degraded state\n(empty summary, fallback marker, or outright failure) without forcing\nthe user to re-upload. The report row is reset to 'processing' and\nthe existing Celery task is re-queued against the same file path.","operationId":"reprocess_report_api_v1_admin_data_reports__report_id__reprocess_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/reports/stats":{"get":{"tags":["Admin Data Management"],"summary":"Get Report Stats","description":"Get report statistics for dashboard","operationId":"get_report_stats_api_v1_admin_data_reports_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/reports/export/json":{"get":{"tags":["Admin Data Management"],"summary":"Export Reports Json","description":"Export filtered reports to JSON format","operationId":"export_reports_json_api_v1_admin_data_reports_export_json_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"report_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Type"}},{"name":"user_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"}},{"name":"is_flagged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flagged"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}},{"name":"include_analysis","in":"query","required":false,"schema":{"type":"boolean","description":"Include full analysis results","default":false,"title":"Include Analysis"},"description":"Include full analysis results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/reports/export/csv":{"get":{"tags":["Admin Data Management"],"summary":"Export Reports Csv","description":"Export filtered reports to CSV format","operationId":"export_reports_csv_api_v1_admin_data_reports_export_csv_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"report_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Type"}},{"name":"user_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"}},{"name":"is_flagged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flagged"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/chats":{"get":{"tags":["Admin Data Management"],"summary":"List Chats","description":"Get paginated list of chat conversations with filtering","operationId":"list_chats_api_v1_admin_data_chats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"user_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"}},{"name":"report_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"}},{"name":"is_flagged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flagged"}},{"name":"has_feedback","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Feedback"}},{"name":"ai_model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ai Model"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","pattern":"^(created_at|updated_at|processing_time_seconds|tokens_used)$","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","default":"desc","title":"Sort Order"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/chats/{chat_id}":{"get":{"tags":["Admin Data Management"],"summary":"Get Chat Detail","description":"Get detailed information about a specific chat","operationId":"get_chat_detail_api_v1_admin_data_chats__chat_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"integer","title":"Chat Id"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin Data Management"],"summary":"Moderate Chat","description":"Moderate a chat conversation (flag/unflag, add notes)","operationId":"moderate_chat_api_v1_admin_data_chats__chat_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"integer","title":"Chat Id"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatModerationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin Data Management"],"summary":"Delete Chat","description":"Delete a chat conversation","operationId":"delete_chat_api_v1_admin_data_chats__chat_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"integer","title":"Chat Id"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/chats/bulk-delete":{"post":{"tags":["Admin Data Management"],"summary":"Bulk Delete Chats","description":"Bulk delete multiple chat conversations","operationId":"bulk_delete_chats_api_v1_admin_data_chats_bulk_delete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkChatDeleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/chats/by-report/{report_id}":{"get":{"tags":["Admin Data Management"],"summary":"Get Chats By Report","description":"Get all chats for a specific report","operationId":"get_chats_by_report_api_v1_admin_data_chats_by_report__report_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/chats/stats":{"get":{"tags":["Admin Data Management"],"summary":"Get Chat Stats","description":"Get chat statistics for dashboard","operationId":"get_chat_stats_api_v1_admin_data_chats_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_fn","in":"query","required":false,"schema":{"title":"Endpoint Fn"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/data/chats/export/csv":{"get":{"tags":["Admin Data Management"],"summary":"Export Chats Csv","description":"Export filtered chats to CSV format","operationId":"export_chats_csv_api_v1_admin_data_chats_export_csv_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"}},{"name":"report_filename","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Filename"}},{"name":"is_flagged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flagged"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}},{"name":"ai_model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ai Model"}},{"name":"user_feedback","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Feedback"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/audit/logs":{"get":{"tags":["Admin Audit"],"summary":"Get Audit Logs","description":"Get audit logs with filtering and pagination","operationId":"get_audit_logs_api_v1_admin_audit_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Per Page"}},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"}},{"name":"admin_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Email"}},{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"}},{"name":"success","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/audit/logs/{log_id}":{"get":{"tags":["Admin Audit"],"summary":"Get Audit Log","description":"Get a specific audit log by ID","operationId":"get_audit_log_api_v1_admin_audit_logs__log_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"log_id","in":"path","required":true,"schema":{"type":"integer","title":"Log Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/audit/logs/export/csv":{"get":{"tags":["Admin Audit"],"summary":"Export Audit Logs Csv","description":"Export audit logs to CSV","operationId":"export_audit_logs_csv_api_v1_admin_audit_logs_export_csv_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"}},{"name":"admin_email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Email"}},{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"}},{"name":"success","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"End Date"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/audit/actions":{"get":{"tags":["Admin Audit"],"summary":"Get Audit Actions","description":"Get list of all possible audit actions","operationId":"get_audit_actions_api_v1_admin_audit_actions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/audit/resource-types":{"get":{"tags":["Admin Audit"],"summary":"Get Resource Types","description":"Get list of all resource types in audit logs","operationId":"get_resource_types_api_v1_admin_audit_resource_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/audit/stats":{"get":{"tags":["Admin Audit"],"summary":"Get Audit Stats","description":"Get audit log statistics for the last N days","operationId":"get_audit_stats_api_v1_admin_audit_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/export/bulk-export":{"post":{"tags":["Admin Export"],"summary":"Bulk Export Data","description":"Export multiple data types in a single ZIP file","operationId":"bulk_export_data_api_v1_admin_export_bulk_export_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkExportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/export/export-options":{"get":{"tags":["Admin Export"],"summary":"Get Export Options","description":"Get available export options and data counts","operationId":"get_export_options_api_v1_admin_export_export_options_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/moderation/queue/stats":{"get":{"tags":["Admin Moderation"],"summary":"Get Moderation Stats","description":"Get moderation queue statistics","operationId":"get_moderation_stats_api_v1_admin_moderation_queue_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationQueueStats"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/moderation/queue":{"get":{"tags":["Admin Moderation"],"summary":"Get Moderation Queue","description":"Get flagged content for moderation","operationId":"get_moderation_queue_api_v1_admin_moderation_queue_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}],"title":"Content Type"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FlaggedContentItem"},"title":"Response Get Moderation Queue Api V1 Admin Moderation Queue Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/moderation/content/{content_type}/{content_id}":{"get":{"tags":["Admin Moderation"],"summary":"Get Content Detail","description":"Get detailed view of flagged content","operationId":"get_content_detail_api_v1_admin_moderation_content__content_type___content_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ContentType"}},{"name":"content_id","in":"path","required":true,"schema":{"type":"integer","title":"Content Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/moderation/content/{content_type}/{content_id}/moderate":{"post":{"tags":["Admin Moderation"],"summary":"Moderate Content","description":"Take moderation action on content","operationId":"moderate_content_api_v1_admin_moderation_content__content_type___content_id__moderate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ContentType"}},{"name":"content_id","in":"path","required":true,"schema":{"type":"integer","title":"Content Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationActionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/moderation/content/{content_type}/bulk-moderate":{"post":{"tags":["Admin Moderation"],"summary":"Bulk Moderate Content","description":"Bulk moderation action on multiple content items","operationId":"bulk_moderate_content_api_v1_admin_moderation_content__content_type__bulk_moderate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"content_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ContentType"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkModerationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/settings/":{"get":{"tags":["Admin Settings"],"summary":"Get All Settings","description":"Get all system settings","operationId":"get_all_settings_api_v1_admin_settings__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SettingCategory"},{"type":"null"}],"title":"Category"}},{"name":"include_sensitive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Sensitive"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SettingResponse"},"title":"Response Get All Settings Api V1 Admin Settings  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/settings/{setting_key}":{"get":{"tags":["Admin Settings"],"summary":"Get Setting","description":"Get a specific setting","operationId":"get_setting_api_v1_admin_settings__setting_key__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"setting_key","in":"path","required":true,"schema":{"type":"string","title":"Setting Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin Settings"],"summary":"Update Setting","description":"Update a system setting","operationId":"update_setting_api_v1_admin_settings__setting_key__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"setting_key","in":"path","required":true,"schema":{"type":"string","title":"Setting Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/settings/initialize":{"post":{"tags":["Admin Settings"],"summary":"Initialize Default Settings","description":"Initialize default system settings","operationId":"initialize_default_settings_api_v1_admin_settings_initialize_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/settings/maintenance-mode":{"post":{"tags":["Admin Settings"],"summary":"Toggle Maintenance Mode","description":"Toggle system maintenance mode","operationId":"toggle_maintenance_mode_api_v1_admin_settings_maintenance_mode_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceModeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/settings/status/system":{"get":{"tags":["Admin Settings"],"summary":"Get System Status","description":"Get system status overview","operationId":"get_system_status_api_v1_admin_settings_status_system_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/settings/categories":{"get":{"tags":["Admin Settings"],"summary":"Get Setting Categories","description":"Get all available setting categories","operationId":"get_setting_categories_api_v1_admin_settings_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response Get Setting Categories Api V1 Admin Settings Categories Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/admins":{"get":{"tags":["Admin Management"],"summary":"List Admins","description":"Get paginated list of admin users.","operationId":"list_admins_api_v1_admin_admins_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search by name, username, or email","title":"Search"},"description":"Search by name, username, or email"},{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by role","title":"Role"},"description":"Filter by role"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: active, inactive","title":"Status"},"description":"Filter by status: active, inactive"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort field","default":"created_at","title":"Sort By"},"description":"Sort field"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort order: asc, desc","default":"desc","title":"Sort Order"},"description":"Sort order: asc, desc"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin Management"],"summary":"Create Admin","description":"Create a new admin user. Only super_admin can create admins.","operationId":"create_admin_api_v1_admin_admins_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admins/{admin_id}":{"get":{"tags":["Admin Management"],"summary":"Get Admin Detail","description":"Get details of a specific admin user.","operationId":"get_admin_detail_api_v1_admin_admins__admin_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"admin_id","in":"path","required":true,"schema":{"type":"integer","title":"Admin Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Admin Management"],"summary":"Update Admin","description":"Update an admin user's details.","operationId":"update_admin_api_v1_admin_admins__admin_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"admin_id","in":"path","required":true,"schema":{"type":"integer","title":"Admin Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin Management"],"summary":"Delete Admin","description":"Delete an admin user. Only super_admin can delete admins.","operationId":"delete_admin_api_v1_admin_admins__admin_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"admin_id","in":"path","required":true,"schema":{"type":"integer","title":"Admin Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admins/{admin_id}/role":{"put":{"tags":["Admin Management"],"summary":"Change Admin Role","description":"Change an admin user's role. Only super_admin can change roles.","operationId":"change_admin_role_api_v1_admin_admins__admin_id__role_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"admin_id","in":"path","required":true,"schema":{"type":"integer","title":"Admin Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminRoleChangeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admins/{admin_id}/activate":{"post":{"tags":["Admin Management"],"summary":"Activate Admin","description":"Activate an admin user.","operationId":"activate_admin_api_v1_admin_admins__admin_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"admin_id","in":"path","required":true,"schema":{"type":"integer","title":"Admin Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admins/{admin_id}/deactivate":{"post":{"tags":["Admin Management"],"summary":"Deactivate Admin","description":"Deactivate an admin user.","operationId":"deactivate_admin_api_v1_admin_admins__admin_id__deactivate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"admin_id","in":"path","required":true,"schema":{"type":"integer","title":"Admin Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/admins/roles/list":{"get":{"tags":["Admin Management"],"summary":"List Roles","description":"Get list of available admin roles.","operationId":"list_roles_api_v1_admin_admins_roles_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/feedback":{"get":{"tags":["Admin Feedback"],"summary":"List Feedback","description":"Get paginated list of feedback with filters.","operationId":"list_feedback_api_v1_admin_feedback_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Limit"},"description":"Items per page"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search in message or response","title":"Search"},"description":"Search in message or response"},{"name":"feedback_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type: accuracy, usability, feature_request, bug_report","title":"Feedback Type"},"description":"Filter by type: accuracy, usability, feature_request, bug_report"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: open, in_progress, resolved, closed","title":"Status"},"description":"Filter by status: open, in_progress, resolved, closed"},{"name":"rating","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":5,"minimum":1},{"type":"null"}],"description":"Filter by rating","title":"Rating"},"description":"Filter by rating"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort field","default":"created_at","title":"Sort By"},"description":"Sort field"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort order: asc, desc","default":"desc","title":"Sort Order"},"description":"Sort order: asc, desc"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter from date","title":"Date From"},"description":"Filter from date"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter to date","title":"Date To"},"description":"Filter to date"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feedback/stats":{"get":{"tags":["Admin Feedback"],"summary":"Get Feedback Stats","description":"Get feedback statistics.","operationId":"get_feedback_stats_api_v1_admin_feedback_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackStatsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/feedback/{feedback_id}":{"get":{"tags":["Admin Feedback"],"summary":"Get Feedback Detail","description":"Get details of a specific feedback.","operationId":"get_feedback_detail_api_v1_admin_feedback__feedback_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"feedback_id","in":"path","required":true,"schema":{"type":"integer","title":"Feedback Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin Feedback"],"summary":"Delete Feedback","description":"Delete a feedback item.","operationId":"delete_feedback_api_v1_admin_feedback__feedback_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"feedback_id","in":"path","required":true,"schema":{"type":"integer","title":"Feedback Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feedback/{feedback_id}/respond":{"put":{"tags":["Admin Feedback"],"summary":"Respond To Feedback","description":"Respond to a feedback item.","operationId":"respond_to_feedback_api_v1_admin_feedback__feedback_id__respond_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"feedback_id","in":"path","required":true,"schema":{"type":"integer","title":"Feedback Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackRespondRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feedback/{feedback_id}/status":{"put":{"tags":["Admin Feedback"],"summary":"Update Feedback Status","description":"Update the status of a feedback item.","operationId":"update_feedback_status_api_v1_admin_feedback__feedback_id__status_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"feedback_id","in":"path","required":true,"schema":{"type":"integer","title":"Feedback Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackStatusRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/feedback/types/list":{"get":{"tags":["Admin Feedback"],"summary":"List Feedback Types","description":"Get list of available feedback types.","operationId":"list_feedback_types_api_v1_admin_feedback_types_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/training/stats":{"get":{"tags":["Admin Training Data"],"summary":"Get Training Data Stats","description":"Get aggregate training data statistics.","operationId":"get_training_data_stats_api_v1_admin_training_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/training":{"get":{"tags":["Admin Training Data"],"summary":"List Training Data","description":"Paginated list of training data entries with filters.","operationId":"list_training_data_api_v1_admin_training_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"is_verified","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"}},{"name":"min_quality_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":1,"minimum":0},{"type":"null"}],"title":"Min Quality Score"}},{"name":"ai_provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ai Provider"}},{"name":"document_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Type"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"}},{"name":"is_used_for_training","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Used For Training"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/training/{entry_id}":{"get":{"tags":["Admin Training Data"],"summary":"Get Training Entry","description":"Get full detail of a training data entry.","operationId":"get_training_entry_api_v1_admin_training__entry_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"integer","title":"Entry Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/training/{entry_id}/verify":{"put":{"tags":["Admin Training Data"],"summary":"Verify Training Entry","description":"Admin verify or reject a training data entry.","operationId":"verify_training_entry_api_v1_admin_training__entry_id__verify_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"integer","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingDataVerification"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/training/bulk-verify":{"post":{"tags":["Admin Training Data"],"summary":"Bulk Verify","description":"Bulk verify or reject training entries.","operationId":"bulk_verify_api_v1_admin_training_bulk_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkVerification"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/training/export/alpaca":{"get":{"tags":["Admin Training Data"],"summary":"Export Alpaca Json","description":"Export training data in Alpaca JSON format for fine-tuning.","operationId":"export_alpaca_json_api_v1_admin_training_export_alpaca_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verified_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Verified Only"}},{"name":"min_quality_score","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0,"default":0.7,"title":"Min Quality Score"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"}},{"name":"batch_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/training/export/jsonl":{"get":{"tags":["Admin Training Data"],"summary":"Export Jsonl","description":"Export training data as JSONL (one JSON object per line).","operationId":"export_jsonl_api_v1_admin_training_export_jsonl_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verified_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Verified Only"}},{"name":"min_quality_score","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0,"default":0.7,"title":"Min Quality Score"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/training/batch/create":{"post":{"tags":["Admin Training Data"],"summary":"Create Batch","description":"Create a new training batch from eligible entries.","operationId":"create_batch_api_v1_admin_training_batch_create_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"min_quality","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0,"default":0.7,"title":"Min Quality"}},{"name":"verified_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Verified Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/training/batch/{batch_id}":{"get":{"tags":["Admin Training Data"],"summary":"Get Batch","description":"Get batch statistics.","operationId":"get_batch_api_v1_admin_training_batch__batch_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string","title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/training/quality/report":{"get":{"tags":["Admin Training Data"],"summary":"Quality Report","description":"Overall data quality report with training readiness status.","operationId":"quality_report_api_v1_admin_training_quality_report_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/training/comparisons/summary":{"get":{"tags":["Admin Training Data"],"summary":"Comparison Summary","description":"A/B test aggregate stats grouped by provider.","operationId":"comparison_summary_api_v1_admin_training_comparisons_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/training/export/alpaca-v2":{"get":{"tags":["Admin Training Data"],"summary":"Export Alpaca V2","description":"Export training data in personalized Alpaca v2 format with user context.","operationId":"export_alpaca_v2_api_v1_admin_training_export_alpaca_v2_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"verified_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Verified Only"}},{"name":"min_quality_score","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0,"default":0.7,"title":"Min Quality Score"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"}},{"name":"batch_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Batch Id"}},{"name":"with_context_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"With Context Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/training/v2-stats":{"get":{"tags":["Admin Training Data"],"summary":"Get V2 Stats","description":"Get v2 training data statistics (user context coverage, readiness).","operationId":"get_v2_stats_api_v1_admin_training_v2_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/monitoring/status":{"get":{"tags":["Admin Monitoring"],"summary":"Get System Status","description":"Live system health: queue depths, error rate, disk usage.","operationId":"get_system_status_api_v1_admin_monitoring_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/monitoring/alerts/history":{"get":{"tags":["Admin Monitoring"],"summary":"Get Alert History","description":"Get most recent cached health check result.","operationId":"get_alert_history_api_v1_admin_monitoring_alerts_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/reference-data/stats":{"get":{"tags":["Admin Reference Data"],"summary":"Get Reference Data Stats","description":"Get record counts and last updated timestamps for all reference tables.","operationId":"get_reference_data_stats_api_v1_admin_reference_data_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReferenceDataStatsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/reference-data/foods":{"get":{"tags":["Admin Reference Data"],"summary":"List Foods","description":"List Indian foods with filters.","operationId":"list_foods_api_v1_admin_reference_data_foods_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"diet_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Diet Type"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin Reference Data"],"summary":"Create Food","description":"Create a new Indian food entry.","operationId":"create_food_api_v1_admin_reference_data_foods_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndianFoodCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndianFoodResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/foods/{food_id}":{"put":{"tags":["Admin Reference Data"],"summary":"Update Food","description":"Update an Indian food entry.","operationId":"update_food_api_v1_admin_reference_data_foods__food_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"food_id","in":"path","required":true,"schema":{"type":"integer","title":"Food Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndianFoodUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndianFoodResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin Reference Data"],"summary":"Delete Food","description":"Soft-delete an Indian food entry.","operationId":"delete_food_api_v1_admin_reference_data_foods__food_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"food_id","in":"path","required":true,"schema":{"type":"integer","title":"Food Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/lab-chains":{"get":{"tags":["Admin Reference Data"],"summary":"List Lab Chains","description":"List lab chains.","operationId":"list_lab_chains_api_v1_admin_reference_data_lab_chains_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin Reference Data"],"summary":"Create Lab Chain","operationId":"create_lab_chain_api_v1_admin_reference_data_lab_chains_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabChainCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabChainResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/lab-chains/{lab_id}":{"put":{"tags":["Admin Reference Data"],"summary":"Update Lab Chain","operationId":"update_lab_chain_api_v1_admin_reference_data_lab_chains__lab_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lab_id","in":"path","required":true,"schema":{"type":"integer","title":"Lab Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabChainUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabChainResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin Reference Data"],"summary":"Delete Lab Chain","operationId":"delete_lab_chain_api_v1_admin_reference_data_lab_chains__lab_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lab_id","in":"path","required":true,"schema":{"type":"integer","title":"Lab Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/test-prices":{"get":{"tags":["Admin Reference Data"],"summary":"List Test Prices","description":"List test prices with filters.","operationId":"list_test_prices_api_v1_admin_reference_data_test_prices_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin Reference Data"],"summary":"Create Test Price","operationId":"create_test_price_api_v1_admin_reference_data_test_prices_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestPriceCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestPriceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/test-prices/{price_id}":{"put":{"tags":["Admin Reference Data"],"summary":"Update Test Price","operationId":"update_test_price_api_v1_admin_reference_data_test_prices__price_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"price_id","in":"path","required":true,"schema":{"type":"integer","title":"Price Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestPriceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestPriceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin Reference Data"],"summary":"Delete Test Price","operationId":"delete_test_price_api_v1_admin_reference_data_test_prices__price_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"price_id","in":"path","required":true,"schema":{"type":"integer","title":"Price Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/consultations":{"get":{"tags":["Admin Reference Data"],"summary":"List Consultations","description":"List consultation costs.","operationId":"list_consultations_api_v1_admin_reference_data_consultations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin Reference Data"],"summary":"Create Consultation","operationId":"create_consultation_api_v1_admin_reference_data_consultations_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsultationCostCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsultationCostResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/consultations/{cost_id}":{"put":{"tags":["Admin Reference Data"],"summary":"Update Consultation","operationId":"update_consultation_api_v1_admin_reference_data_consultations__cost_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cost_id","in":"path","required":true,"schema":{"type":"integer","title":"Cost Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsultationCostUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsultationCostResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin Reference Data"],"summary":"Delete Consultation","operationId":"delete_consultation_api_v1_admin_reference_data_consultations__cost_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"cost_id","in":"path","required":true,"schema":{"type":"integer","title":"Cost Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/drug-interactions":{"get":{"tags":["Admin Reference Data"],"summary":"List Drug Interactions","description":"List drug interactions with filters.","operationId":"list_drug_interactions_api_v1_admin_reference_data_drug_interactions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Admin Reference Data"],"summary":"Create Drug Interaction","operationId":"create_drug_interaction_api_v1_admin_reference_data_drug_interactions_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrugInteractionCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrugInteractionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/drug-interactions/{interaction_id}":{"put":{"tags":["Admin Reference Data"],"summary":"Update Drug Interaction","operationId":"update_drug_interaction_api_v1_admin_reference_data_drug_interactions__interaction_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"interaction_id","in":"path","required":true,"schema":{"type":"integer","title":"Interaction Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrugInteractionUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrugInteractionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin Reference Data"],"summary":"Delete Drug Interaction","operationId":"delete_drug_interaction_api_v1_admin_reference_data_drug_interactions__interaction_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"interaction_id","in":"path","required":true,"schema":{"type":"integer","title":"Interaction Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/reference-data/seed":{"post":{"tags":["Admin Reference Data"],"summary":"Seed From Json","description":"Re-import reference data from JSON files. Skips existing records.","operationId":"seed_from_json_api_v1_admin_reference_data_seed_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/whatsapp/stats":{"get":{"tags":["Admin WhatsApp Analytics"],"summary":"Get Whatsapp Stats","description":"Comprehensive WhatsApp analytics for admin dashboard.","operationId":"get_whatsapp_stats_api_v1_admin_whatsapp_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Whatsapp Stats Api V1 Admin Whatsapp Stats Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/whatsapp/time-series":{"get":{"tags":["Admin WhatsApp Analytics"],"summary":"Get Whatsapp Time Series","description":"Daily time-series data for WhatsApp metrics.","operationId":"get_whatsapp_time_series_api_v1_admin_whatsapp_time_series_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"metric","in":"query","required":false,"schema":{"type":"string","pattern":"^(reports|messages|users)$","default":"reports","title":"Metric"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Whatsapp Time Series Api V1 Admin Whatsapp Time Series Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/shadow/summary":{"get":{"tags":["Admin Nidan Shadow"],"summary":"Shadow Summary","description":"Aggregate metrics across all shadow comparisons.","operationId":"shadow_summary_api_v1_admin_shadow_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Shadow Summary Api V1 Admin Shadow Summary Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/shadow/comparisons":{"get":{"tags":["Admin Nidan Shadow"],"summary":"List Comparisons","description":"List shadow comparisons, newest first. Returns diff_summary only — full\nJSON blobs are heavy and only fetched on demand via /comparisons/{id}.","operationId":"list_comparisons_api_v1_admin_shadow_comparisons_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"only_failed","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Failed"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Comparisons Api V1 Admin Shadow Comparisons Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/shadow/comparisons/{comparison_id}":{"get":{"tags":["Admin Nidan Shadow"],"summary":"Get Comparison","description":"Full side-by-side view of one comparison — includes both BS and Nidan\nraw analysis JSON for spot-checking.","operationId":"get_comparison_api_v1_admin_shadow_comparisons__comparison_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"comparison_id","in":"path","required":true,"schema":{"type":"integer","title":"Comparison Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Comparison Api V1 Admin Shadow Comparisons  Comparison Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/non-extractable/recent":{"get":{"tags":["Admin Non-Extractable Audit"],"summary":"Get Recent Non Extractable","description":"Recent non-extractable bucket hits, newest first.","operationId":"get_recent_non_extractable_api_v1_admin_non_extractable_recent_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"bucket","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by bucket name","title":"Bucket"},"description":"Filter by bucket name"},{"name":"urgent","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Urgent"}},{"name":"guard_fired","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter to rows where the engine sanitizer replaced the summary with the safe fallback","title":"Guard Fired"},"description":"Filter to rows where the engine sanitizer replaced the summary with the safe fallback"},{"name":"engine_called","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Engine Called"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/non-extractable/stats":{"get":{"tags":["Admin Non-Extractable Audit"],"summary":"Get Non Extractable Stats","description":"Per-bucket counts and guard-fire rate over the last N days.","operationId":"get_non_extractable_stats_api_v1_admin_non_extractable_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Window in days","default":7,"title":"Days"},"description":"Window in days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/non-extractable/dashboard":{"get":{"tags":["Admin Non-Extractable Audit"],"summary":"Get Non Extractable Dashboard","description":"Plain-HTML dashboard for eyeball review.\n\nNo framework — single self-contained HTML page. Designed to be opened\nby an admin in their browser to scan the last N days of bucket hits\nand spot anomalies (engine returning the safe fallback too often, a\nnew bucket spiking, urgent reports trending up).","operationId":"get_non_extractable_dashboard_api_v1_admin_non_extractable_dashboard_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":7,"title":"Days"}},{"name":"bucket","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/b2b2c/institutions":{"get":{"tags":["Admin B2B2C Institutions"],"summary":"List Institutions","operationId":"list_institutions_api_v1_admin_b2b2c_institutions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin B2B2C Institutions"],"summary":"Create Institution","operationId":"create_institution_api_v1_admin_b2b2c_institutions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstitutionCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstitutionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/b2b2c/institutions/{institution_id}/api-keys":{"post":{"tags":["Admin B2B2C Institutions"],"summary":"Issue Api Key","operationId":"issue_api_key_api_v1_admin_b2b2c_institutions__institution_id__api_keys_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"institution_id","in":"path","required":true,"schema":{"type":"integer","title":"Institution Id"}},{"name":"label","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/b2b2c/institutions/{institution_id}/usage":{"get":{"tags":["Admin B2B2C Institutions"],"summary":"Institution Usage","operationId":"institution_usage_api_v1_admin_b2b2c_institutions__institution_id__usage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"institution_id","in":"path","required":true,"schema":{"type":"integer","title":"Institution Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/b2b2c/lab-keys":{"get":{"tags":["Admin B2B2C Institutions"],"summary":"List Lab Keys","operationId":"list_lab_keys_api_v1_admin_b2b2c_lab_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Admin B2B2C Institutions"],"summary":"Map Lab Key","description":"Map a Nidan lab fingerprint (e.g. 'thyrocare') to an institution.\n\nThe lab_key must match a Nidan LAB_OVERRIDES key; the engine surfaces it as\n`identified_lab` on analysis. Unknown keys simply never match a report.","operationId":"map_lab_key_api_v1_admin_b2b2c_lab_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabKeyMap"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/b2b2c/lab-keys/{lab_key}":{"delete":{"tags":["Admin B2B2C Institutions"],"summary":"Unmap Lab Key","operationId":"unmap_lab_key_api_v1_admin_b2b2c_lab_keys__lab_key__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lab_key","in":"path","required":true,"schema":{"type":"string","title":"Lab Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provenance/labs":{"get":{"tags":["Admin Report Provenance"],"summary":"Labs Rollup","description":"Per-lab rollup: report volume + distinct pincodes + review counts.\n\nGrouped by lab_key (engine fingerprint) with the most common raw name.","operationId":"labs_rollup_api_v1_admin_provenance_labs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provenance/labs/{lab_key}/pincodes":{"get":{"tags":["Admin Report Provenance"],"summary":"Lab Pincode Breakdown","description":"Per-pincode breakdown for one lab, each PIN resolved to area/district/\nstate at render time. The sales-pitch view ('N reports from these areas').","operationId":"lab_pincode_breakdown_api_v1_admin_provenance_labs__lab_key__pincodes_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"lab_key","in":"path","required":true,"schema":{"type":"string","title":"Lab Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provenance/review":{"get":{"tags":["Admin Report Provenance"],"summary":"Needs Review","description":"Reports whose provenance needs a human look: missing/malformed PIN, or\nambiguous head-office-vs-branch (multiple PINs).","operationId":"needs_review_api_v1_admin_provenance_review_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"filter: missing|malformed","title":"Status"},"description":"filter: missing|malformed"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provenance/states":{"get":{"tags":["Admin Report Provenance"],"summary":"State Rollup","description":"Report volume by state (geography resolved from each pincode at read\ntime). Geographic distribution of where users come from.","operationId":"state_rollup_api_v1_admin_provenance_states_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/admin/provenance/candidates":{"get":{"tags":["Admin Report Provenance"],"summary":"List Candidates","description":"Unknown labs surfaced by Vertex enrichment, awaiting admin decision.\nHigh occurrence_count = high-volume unknown lab = sales signal.","operationId":"list_candidates_api_v1_admin_provenance_candidates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"pending","title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provenance/candidates/{candidate_id}/approve":{"post":{"tags":["Admin Report Provenance"],"summary":"Approve Candidate","description":"Approve -> registry creates/extends the org + learned signatures, so\nfuture reports from this lab resolve deterministically (no more Vertex).","operationId":"approve_candidate_api_v1_admin_provenance_candidates__candidate_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"candidate_id","in":"path","required":true,"schema":{"type":"integer","title":"Candidate Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CandidateApproveIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provenance/candidates/{candidate_id}/reject":{"post":{"tags":["Admin Report Provenance"],"summary":"Reject Candidate","operationId":"reject_candidate_api_v1_admin_provenance_candidates__candidate_id__reject_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"candidate_id","in":"path","required":true,"schema":{"type":"integer","title":"Candidate Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/provenance/enrich":{"post":{"tags":["Admin Report Provenance"],"summary":"Trigger Enrich","description":"Kick off a Vertex enrichment batch over needs-review rows (async).","operationId":"trigger_enrich_api_v1_admin_provenance_enrich_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/me":{"get":{"tags":["User Profile"],"summary":"Get Current User Profile","description":"Get current user profile information.","operationId":"get_current_user_profile_api_v1_user_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/preferences":{"get":{"tags":["User Profile"],"summary":"Get User Preferences","description":"Get user preferences.","operationId":"get_user_preferences_api_v1_user_preferences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPreferencesResponse"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["User Profile"],"summary":"Update User Preferences","description":"Update user preferences.","operationId":"update_user_preferences_api_v1_user_preferences_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPreferencesUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPreferencesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/dashboard-stats":{"get":{"tags":["User Profile"],"summary":"Get User Dashboard Stats","description":"Get comprehensive user dashboard statistics.","operationId":"get_user_dashboard_stats_api_v1_user_dashboard_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardStatsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/recent-activity":{"get":{"tags":["User Profile"],"summary":"Get Recent Activity","description":"Get user's recent activity.","operationId":"get_recent_activity_api_v1_user_recent_activity_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RecentActivityResponse"},"title":"Response Get Recent Activity Api V1 User Recent Activity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/quick-actions":{"get":{"tags":["User Profile"],"summary":"Get Quick Actions","description":"Get quick actions for user dashboard.","operationId":"get_quick_actions_api_v1_user_quick_actions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/QuickActionResponse"},"type":"array","title":"Response Get Quick Actions Api V1 User Quick Actions Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/profile":{"put":{"tags":["User Profile"],"summary":"Update User Profile","description":"Update user profile information.","operationId":"update_user_profile_api_v1_user_profile_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/change-password":{"post":{"tags":["User Profile"],"summary":"Change Password","description":"Change user password.","operationId":"change_password_api_v1_user_change_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordChangeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordChangeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/reports/{report_id}":{"delete":{"tags":["User Reports"],"summary":"Delete User Report","description":"Delete a specific report and all associated data","operationId":"delete_user_report_api_v1_user_reports__report_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["User Reports"],"summary":"Get User Report","description":"Get detailed information about a specific report","operationId":"get_user_report_api_v1_user_reports__report_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/chats/{chat_id}":{"delete":{"tags":["User Profile"],"summary":"Delete User Chat","description":"Delete a specific chat conversation belonging to the user.","operationId":"delete_user_chat_api_v1_user_chats__chat_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"chat_id","in":"path","required":true,"schema":{"type":"integer","title":"Chat Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/chats/by-report/{report_id}":{"delete":{"tags":["User Profile"],"summary":"Delete Chats By Report","description":"Delete all chat conversations for a specific report.","operationId":"delete_chats_by_report_api_v1_user_chats_by_report__report_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/export/reports/{report_id}":{"get":{"tags":["User Profile"],"summary":"Export Individual Report","description":"Export a single report with its associated data.","operationId":"export_individual_report_api_v1_user_export_reports__report_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json","title":"Format"}},{"name":"include_analysis","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Analysis"}},{"name":"include_chats","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Chats"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/export/chats":{"get":{"tags":["User Profile"],"summary":"Export Chat History","description":"Export chat history with optional filtering.","operationId":"export_chat_history_api_v1_user_export_chats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json","title":"Format"}},{"name":"report_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/export-data":{"post":{"tags":["User Profile"],"summary":"Export User Data","description":"Export all user data for download (GDPR compliance) with format options.","operationId":"export_user_data_api_v1_user_export_data_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ExportFormat"},{"type":"null"}],"title":"Export Format"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/account":{"delete":{"tags":["User Profile"],"summary":"Deactivate Account","description":"Deactivate user account (soft delete).","operationId":"deactivate_account_api_v1_user_account_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/account/permanent":{"delete":{"tags":["User Profile"],"summary":"Delete Account Permanently","description":"Permanently delete user account and all associated data.","operationId":"delete_account_permanently_api_v1_user_account_permanent_delete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAccountRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/account-summary":{"get":{"tags":["User Profile"],"summary":"Get Account Summary","description":"Get complete account summary for user.","operationId":"get_account_summary_api_v1_user_account_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/reports":{"get":{"tags":["User Reports"],"summary":"Get User Reports","description":"Get user's reports with filtering and pagination","operationId":"get_user_reports_api_v1_user_reports_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Per Page"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"report_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Type"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/chats":{"get":{"tags":["User Profile"],"summary":"Get User Chat History","description":"Get user's chat history with search and filtering.","operationId":"get_user_chat_history_api_v1_user_chats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Per Page"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"report_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"}},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Sort Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatHistoryListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/reports/by-type":{"get":{"tags":["User Profile"],"summary":"Get Reports By Type","description":"Get user's reports grouped by type for categorization.","operationId":"get_reports_by_type_api_v1_user_reports_by_type_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ReportsByTypeResponse"},"type":"array","title":"Response Get Reports By Type Api V1 User Reports By Type Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/chats/by-report":{"get":{"tags":["User Profile"],"summary":"Get Chats By Report","description":"Get user's chats grouped by report for organization.","operationId":"get_chats_by_report_api_v1_user_chats_by_report_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/search":{"get":{"tags":["User Profile"],"summary":"Search User Data","description":"Universal search across user's data.","operationId":"search_user_data_api_v1_user_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","title":"Query"}},{"name":"data_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"reports,chats","title":"Data Types"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/privacy/data-retention":{"get":{"tags":["User Profile"],"summary":"Get Data Retention Settings","description":"Get user's current data retention settings.","operationId":"get_data_retention_settings_api_v1_user_privacy_data_retention_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["User Profile"],"summary":"Update Data Retention Settings","description":"Update user's data retention preferences.","operationId":"update_data_retention_settings_api_v1_user_privacy_data_retention_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataRetentionSettings"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/privacy/anonymize-data":{"post":{"tags":["User Profile"],"summary":"Anonymize Old Data","description":"Anonymize user's old data by removing personally identifiable information.","operationId":"anonymize_old_data_api_v1_user_privacy_anonymize_data_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnonymizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/privacy/data-overview":{"get":{"tags":["User Profile"],"summary":"Get Privacy Data Overview","description":"Get overview of user's data for privacy management.","operationId":"get_privacy_data_overview_api_v1_user_privacy_data_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/reports/{report_id}/share":{"post":{"tags":["Doctor Sharing"],"summary":"Create Share","description":"Create a share link for a report to share with a doctor.","operationId":"create_share_api_v1_user_reports__report_id__share_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShareRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/reports/shares":{"get":{"tags":["Doctor Sharing"],"summary":"List Shares","description":"List all report shares for the current user.","operationId":"list_shares_api_v1_user_reports_shares_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/reports/shares/{share_id}":{"delete":{"tags":["Doctor Sharing"],"summary":"Revoke Share","description":"Revoke an active share.","operationId":"revoke_share_api_v1_user_reports_shares__share_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"share_id","in":"path","required":true,"schema":{"type":"integer","title":"Share Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/reports/upload":{"post":{"tags":["User Reports"],"summary":"Upload User Report","description":"Upload a medical report for analysis (authenticated users).\n\nOptionally pass family_member_id to upload on behalf of a family member.","operationId":"upload_user_report_api_v1_user_reports_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_user_report_api_v1_user_reports_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/reports/{report_id}/analyze":{"post":{"tags":["User Reports"],"summary":"Analyze User Report","description":"Retry analysis for a failed or pending report","operationId":"analyze_user_report_api_v1_user_reports__report_id__analyze_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/reports/{report_id}/chat":{"post":{"tags":["User Reports"],"summary":"Create Chat","description":"Create a new chat conversation about a report","operationId":"create_chat_api_v1_user_reports__report_id__chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/reports/{report_id}/chats":{"get":{"tags":["User Reports"],"summary":"Get Report Chats","description":"Get all chats for a specific report","operationId":"get_report_chats_api_v1_user_reports__report_id__chats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/reports/{report_id}/chats/{chat_id}":{"get":{"tags":["User Reports"],"summary":"Get Chat","description":"Get a specific chat conversation","operationId":"get_chat_api_v1_user_reports__report_id__chats__chat_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}},{"name":"chat_id","in":"path","required":true,"schema":{"type":"integer","title":"Chat Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/reports/{report_id}/export/pdf":{"get":{"tags":["User Reports"],"summary":"Export Report Pdf","description":"Export an analyzed report as a branded PDF document.","operationId":"export_report_pdf_api_v1_user_reports__report_id__export_pdf_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/reports/{report_id}/export/fhir":{"get":{"tags":["User Reports"],"summary":"Export Report Fhir","description":"Export a single report as a FHIR R4 Bundle (JSON).\n\nIncludes Patient, DiagnosticReport, Observation, Condition, and\nMedicationStatement resources compliant with HL7 FHIR R4.","operationId":"export_report_fhir_api_v1_user_reports__report_id__export_fhir_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/reports/compare/reports":{"get":{"tags":["User Reports"],"summary":"Compare Reports","description":"Compare multiple reports side-by-side with parameter deltas.\n\nReturns a structured comparison of test values across the selected reports,\nincluding changes and trends between them.","operationId":"compare_reports_api_v1_user_reports_compare_reports_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_ids","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated report IDs to compare, e.g. '1,2,3'","title":"Report Ids"},"description":"Comma-separated report IDs to compare, e.g. '1,2,3'"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/link-whatsapp":{"post":{"tags":["WhatsApp Account Linking"],"summary":"Link Whatsapp Account","description":"Link a WhatsApp account to the user's website account.\n\nFlow:\n1. User sends /link command on WhatsApp to receive OTP\n2. User enters phone number and OTP on this endpoint\n3. Backend validates OTP and links accounts\n4. WhatsApp now uses website subscription limits","operationId":"link_whatsapp_account_api_v1_user_link_whatsapp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkWhatsAppRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkWhatsAppResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/whatsapp-link-status":{"get":{"tags":["WhatsApp Account Linking"],"summary":"Get Whatsapp Link Status","description":"Check if the user has a linked WhatsApp account","operationId":"get_whatsapp_link_status_api_v1_user_whatsapp_link_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppLinkStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/unlink-whatsapp":{"delete":{"tags":["WhatsApp Account Linking"],"summary":"Unlink Whatsapp Account","description":"Unlink WhatsApp account from the user's website account","operationId":"unlink_whatsapp_account_api_v1_user_unlink_whatsapp_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/messaging-channels-status":{"get":{"tags":["WhatsApp Account Linking"],"summary":"Get Messaging Channels Status","description":"Get link status for all messaging channels in a single call.","operationId":"get_messaging_channels_status_api_v1_user_messaging_channels_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/link-telegram":{"post":{"tags":["Telegram Account Linking"],"summary":"Link Telegram Account","description":"Link a Telegram account to the user's website account.\n\nFlow:\n1. User sends /link command on Telegram to receive a token-based URL\n2. User clicks the URL (or enters the code here)\n3. Backend validates token from Redis and links accounts\n4. Telegram now uses website subscription limits","operationId":"link_telegram_account_api_v1_user_link_telegram_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkTelegramRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkTelegramResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/telegram-link-status":{"get":{"tags":["Telegram Account Linking"],"summary":"Get Telegram Link Status","description":"Check if the user has a linked Telegram account.","operationId":"get_telegram_link_status_api_v1_user_telegram_link_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelegramLinkStatusResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/unlink-telegram":{"delete":{"tags":["Telegram Account Linking"],"summary":"Unlink Telegram Account","description":"Unlink Telegram account from the user's website account.","operationId":"unlink_telegram_account_api_v1_user_unlink_telegram_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/push/register-token":{"post":{"tags":["Push Notifications"],"summary":"Register a device token for push notifications","description":"Register an FCM device token. Called by the Flutter app on login or\ntoken refresh. Automatically enables push_notifications preference.","operationId":"register_device_token_api_v1_user_push_register_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/push/unregister-token":{"post":{"tags":["Push Notifications"],"summary":"Unregister a device token (e.g., on logout)","description":"Deactivate a device token. Called on logout or app uninstall.","operationId":"unregister_device_token_api_v1_user_push_unregister_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnregisterTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/push/devices":{"get":{"tags":["Push Notifications"],"summary":"List registered devices","description":"List all active device tokens for the current user.","operationId":"list_devices_api_v1_user_push_devices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/push/preferences":{"get":{"tags":["Push Notifications"],"summary":"Get notification preferences","description":"Get the user's notification preferences.","operationId":"get_notification_preferences_api_v1_user_push_preferences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["Push Notifications"],"summary":"Update notification preferences","description":"Update notification preferences. Only updates fields that are provided.","operationId":"update_notification_preferences_api_v1_user_push_preferences_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationPrefsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/push/test":{"post":{"tags":["Push Notifications"],"summary":"Send a test push notification","description":"Send a test push notification to verify device token setup.","operationId":"send_test_notification_api_v1_user_push_test_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/":{"get":{"tags":["User Health Profile"],"summary":"Get Health Profile","description":"Get the current user's health profile.\n\nReturns null (HTTP 200) when the user has no profile yet — a missing\nprofile is a normal pre-onboarding state, not an error, so we don't 404\n(which surfaced as a red console error on every new-user page load).","operationId":"get_health_profile_api_v1_user_health_profile__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/HealthProfileResponse"},{"type":"null"}],"title":"Response Get Health Profile Api V1 User Health Profile  Get"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["User Health Profile"],"summary":"Update Health Profile","description":"Update the current user's health profile. Only provided fields are updated.","operationId":"update_health_profile_api_v1_user_health_profile__put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthProfileUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["User Health Profile"],"summary":"Create Health Profile","description":"Create a health profile for the current user.","operationId":"create_health_profile_api_v1_user_health_profile__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthProfileCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"tags":["User Health Profile"],"summary":"Delete Health Profile","description":"Delete the current user's health profile.","operationId":"delete_health_profile_api_v1_user_health_profile__delete","responses":{"204":{"description":"Successful Response"}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/trends":{"get":{"tags":["User Health Profile"],"summary":"Get Report Trends","description":"Get one person's report trends with optional filters (default: the\naccount holder; see /trends/people for who else has data).","operationId":"get_report_trends_api_v1_user_health_profile_trends_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"parameter_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parameter Name"}},{"name":"parameter_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parameter Category"}},{"name":"is_critical","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Critical"}},{"name":"trend_alert","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trend Alert"}},{"name":"patient_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Patient Id"}},{"name":"unassigned","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Unassigned"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReportTrendResponse"},"title":"Response Get Report Trends Api V1 User Health Profile Trends Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/trends/people":{"get":{"tags":["User Health Profile"],"summary":"Get Trend People","description":"The people with trend data on this account: the account holder first,\nthen family members, then data not yet attributed to anyone. Clients\npick one and pass its patient_id (or unassigned=true) to the other\ntrend endpoints.","operationId":"get_trend_people_api_v1_user_health_profile_trends_people_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TrendPerson"},"type":"array","title":"Response Get Trend People Api V1 User Health Profile Trends People Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/trends/summary":{"get":{"tags":["User Health Profile"],"summary":"Get Trend Summary","description":"Latest value and trend of every parameter tracked for one person\n(default: the account holder).","operationId":"get_trend_summary_api_v1_user_health_profile_trends_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"patient_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Patient Id"}},{"name":"unassigned","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Unassigned"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TrendSummary"},"title":"Response Get Trend Summary Api V1 User Health Profile Trends Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/trends/{parameter_name}":{"get":{"tags":["User Health Profile"],"summary":"Get Parameter History","description":"Full history of one parameter for one person (default: the account\nholder).","operationId":"get_parameter_history_api_v1_user_health_profile_trends__parameter_name__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"parameter_name","in":"path","required":true,"schema":{"type":"string","title":"Parameter Name"}},{"name":"patient_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Patient Id"}},{"name":"unassigned","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Unassigned"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReportTrendResponse"},"title":"Response Get Parameter History Api V1 User Health Profile Trends  Parameter Name  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/risks":{"get":{"tags":["User Health Profile"],"summary":"Get Risk Assessments","description":"Get risk assessments for the current user.","operationId":"get_risk_assessments_api_v1_user_health_profile_risks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}},{"name":"risk_level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Risk Level"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RiskAssessmentResponse"},"title":"Response Get Risk Assessments Api V1 User Health Profile Risks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/risks/calculate":{"post":{"tags":["User Health Profile"],"summary":"Calculate Risks","description":"Manually trigger risk recalculation based on current health profile and trends.","operationId":"calculate_risks_api_v1_user_health_profile_risks_calculate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RiskAssessmentResponse"},"type":"array","title":"Response Calculate Risks Api V1 User Health Profile Risks Calculate Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/risks/summary":{"get":{"tags":["User Health Profile"],"summary":"Get Risk Summary","description":"Get aggregated risk dashboard: active assessments, drug interactions, demographic ranges.","operationId":"get_risk_summary_api_v1_user_health_profile_risks_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/feedback":{"post":{"tags":["User Health Profile"],"summary":"Submit Training Feedback","description":"Submit feedback/correction on an AI analysis result.","operationId":"submit_training_feedback_api_v1_user_health_profile_feedback_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingFeedbackCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingFeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["User Health Profile"],"summary":"Get My Feedback","description":"Get feedback submitted by the current user.","operationId":"get_my_feedback_api_v1_user_health_profile_feedback_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TrainingFeedbackResponse"},"title":"Response Get My Feedback Api V1 User Health Profile Feedback Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/action-plan":{"get":{"tags":["User Health Profile"],"summary":"Get Action Plan","description":"Generate and return a prioritized action plan based on risk assessments.","operationId":"get_action_plan_api_v1_user_health_profile_action_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/reminders":{"get":{"tags":["User Health Profile"],"summary":"Get Reminders","description":"Get health reminders for the current user.","operationId":"get_reminders_api_v1_user_health_profile_reminders_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HealthReminderResponse"},"title":"Response Get Reminders Api V1 User Health Profile Reminders Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["User Health Profile"],"summary":"Create Reminder","description":"Create a custom health reminder.","operationId":"create_reminder_api_v1_user_health_profile_reminders_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthReminderCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthReminderResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/reminders/{reminder_id}/cancel":{"post":{"tags":["User Health Profile"],"summary":"Cancel Reminder","description":"Cancel a pending reminder.","operationId":"cancel_reminder_api_v1_user_health_profile_reminders__reminder_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reminder_id","in":"path","required":true,"schema":{"type":"integer","title":"Reminder Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/reminders/{reminder_id}/log":{"post":{"tags":["User Health Profile"],"summary":"Log Reminder Event","description":"Record adherence for a reminder firing. 'taken'/'skipped' completes a\none-time reminder; recurring reminders keep their own schedule (the\ndelivery path creates the next occurrence).","operationId":"log_reminder_event_api_v1_user_health_profile_reminders__reminder_id__log_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reminder_id","in":"path","required":true,"schema":{"type":"integer","title":"Reminder Id"}},{"name":"event","in":"query","required":true,"schema":{"type":"string","pattern":"^(taken|skipped)$","title":"Event"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/reminders/{reminder_id}/snooze":{"post":{"tags":["User Health Profile"],"summary":"Snooze Reminder","description":"Snooze a reminder by a number of hours.","operationId":"snooze_reminder_api_v1_user_health_profile_reminders__reminder_id__snooze_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"reminder_id","in":"path","required":true,"schema":{"type":"integer","title":"Reminder Id"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/health-score":{"get":{"tags":["User Health Profile"],"summary":"Get Health Score","description":"Get a composite health score (0-100) with breakdown.\n\nThe score is calculated from:\n- Test value normality (40%)\n- Risk assessment levels (30%)\n- Trend direction (15%)\n- Test recency (10%)\n- Profile completeness (5%)\n\nInterpretation: 90-100 Excellent, 75-89 Good, 60-74 Fair, 40-59 Needs Attention, 0-39 Concerning","operationId":"get_health_score_api_v1_user_health_profile_health_score_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/health-score/history":{"get":{"tags":["User Health Profile"],"summary":"Get Health Score History","description":"Get health score history for the past N months.","operationId":"get_health_score_history_api_v1_user_health_profile_health_score_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"months","in":"query","required":false,"schema":{"type":"integer","maximum":24,"minimum":1,"default":6,"title":"Months"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/risks/history":{"get":{"tags":["User Health Profile"],"summary":"Get Risk History","description":"Get risk assessment history grouped by risk type.","operationId":"get_risk_history_api_v1_user_health_profile_risks_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/risks/{risk_id}":{"get":{"tags":["User Health Profile"],"summary":"Get Risk Assessment","description":"Get a specific risk assessment.","operationId":"get_risk_assessment_api_v1_user_health_profile_risks__risk_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"risk_id","in":"path","required":true,"schema":{"type":"integer","title":"Risk Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskAssessmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/health-profile/export/fhir":{"get":{"tags":["User Health Profile"],"summary":"Export Patient Summary Fhir","description":"Export full patient summary as a FHIR R4 Bundle (JSON).\n\nIncludes Patient, Observation (all trends), Condition (risk assessments),\nand MedicationStatement resources.","operationId":"export_patient_summary_fhir_api_v1_user_health_profile_export_fhir_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/screenings/due":{"get":{"tags":["User Health Profile"],"summary":"Get Due Screenings","description":"Get preventive screenings that are due or overdue based on ICMR guidelines.\n\nReturns personalized screening recommendations based on age, gender,\nchronic conditions, and risk factors.","operationId":"get_due_screenings_api_v1_user_health_profile_screenings_due_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/screenings/generate-reminders":{"post":{"tags":["User Health Profile"],"summary":"Generate Screening Reminders","description":"Generate health reminders for due screenings.\n\nCreates HealthReminder entries that will be sent via WhatsApp\nat appropriate intervals.","operationId":"generate_screening_reminders_api_v1_user_health_profile_screenings_generate_reminders_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/health-profile/drug-interactions":{"get":{"tags":["User Health Profile"],"summary":"Check Drug Interactions","description":"Check for drug interactions between current medications.\n\nUses the user's current_medications from their health profile\nand checks against known interaction databases.","operationId":"check_drug_interactions_api_v1_user_health_profile_drug_interactions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/family":{"get":{"tags":["Family Members"],"summary":"List Family Members","description":"List all active family members for the current user.","operationId":"list_family_members_api_v1_user_family_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FamilyMemberResponse"},"type":"array","title":"Response List Family Members Api V1 User Family Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Family Members"],"summary":"Create Family Member","description":"Add a new family member.","operationId":"create_family_member_api_v1_user_family_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FamilyMemberCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FamilyMemberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/family/{member_id}":{"get":{"tags":["Family Members"],"summary":"Get Family Member","description":"Get details of a specific family member.","operationId":"get_family_member_api_v1_user_family__member_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"integer","title":"Member Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FamilyMemberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Family Members"],"summary":"Update Family Member","description":"Update a family member's details.","operationId":"update_family_member_api_v1_user_family__member_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"integer","title":"Member Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FamilyMemberUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FamilyMemberResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Family Members"],"summary":"Delete Family Member","description":"Soft-delete a family member (reports are preserved).","operationId":"delete_family_member_api_v1_user_family__member_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"integer","title":"Member Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/family/{member_id}/reports":{"get":{"tags":["Family Members"],"summary":"Get Family Member Reports","description":"Get all reports for a specific family member.","operationId":"get_family_member_reports_api_v1_user_family__member_id__reports_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"integer","title":"Member Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/patients/":{"get":{"tags":["Patients"],"summary":"List Patients","description":"All patients this user cares for (self first).","operationId":"list_patients_api_v1_user_patients__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PatientResponse"},"type":"array","title":"Response List Patients Api V1 User Patients  Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/patients/{patient_id}/confirm":{"post":{"tags":["Patients"],"summary":"Confirm Patient Link","description":"Confirm a suggested caregiver link (e.g. after a same-document\ncross-account attach).","operationId":"confirm_patient_link_api_v1_user_patients__patient_id__confirm_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"patient_id","in":"path","required":true,"schema":{"type":"integer","title":"Patient Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/patients/{patient_id}/reports":{"get":{"tags":["Patients"],"summary":"Get Patient Reports","description":"This patient's report history — the longitudinal record.","operationId":"get_patient_reports_api_v1_user_patients__patient_id__reports_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"patient_id","in":"path","required":true,"schema":{"type":"integer","title":"Patient Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/patients/{patient_id}/invites":{"post":{"tags":["Patients"],"summary":"Create Invite","description":"Invite another caregiver into this patient's circle. Deliberate,\nconsent-based — the only cross-account path that needs no document\nsignal. Only confirmed caregivers may invite.","operationId":"create_invite_api_v1_user_patients__patient_id__invites_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"patient_id","in":"path","required":true,"schema":{"type":"integer","title":"Patient Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Patients"],"summary":"List Invites","operationId":"list_invites_api_v1_user_patients__patient_id__invites_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"patient_id","in":"path","required":true,"schema":{"type":"integer","title":"Patient Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/patients/invites/accept":{"post":{"tags":["Patients"],"summary":"Accept Invite","description":"Join a patient's circle with a share code.","operationId":"accept_invite_api_v1_user_patients_invites_accept_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteAccept"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/user/patients/invites/{invite_id}":{"delete":{"tags":["Patients"],"summary":"Revoke Invite","operationId":"revoke_invite_api_v1_user_patients_invites__invite_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"invite_id","in":"path","required":true,"schema":{"type":"integer","title":"Invite Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/user/patients/reports/{report_id}/reassign":{"post":{"tags":["Patients"],"summary":"Reassign Report","description":"Move a report to a different patient — the audited correction path\nfor wrong automatic attribution. Only the uploader can reassign, and\nonly to a patient they care for.","operationId":"reassign_report_api_v1_user_patients_reports__report_id__reassign_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReassignRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/shared/report/{share_token}":{"get":{"tags":["Shared Access"],"summary":"Get Shared Report","description":"Public endpoint: view a shared report via token. No auth required.\n\nUsed by doctors to view a patient's shared report.","operationId":"get_shared_report_api_v1_shared_report__share_token__get","parameters":[{"name":"share_token","in":"path","required":true,"schema":{"type":"string","title":"Share Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/shared/report/{share_token}/notes":{"post":{"tags":["Shared Access"],"summary":"Save Doctor Notes","description":"Save doctor notes on a shared report. No auth — token-gated.","operationId":"save_doctor_notes_api_v1_shared_report__share_token__notes_post","parameters":[{"name":"share_token","in":"path","required":true,"schema":{"type":"string","title":"Share Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoctorNotesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/2fa/setup":{"post":{"tags":["Security & 2FA"],"summary":"Setup User 2Fa","description":"Setup 2FA for the current user.","operationId":"setup_user_2fa_api_v1_security_2fa_setup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Setup2FAResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/2fa/enable":{"post":{"tags":["Security & 2FA"],"summary":"Enable User 2Fa","description":"Enable 2FA after token verification.","operationId":"enable_user_2fa_api_v1_security_2fa_enable_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Enable2FARequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/2fa/disable":{"post":{"tags":["Security & 2FA"],"summary":"Disable User 2Fa","description":"Disable 2FA for the current user.","operationId":"disable_user_2fa_api_v1_security_2fa_disable_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/2fa/status":{"get":{"tags":["Security & 2FA"],"summary":"Get User 2Fa Status","description":"Get 2FA status for the current user.","operationId":"get_user_2fa_status_api_v1_security_2fa_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/admin/2fa/setup":{"post":{"tags":["Security & 2FA"],"summary":"Setup Admin 2Fa","description":"Setup 2FA for the current admin.","operationId":"setup_admin_2fa_api_v1_security_admin_2fa_setup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Setup2FAResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/admin/2fa/enable":{"post":{"tags":["Security & 2FA"],"summary":"Enable Admin 2Fa","description":"Enable 2FA for the current admin.","operationId":"enable_admin_2fa_api_v1_security_admin_2fa_enable_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Enable2FARequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/admin/2fa/disable":{"post":{"tags":["Security & 2FA"],"summary":"Disable Admin 2Fa","description":"Disable 2FA for the current admin.","operationId":"disable_admin_2fa_api_v1_security_admin_2fa_disable_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/admin/2fa/status":{"get":{"tags":["Security & 2FA"],"summary":"Get Admin 2Fa Status","description":"Get 2FA status for the current admin.","operationId":"get_admin_2fa_status_api_v1_security_admin_2fa_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/sessions":{"get":{"tags":["Security & 2FA"],"summary":"Get User Sessions","description":"Get active sessions for the current user.","operationId":"get_user_sessions_api_v1_security_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SessionInfo"},"type":"array","title":"Response Get User Sessions Api V1 Security Sessions Get"}}}}},"security":[{"HTTPBearer":[]}]},"delete":{"tags":["Security & 2FA"],"summary":"Revoke All User Sessions","description":"Revoke all user sessions except current one.","operationId":"revoke_all_user_sessions_api_v1_security_sessions_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/sessions/{session_id}":{"delete":{"tags":["Security & 2FA"],"summary":"Revoke User Session","description":"Revoke a specific user session.","operationId":"revoke_user_session_api_v1_security_sessions__session_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"integer","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/admin/sessions":{"get":{"tags":["Security & 2FA"],"summary":"Get Admin Sessions","description":"Get active sessions for the current admin.","operationId":"get_admin_sessions_api_v1_security_admin_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SessionInfo"},"type":"array","title":"Response Get Admin Sessions Api V1 Security Admin Sessions Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/admin/sessions/{session_id}":{"delete":{"tags":["Security & 2FA"],"summary":"Revoke Admin Session","description":"Revoke a specific admin session.","operationId":"revoke_admin_session_api_v1_security_admin_sessions__session_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"integer","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/admin/ip-restrictions":{"post":{"tags":["Security & 2FA"],"summary":"Add Ip Restriction","description":"Add IP restriction for an admin user.","operationId":"add_ip_restriction_api_v1_security_admin_ip_restrictions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPRestrictionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/security/admin/ip-restrictions/{admin_user_id}":{"get":{"tags":["Security & 2FA"],"summary":"Get Ip Restrictions","description":"Get IP restrictions for an admin user.","operationId":"get_ip_restrictions_api_v1_security_admin_ip_restrictions__admin_user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"admin_user_id","in":"path","required":true,"schema":{"type":"integer","title":"Admin User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/admin/security-events":{"get":{"tags":["Security & 2FA"],"summary":"Get Security Events","description":"Get security events for monitoring.","operationId":"get_security_events_api_v1_security_admin_security_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type"}},{"name":"resolved","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Resolved"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SecurityEventResponse"},"title":"Response Get Security Events Api V1 Security Admin Security Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/admin/login-attempts":{"get":{"tags":["Security & 2FA"],"summary":"Get Login Attempts","description":"Get login attempts for security monitoring.","operationId":"get_login_attempts_api_v1_security_admin_login_attempts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"success","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Success"}},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},{"name":"ip_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/security/admin/security-stats":{"get":{"tags":["Security & 2FA"],"summary":"Get Security Stats","description":"Get security statistics for dashboard.","operationId":"get_security_stats_api_v1_security_admin_security_stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/guest/session":{"post":{"tags":["Guest Analysis"],"summary":"Create Guest Session","description":"Create a new guest session","operationId":"create_guest_session_api_v1_guest_session_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestSessionResponse"}}}}}}},"/api/v1/guest/session/{session_id}":{"get":{"tags":["Guest Analysis"],"summary":"Get Guest Session","description":"Get guest session details","operationId":"get_guest_session_api_v1_guest_session__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/guest/session/{session_id}/rate-limits":{"get":{"tags":["Guest Analysis"],"summary":"Check Rate Limits","description":"Check rate limits for guest session","operationId":"check_rate_limits_api_v1_guest_session__session_id__rate_limits_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/guest/session/{session_id}/upload":{"post":{"tags":["Guest Analysis"],"summary":"Upload Guest Report","description":"Upload a medical report for guest analysis","operationId":"upload_guest_report_api_v1_guest_session__session_id__upload_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_guest_report_api_v1_guest_session__session_id__upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/guest/session/{session_id}/reports/{report_id}/analyze":{"post":{"tags":["Guest Analysis"],"summary":"Analyze Guest Report","description":"Analyze a guest report using AI","operationId":"analyze_guest_report_api_v1_guest_session__session_id__reports__report_id__analyze_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/guest/session/{session_id}/reports/{report_id}":{"get":{"tags":["Guest Analysis"],"summary":"Get Guest Report","description":"Get guest report details and analysis results","operationId":"get_guest_report_api_v1_guest_session__session_id__reports__report_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"report_id","in":"path","required":true,"schema":{"type":"integer","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/guest/session/{session_id}/reports":{"get":{"tags":["Guest Analysis"],"summary":"List Guest Reports","description":"List all reports for a guest session","operationId":"list_guest_reports_api_v1_guest_session__session_id__reports_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GuestReportResponse"},"title":"Response List Guest Reports Api V1 Guest Session  Session Id  Reports Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/guest/cleanup":{"post":{"tags":["Guest Analysis"],"summary":"Cleanup Expired Data","description":"Cleanup expired guest data (admin endpoint)","operationId":"cleanup_expired_data_api_v1_guest_cleanup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/whatsapp/webhook":{"get":{"tags":["WhatsApp Bot"],"summary":"Verify Webhook","description":"WhatsApp webhook verification endpoint.\nCalled by Meta when you configure the webhook URL.\nMust return the challenge to complete verification.","operationId":"verify_webhook_api_v1_whatsapp_webhook_get","parameters":[{"name":"hub.mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hub.Mode"}},{"name":"hub.verify_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hub.Verify Token"}},{"name":"hub.challenge","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hub.Challenge"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["WhatsApp Bot"],"summary":"Whatsapp Webhook","description":"Main WhatsApp webhook endpoint.\nReceives all incoming messages and events from WhatsApp Cloud API.\n\nMessage types handled:\n- text: User sends a text message\n- image: User sends an image (medical report photo)\n- document: User sends a document (PDF report)\n- interactive: User clicks a button or list item\n\nPattern follows existing payment webhooks - process in background,\nrespond immediately to avoid timeout.","operationId":"whatsapp_webhook_api_v1_whatsapp_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/whatsapp/health":{"get":{"tags":["WhatsApp Bot"],"summary":"Whatsapp Health","description":"Health check endpoint for WhatsApp bot service","operationId":"whatsapp_health_api_v1_whatsapp_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/whatsapp/test-send":{"get":{"tags":["WhatsApp Bot"],"summary":"Test Send Message","description":"Test endpoint to send a WhatsApp message.\nUse this to verify your configuration is working.\n\nUsage: GET /api/v1/whatsapp/test-send?phone=919876543210&message=Test\n\nNote: Only works in development mode. Remove or protect in production.","operationId":"test_send_message_api_v1_whatsapp_test_send_get","parameters":[{"name":"phone","in":"query","required":true,"schema":{"type":"string","title":"Phone"}},{"name":"message","in":"query","required":false,"schema":{"type":"string","default":"Hello from Bharat Swasth!","title":"Message"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/telegram/webhook":{"post":{"tags":["Telegram Bot"],"summary":"Telegram Webhook","description":"Main Telegram webhook endpoint.\nReceives all incoming updates from the Telegram Bot API.\n\nTelegram sends an Update object containing one of:\n- message: text, photo, document, etc.\n- callback_query: inline button press\n- edited_message, channel_post, etc. (ignored)\n\nPattern follows WhatsApp webhook — process in background,\nrespond immediately to avoid timeout.","operationId":"telegram_webhook_api_v1_telegram_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/telegram/health":{"get":{"tags":["Telegram Bot"],"summary":"Telegram Health","description":"Health check endpoint for Telegram bot service.","operationId":"telegram_health_api_v1_telegram_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/telegram/setup-webhook":{"post":{"tags":["Telegram Bot"],"summary":"Setup Telegram Webhook","description":"One-time endpoint to register the webhook URL with Telegram.\nOnly available in development mode.\n\nUsage: POST /api/v1/telegram/setup-webhook\nRequires TELEGRAM_BOT_TOKEN and DOMAIN env vars.","operationId":"setup_telegram_webhook_api_v1_telegram_setup_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/telegram/setup-commands":{"post":{"tags":["Telegram Bot"],"summary":"Setup Telegram Commands","description":"One-time endpoint to register bot commands with Telegram.\nOnly available in development mode.\n\nUsage: POST /api/v1/telegram/setup-commands","operationId":"setup_telegram_commands_api_v1_telegram_setup_commands_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/status/":{"get":{"tags":["Public Status"],"summary":"Get Public Status","description":"Public system status endpoint. No authentication required.\nResults are cached in Redis for 10 seconds.","operationId":"get_public_status_api_v1_status__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/contact/":{"post":{"tags":["Contact"],"summary":"Submit Contact Form","description":"Public contact form submission endpoint.","operationId":"submit_contact_form_api_v1_contact__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSubmissionCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactSubmissionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abdm/heartbeat":{"get":{"tags":["ABDM","ABDM Callbacks"],"summary":"Heartbeat","operationId":"heartbeat_api_v1_abdm_heartbeat_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/abdm/admin/test-auth":{"post":{"tags":["ABDM","ABDM Admin"],"summary":"Test Gateway Auth","description":"Test ABDM V3 gateway authentication.","operationId":"test_gateway_auth_api_v1_abdm_admin_test_auth_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/abdm/admin/register-bridge":{"patch":{"tags":["ABDM","ABDM Admin"],"summary":"Register Bridge","description":"Register or update the bridge callback URL (V3).","operationId":"register_bridge_api_v1_abdm_admin_register_bridge_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BridgeURLRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/abdm/admin/link/demographic":{"post":{"tags":["ABDM","ABDM Admin"],"summary":"Demographic Link Init","description":"Step 1 of Demographic Auth linking (HIP_INTI_LINK_501-504).\n\nRegisters/updates the patient locally, then asks ABDM for a link token by\ndemographic match. The token does NOT come back here — it arrives on the\n/api/v3/hip/token/on-generate-token callback and is persisted there.\nPoll GET /admin/link/status/{userId} to see when it lands.\n\nABDM blocks an ABHA address for 24 hours after 3 token requests in one day,\nso do not retry this in a loop.","operationId":"demographic_link_init_api_v1_abdm_admin_link_demographic_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemographicLinkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/abdm/admin/link/status/{user_id}":{"get":{"tags":["ABDM","ABDM Admin"],"summary":"Link Status","description":"Has the link token arrived yet, and what is linkable?","operationId":"link_status_api_v1_abdm_admin_link_status__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abdm/admin/link/carecontexts":{"post":{"tags":["ABDM","ABDM Admin"],"summary":"Link Care Contexts","description":"Step 2 of Demographic Auth linking (HIP_INTI_LINK_505).\n\nPushes the patient's care contexts to ABDM using the stored link token.\nOnly the user's OWN records are linked — family members are excluded by\nabdm_care_context, same rule as discovery and data transfer.","operationId":"link_care_contexts_api_v1_abdm_admin_link_carecontexts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkCareContextsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/abdm/admin/notify/sms":{"post":{"tags":["ABDM","ABDM Admin"],"summary":"Notify Patient Sms","description":"Send a deep-link SMS so a patient with records but no ABHA can create one\nand claim them (HIP_INIT_NOTIFY_HIECM).\n\nSupply phoneNo directly, or userId to resolve it from the health profile.\nOnly fires when the user has records worth claiming — an SMS pointing at an\nempty record set is noise to the patient.","operationId":"notify_patient_sms_api_v1_abdm_admin_notify_sms_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmsNotifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/abdm/admin/services":{"get":{"tags":["ABDM","ABDM Admin"],"summary":"List Services","description":"List all services linked to this bridge (V3).","operationId":"list_services_api_v1_abdm_admin_services_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/abdm/admin/status":{"get":{"tags":["ABDM","ABDM Admin"],"summary":"Abdm Status","description":"Get current ABDM V3 integration status.","operationId":"abdm_status_api_v1_abdm_admin_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/abdm/admin/linked-patients":{"get":{"tags":["ABDM","ABDM Admin"],"summary":"List Linked Patients","description":"List all ABDM-linked patients.","operationId":"list_linked_patients_api_v1_abdm_admin_linked_patients_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abdm/admin/consents":{"get":{"tags":["ABDM","ABDM Admin"],"summary":"List Consents","description":"List all consent records, optionally filtered by status.","operationId":"list_consents_api_v1_abdm_admin_consents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abdm/admin/data-transfers":{"get":{"tags":["ABDM","ABDM Admin"],"summary":"List Data Transfers","description":"Audit trail of health data transfers.","operationId":"list_data_transfers_api_v1_abdm_admin_data_transfers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abdm/admin/gateway-certs":{"get":{"tags":["ABDM","ABDM Admin"],"summary":"Get Gateway Certs","description":"View cached ABDM gateway certificates.","operationId":"get_gateway_certs_api_v1_abdm_admin_gateway_certs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v3/hip/patient/care-context/discover":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Care Context Discover","description":"Patient discovery — match patient and return their care contexts.","operationId":"care_context_discover_api_v3_hip_patient_care_context_discover_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/hip/patient/link/init":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Link Init","description":"Link init — generate OTP, store in Redis, respond to gateway.","operationId":"link_init_api_v3_hip_patient_link_init_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/hip/link/care-context/init":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Link Init","description":"Link init — generate OTP, store in Redis, respond to gateway.","operationId":"link_init_api_v3_hip_link_care_context_init_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/hip/patient/link/confirm":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Link Confirm","description":"Link confirm — resolve the link reference and create care context links.","operationId":"link_confirm_api_v3_hip_patient_link_confirm_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/hip/link/care-context/confirm":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Link Confirm","description":"Link confirm — resolve the link reference and create care context links.","operationId":"link_confirm_api_v3_hip_link_care_context_confirm_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/hip/token/on-generate-token":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Token On Generate","description":"Callback: receive the link token from the gateway (HIP_INTI_LINK_504).\n\nThe token is the whole point of the demographic-auth handshake — without\npersisting it here, linking can never proceed. It is valid for 6 months,\nand ABDM blocks an ABHA address for 24 hours after 3 token requests in a\nday, so re-requesting per link is not an option.","operationId":"token_on_generate_api_v3_hip_token_on_generate_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/link/on_carecontext":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"On Carecontext","description":"Callback: acknowledgment of HIP-initiated care context linking.","operationId":"on_carecontext_api_v3_link_on_carecontext_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/hip/consent/notify":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Consent Notify","description":"Consent status change notification.","operationId":"consent_notify_api_v3_hip_consent_notify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/consent/request/hip/notify":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Consent Notify","description":"Consent status change notification.","operationId":"consent_notify_api_v3_consent_request_hip_notify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/hip/health-information/request":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Health Info Request","description":"Health information request — generate FHIR bundles and push to HIU.","operationId":"health_info_request_api_v3_hip_health_information_request_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/hip/patient/running-token/status":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Running Token Status","description":"Running token status — no physical queue at Bharatswasth.","operationId":"running_token_status_api_v3_hip_patient_running_token_status_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/hip/patient/share":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Patient Share","description":"Scan and Share — receive a patient's verified profile (SHARE_PATIENT_PROFILE_701).\n\nThe patient scans a facility QR in their PHR app and ABDM pushes their\nABDM-verified demographics here. We register/refresh the linked patient and\nanswer on patient-share/v3/on-share with a queue token.\n\nFAQ #27: a malformed on-share body surfaces to the patient as \"HIP ID is\ncurrently experiencing some issue\", so the response shape matters as much\nas accepting the request.","operationId":"patient_share_api_v3_hip_patient_share_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/patients/sms/on-notify":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Sms On Notify","description":"SMS notification acknowledgment.","operationId":"sms_on_notify_api_v3_patients_sms_on_notify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v3/links/context/on-notify":{"post":{"tags":["ABDM V3 Callbacks"],"summary":"Links Context On Notify","description":"Care context update notification callback.","operationId":"links_context_on_notify_api_v3_links_context_on_notify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/abha/enrollment/request-otp":{"post":{"tags":["ABHA"],"summary":"Enrollment Request Otp","description":"Request OTP for ABHA creation (encrypts loginId server-side).","operationId":"enrollment_request_otp_api_v1_abha_enrollment_request_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollmentOTPRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/enrollment/enrol-aadhaar":{"post":{"tags":["ABHA"],"summary":"Enrollment Enrol Aadhaar","description":"Create ABHA via Aadhaar + OTP (encrypts OTP server-side).","operationId":"enrollment_enrol_aadhaar_api_v1_abha_enrollment_enrol_aadhaar_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrolAadhaarRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/enrollment/verify-mobile":{"post":{"tags":["ABHA"],"summary":"Enrollment Verify Mobile","description":"Verify mobile OTP during enrollment (encrypts OTP server-side).","operationId":"enrollment_verify_mobile_api_v1_abha_enrollment_verify_mobile_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyMobileRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/enrollment/suggestions":{"get":{"tags":["ABHA"],"summary":"Enrollment Suggestions","description":"Get ABHA address suggestions.","operationId":"enrollment_suggestions_api_v1_abha_enrollment_suggestions_get","parameters":[{"name":"txnId","in":"query","required":true,"schema":{"type":"string","title":"Txnid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/enrollment/create-address":{"post":{"tags":["ABHA"],"summary":"Enrollment Create Address","description":"Create custom ABHA address.","operationId":"enrollment_create_address_api_v1_abha_enrollment_create_address_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAddressRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/login/request-otp":{"post":{"tags":["ABHA"],"summary":"Login Request Otp","description":"Request OTP for ABHA login/verification (encrypts loginId server-side).","operationId":"login_request_otp_api_v1_abha_login_request_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginOTPRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/login/verify":{"post":{"tags":["ABHA"],"summary":"Login Verify","description":"Verify OTP and get ABHA session + accounts (encrypts OTP server-side).","operationId":"login_verify_api_v1_abha_login_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/login/verify-user":{"post":{"tags":["ABHA"],"summary":"Login Verify User","description":"Select account after mobile OTP login (needs F-token from verify step).","operationId":"login_verify_user_api_v1_abha_login_verify_user_post","parameters":[{"name":"F-token","in":"header","required":true,"schema":{"type":"string","title":"F-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginVerifyUserRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/profile":{"get":{"tags":["ABHA"],"summary":"Get Profile","description":"Get full ABHA profile (needs X-token from login).","operationId":"get_profile_api_v1_abha_profile_get","parameters":[{"name":"X-token","in":"header","required":true,"schema":{"type":"string","title":"X-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/profile/qr-code":{"get":{"tags":["ABHA"],"summary":"Get Qr Code","description":"Generate ABHA QR code (needs X-token).","operationId":"get_qr_code_api_v1_abha_profile_qr_code_get","parameters":[{"name":"X-token","in":"header","required":true,"schema":{"type":"string","title":"X-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/abha/profile/abha-card":{"get":{"tags":["ABHA"],"summary":"Get Abha Card","description":"Download ABHA card (needs X-token).","operationId":"get_abha_card_api_v1_abha_profile_abha_card_get","parameters":[{"name":"X-token","in":"header","required":true,"schema":{"type":"string","title":"X-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/metrics":{"get":{"summary":"Prometheus Metrics","description":"Prometheus metrics scrape endpoint. Optionally secured via METRICS_AUTH_TOKEN.","operationId":"prometheus_metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health Check","description":"Health check with DB and Redis verification.","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v2/health":{"get":{"summary":"V2 Health Check","description":"Enhanced health check for V2 services","operationId":"v2_health_check_api_v2_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AdminCreateRequest":{"properties":{"username":{"type":"string","title":"Username"},"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"},"full_name":{"type":"string","title":"Full Name"},"role":{"type":"string","title":"Role"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["username","email","password","full_name","role"],"title":"AdminCreateRequest"},"AdminDetailResponse":{"properties":{"admin":{"additionalProperties":true,"type":"object","title":"Admin"}},"type":"object","required":["admin"],"title":"AdminDetailResponse"},"AdminListResponse":{"properties":{"admins":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Admins"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"limit":{"type":"integer","title":"Limit"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["admins","total","page","limit","total_pages"],"title":"AdminListResponse"},"AdminLogin":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"type":"object","required":["username","password"],"title":"AdminLogin"},"AdminResponse":{"properties":{"id":{"type":"integer","title":"Id"},"username":{"type":"string","title":"Username"},"email":{"type":"string","title":"Email"},"full_name":{"type":"string","title":"Full Name"},"role":{"$ref":"#/components/schemas/AdminRole"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","username","email","full_name","role","is_active","is_verified","created_at"],"title":"AdminResponse"},"AdminRole":{"type":"string","enum":["super_admin","admin","moderator","viewer"],"title":"AdminRole"},"AdminRoleChangeRequest":{"properties":{"role":{"type":"string","title":"Role"}},"type":"object","required":["role"],"title":"AdminRoleChangeRequest"},"AdminUpdateRequest":{"properties":{"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"AdminUpdateRequest"},"AnonymizationRequest":{"properties":{"data_types":{"items":{"type":"string"},"type":"array","title":"Data Types"},"older_than_days":{"type":"integer","title":"Older Than Days","default":365},"confirmation":{"type":"boolean","title":"Confirmation","default":false}},"type":"object","required":["data_types"],"title":"AnonymizationRequest"},"AppleAuthRequest":{"properties":{"identity_token":{"type":"string","title":"Identity Token"},"authorization_code":{"type":"string","title":"Authorization Code"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["identity_token","authorization_code"],"title":"AppleAuthRequest"},"AppleAuthResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"},"is_new_user":{"type":"boolean","title":"Is New User","default":false}},"type":"object","required":["access_token"],"title":"AppleAuthResponse"},"AuditListResponse":{"properties":{"rows":{"items":{"$ref":"#/components/schemas/AuditRow"},"type":"array","title":"Rows"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["rows","total"],"title":"AuditListResponse"},"AuditLogListResponse":{"properties":{"logs":{"items":{"$ref":"#/components/schemas/AuditLogResponse"},"type":"array","title":"Logs"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["logs","total","page","per_page","total_pages"],"title":"AuditLogListResponse"},"AuditLogResponse":{"properties":{"id":{"type":"integer","title":"Id"},"admin_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Admin Id"},"admin_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Email"},"action":{"type":"string","title":"Action"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"},"resource_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resource Id"},"details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details"},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip Address"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"success":{"type":"string","title":"Success"}},"type":"object","required":["id","admin_id","admin_email","action","resource_type","resource_id","details","ip_address","user_agent","timestamp","success"],"title":"AuditLogResponse"},"AuditRow":{"properties":{"id":{"type":"integer","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"bucket":{"type":"string","title":"Bucket"},"mode":{"type":"string","title":"Mode"},"urgent":{"type":"boolean","title":"Urgent"},"language":{"type":"string","title":"Language"},"source_text_len":{"type":"integer","title":"Source Text Len"},"source_text_sha256":{"type":"string","title":"Source Text Sha256"},"matched_trigger":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Matched Trigger"},"engine_called":{"type":"boolean","title":"Engine Called"},"engine_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine Provider"},"engine_latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Engine Latency Ms"},"engine_raw_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine Raw Summary"},"sanitized_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sanitized Summary"},"hallucination_guard_fired":{"type":"boolean","title":"Hallucination Guard Fired"},"fallback_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fallback Reason"},"report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},"type":"object","required":["id","created_at","bucket","mode","urgent","language","source_text_len","source_text_sha256","matched_trigger","engine_called","engine_provider","engine_latency_ms","engine_raw_summary","sanitized_summary","hallucination_guard_fired","fallback_reason","report_id","user_id"],"title":"AuditRow"},"Body_upload_guest_report_api_v1_guest_session__session_id__upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_guest_report_api_v1_guest_session__session_id__upload_post"},"Body_upload_user_report_api_v1_user_reports_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"family_member_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Family Member Id"}},"type":"object","required":["file"],"title":"Body_upload_user_report_api_v1_user_reports_upload_post"},"BridgeURLRequest":{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"type":"object","title":"BridgeURLRequest"},"BucketStat":{"properties":{"bucket":{"type":"string","title":"Bucket"},"count":{"type":"integer","title":"Count"},"urgent_count":{"type":"integer","title":"Urgent Count"},"engine_called_count":{"type":"integer","title":"Engine Called Count"},"guard_fired_count":{"type":"integer","title":"Guard Fired Count"}},"type":"object","required":["bucket","count","urgent_count","engine_called_count","guard_fired_count"],"title":"BucketStat"},"BulkChatDeleteRequest":{"properties":{"chat_ids":{"items":{"type":"integer"},"type":"array","title":"Chat Ids"}},"type":"object","required":["chat_ids"],"title":"BulkChatDeleteRequest"},"BulkDeleteRequest":{"properties":{"report_ids":{"items":{"type":"integer"},"type":"array","title":"Report Ids"},"permanent":{"type":"boolean","title":"Permanent","default":false}},"type":"object","required":["report_ids"],"title":"BulkDeleteRequest"},"BulkExportRequest":{"properties":{"export_types":{"items":{"type":"string"},"type":"array","title":"Export Types"},"format":{"type":"string","title":"Format","default":"csv"},"include_sensitive":{"type":"boolean","title":"Include Sensitive","default":false},"start_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"},"end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}},"type":"object","required":["export_types"],"title":"BulkExportRequest"},"BulkModerationRequest":{"properties":{"content_ids":{"items":{"type":"integer"},"type":"array","title":"Content Ids"},"content_type":{"$ref":"#/components/schemas/ContentType"},"action":{"$ref":"#/components/schemas/ModerationAction"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["content_ids","content_type","action","reason","notes"],"title":"BulkModerationRequest"},"BulkVerification":{"properties":{"entry_ids":{"items":{"type":"integer"},"type":"array","title":"Entry Ids"},"is_approved":{"type":"boolean","title":"Is Approved"}},"type":"object","required":["entry_ids","is_approved"],"title":"BulkVerification"},"CandidateApproveIn":{"properties":{"lab_key":{"type":"string","title":"Lab Key"},"name":{"type":"string","title":"Name"},"signatures":{"items":{},"type":"array","title":"Signatures"},"country":{"type":"string","title":"Country","default":"IN"}},"type":"object","required":["lab_key","name","signatures"],"title":"CandidateApproveIn"},"ChatHistoryListResponse":{"properties":{"chats":{"items":{"$ref":"#/components/schemas/ChatHistoryResponse"},"type":"array","title":"Chats"},"total_count":{"type":"integer","title":"Total Count"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["chats","total_count","page","per_page","total_pages"],"title":"ChatHistoryListResponse"},"ChatHistoryResponse":{"properties":{"id":{"type":"integer","title":"Id"},"message":{"type":"string","title":"Message"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"},"report_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Filename"}},"type":"object","required":["id","message","response","created_at","report_id","report_filename"],"title":"ChatHistoryResponse"},"ChatListResponse":{"properties":{"chats":{"items":{"$ref":"#/components/schemas/ChatResponse"},"type":"array","title":"Chats"},"total_count":{"type":"integer","title":"Total Count"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["chats","total_count","page","per_page","total_pages"],"title":"ChatListResponse"},"ChatModerationRequest":{"properties":{"is_flagged":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flagged"},"moderation_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moderation Notes"}},"type":"object","title":"ChatModerationRequest"},"ChatRequest":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"ChatRequest"},"ChatResponse":{"properties":{"id":{"type":"integer","title":"Id"},"message":{"type":"string","title":"Message"},"response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","message","response","created_at"],"title":"ChatResponse"},"ConsultationCostCreate":{"properties":{"specialist_id":{"type":"string","title":"Specialist Id"},"name":{"type":"string","title":"Name"},"name_hi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Hi"},"city_prices":{"anyOf":[{"additionalProperties":{"additionalProperties":{"type":"number"},"type":"object"},"type":"object"},{"type":"null"}],"title":"City Prices"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["specialist_id","name"],"title":"ConsultationCostCreate"},"ConsultationCostResponse":{"properties":{"specialist_id":{"type":"string","title":"Specialist Id"},"name":{"type":"string","title":"Name"},"name_hi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Hi"},"city_prices":{"anyOf":[{"additionalProperties":{"additionalProperties":{"type":"number"},"type":"object"},"type":"object"},{"type":"null"}],"title":"City Prices"},"is_active":{"type":"boolean","title":"Is Active","default":true},"id":{"type":"integer","title":"Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["specialist_id","name","id"],"title":"ConsultationCostResponse"},"ConsultationCostUpdate":{"properties":{"specialist_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialist Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"name_hi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Hi"},"city_prices":{"anyOf":[{"additionalProperties":{"additionalProperties":{"type":"number"},"type":"object"},"type":"object"},{"type":"null"}],"title":"City Prices"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"ConsultationCostUpdate"},"ContactSubmissionCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"email":{"type":"string","format":"email","title":"Email"},"subject":{"type":"string","maxLength":100,"minLength":1,"title":"Subject"},"message":{"type":"string","maxLength":5000,"minLength":10,"title":"Message"}},"type":"object","required":["name","email","subject","message"],"title":"ContactSubmissionCreate"},"ContactSubmissionResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"message":{"type":"string","title":"Message","default":"Your message has been sent successfully. We'll get back to you soon."}},"type":"object","title":"ContactSubmissionResponse"},"ContentDetail":{"properties":{"id":{"type":"integer","title":"Id"},"content_type":{"$ref":"#/components/schemas/ContentType"},"content":{"type":"string","title":"Content"},"user_id":{"type":"integer","title":"User Id"},"user_email":{"type":"string","title":"User Email"},"user_name":{"type":"string","title":"User Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_flagged":{"type":"boolean","title":"Is Flagged"},"moderation_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moderation Notes"},"moderated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moderated By"},"moderated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Moderated At"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","required":["id","content_type","content","user_id","user_email","user_name","created_at","is_flagged","moderation_notes","moderated_by","moderated_at","context"],"title":"ContentDetail"},"ContentType":{"type":"string","enum":["report","chat","feedback"],"title":"ContentType"},"CreateAddressRequest":{"properties":{"txnId":{"type":"string","title":"Txnid"},"abhaAddress":{"type":"string","title":"Abhaaddress"},"preferred":{"type":"integer","title":"Preferred","default":1}},"type":"object","required":["txnId","abhaAddress"],"title":"CreateAddressRequest"},"CreateShareRequest":{"properties":{"doctor_name":{"type":"string","title":"Doctor Name"},"doctor_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doctor Email"},"doctor_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doctor Phone"},"doctor_specialization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doctor Specialization"},"hospital_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hospital Name"},"consent_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Consent Note"},"expiry_days":{"type":"integer","title":"Expiry Days","default":30},"include_trends":{"type":"boolean","title":"Include Trends","default":false},"include_risks":{"type":"boolean","title":"Include Risks","default":false},"include_health_profile":{"type":"boolean","title":"Include Health Profile","default":false}},"type":"object","required":["doctor_name"],"title":"CreateShareRequest"},"DashboardStatsResponse":{"properties":{"reports_uploaded":{"type":"integer","title":"Reports Uploaded"},"reports_analyzed":{"type":"integer","title":"Reports Analyzed"},"chat_conversations":{"type":"integer","title":"Chat Conversations"},"total_feedback_given":{"type":"integer","title":"Total Feedback Given"},"last_activity":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity"},"account_created":{"type":"string","format":"date-time","title":"Account Created"},"storage_used":{"type":"string","title":"Storage Used"},"plan":{"type":"string","title":"Plan"},"reports_this_month":{"type":"integer","title":"Reports This Month"},"chats_this_month":{"type":"integer","title":"Chats This Month"},"average_processing_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Average Processing Time"},"most_used_report_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Most Used Report Type"}},"type":"object","required":["reports_uploaded","reports_analyzed","chat_conversations","total_feedback_given","last_activity","account_created","storage_used","plan","reports_this_month","chats_this_month","average_processing_time","most_used_report_type"],"title":"DashboardStatsResponse"},"DataRetentionSettings":{"properties":{"auto_delete_old_reports":{"type":"boolean","title":"Auto Delete Old Reports"},"data_retention_days":{"type":"integer","title":"Data Retention Days"},"delete_inactive_chats":{"type":"boolean","title":"Delete Inactive Chats","default":false},"anonymize_old_data":{"type":"boolean","title":"Anonymize Old Data","default":false}},"type":"object","required":["auto_delete_old_reports","data_retention_days"],"title":"DataRetentionSettings"},"DeleteAccountRequest":{"properties":{"password":{"type":"string","title":"Password","default":""},"export_data":{"type":"boolean","title":"Export Data","default":false},"confirmation":{"type":"boolean","title":"Confirmation","default":false}},"type":"object","title":"DeleteAccountRequest"},"DemographicLinkRequest":{"properties":{"userId":{"type":"integer","title":"Userid"},"abhaAddress":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abhaaddress"},"abhaNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abhanumber"},"name":{"type":"string","title":"Name"},"gender":{"type":"string","title":"Gender"},"yearOfBirth":{"type":"integer","title":"Yearofbirth"}},"type":"object","required":["userId","name","gender","yearOfBirth"],"title":"DemographicLinkRequest","description":"Demographic Auth linking (HIP_INTI_LINK_501-506) — mandatory for private\nintegrators. ABDM matches these demographics against the ABHA record and,\nif they agree, issues a link token on the on-generate-token callback."},"DoctorNotesRequest":{"properties":{"notes":{"type":"string","title":"Notes"}},"type":"object","required":["notes"],"title":"DoctorNotesRequest"},"DrugInteractionCreate":{"properties":{"drug_a":{"type":"string","title":"Drug A"},"drug_b":{"type":"string","title":"Drug B"},"severity":{"type":"string","title":"Severity"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"recommendation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommendation"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["drug_a","drug_b","severity"],"title":"DrugInteractionCreate"},"DrugInteractionResponse":{"properties":{"drug_a":{"type":"string","title":"Drug A"},"drug_b":{"type":"string","title":"Drug B"},"severity":{"type":"string","title":"Severity"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"recommendation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommendation"},"is_active":{"type":"boolean","title":"Is Active","default":true},"id":{"type":"integer","title":"Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["drug_a","drug_b","severity","id"],"title":"DrugInteractionResponse"},"DrugInteractionUpdate":{"properties":{"drug_a":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drug A"},"drug_b":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drug B"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"recommendation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommendation"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"DrugInteractionUpdate"},"Enable2FARequest":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"Enable2FARequest"},"EnrolAadhaarRequest":{"properties":{"txnId":{"type":"string","title":"Txnid"},"otp":{"type":"string","title":"Otp"},"mobile":{"type":"string","title":"Mobile"}},"type":"object","required":["txnId","otp","mobile"],"title":"EnrolAadhaarRequest"},"EnrollmentOTPRequest":{"properties":{"loginId":{"type":"string","title":"Loginid"},"loginHint":{"type":"string","title":"Loginhint","default":"aadhaar"},"scope":{"items":{"type":"string"},"type":"array","title":"Scope","default":["abha-enrol"]},"otpSystem":{"type":"string","title":"Otpsystem","default":"aadhaar"},"txnId":{"type":"string","title":"Txnid","default":""},"isResend":{"type":"boolean","title":"Isresend","default":false}},"type":"object","required":["loginId"],"title":"EnrollmentOTPRequest"},"ExportFormat":{"properties":{"format":{"type":"string","title":"Format"},"include_analysis":{"type":"boolean","title":"Include Analysis","default":true},"include_chats":{"type":"boolean","title":"Include Chats","default":true},"include_feedback":{"type":"boolean","title":"Include Feedback","default":true},"date_from":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date To"}},"type":"object","required":["format"],"title":"ExportFormat"},"FamilyMemberCreate":{"properties":{"name":{"type":"string","title":"Name"},"relationship_type":{"type":"string","title":"Relationship Type"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"blood_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blood Group"},"chronic_conditions":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Chronic Conditions"},"current_medications":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Current Medications"},"allergies":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Allergies"}},"type":"object","required":["name","relationship_type"],"title":"FamilyMemberCreate"},"FamilyMemberResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"relationship_type":{"type":"string","title":"Relationship Type"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"blood_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blood Group"},"chronic_conditions":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Chronic Conditions"},"current_medications":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Current Medications"},"allergies":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Allergies"},"is_active":{"type":"boolean","title":"Is Active"},"report_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Count","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","relationship_type","date_of_birth","gender","blood_group","chronic_conditions","current_medications","allergies","is_active","created_at"],"title":"FamilyMemberResponse"},"FamilyMemberUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"relationship_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Type"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"blood_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blood Group"},"chronic_conditions":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Chronic Conditions"},"current_medications":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Current Medications"},"allergies":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Allergies"}},"type":"object","title":"FamilyMemberUpdate"},"FeedbackDetailResponse":{"properties":{"feedback":{"additionalProperties":true,"type":"object","title":"Feedback"}},"type":"object","required":["feedback"],"title":"FeedbackDetailResponse"},"FeedbackListResponse":{"properties":{"feedback":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Feedback"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"limit":{"type":"integer","title":"Limit"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["feedback","total","page","limit","total_pages"],"title":"FeedbackListResponse"},"FeedbackRespondRequest":{"properties":{"response":{"type":"string","title":"Response"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","default":"in_progress"}},"type":"object","required":["response"],"title":"FeedbackRespondRequest"},"FeedbackStatsResponse":{"properties":{"total":{"type":"integer","title":"Total"},"by_status":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Status"},"by_type":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Type"},"average_rating":{"type":"number","title":"Average Rating"},"this_week":{"type":"integer","title":"This Week"},"this_month":{"type":"integer","title":"This Month"},"unresolved":{"type":"integer","title":"Unresolved"}},"type":"object","required":["total","by_status","by_type","average_rating","this_week","this_month","unresolved"],"title":"FeedbackStatsResponse"},"FeedbackStatusRequest":{"properties":{"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"FeedbackStatusRequest"},"FlaggedContentItem":{"properties":{"id":{"type":"integer","title":"Id"},"content_type":{"$ref":"#/components/schemas/ContentType"},"content_preview":{"type":"string","title":"Content Preview"},"user_email":{"type":"string","title":"User Email"},"user_name":{"type":"string","title":"User Name"},"flagged_at":{"type":"string","format":"date-time","title":"Flagged At"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"severity":{"type":"string","title":"Severity"},"moderated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moderated By"},"moderated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Moderated At"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","content_type","content_preview","user_email","user_name","flagged_at","reason","severity","moderated_by","moderated_at","status"],"title":"FlaggedContentItem"},"GoogleAuthRequest":{"properties":{"credential":{"type":"string","title":"Credential"}},"type":"object","required":["credential"],"title":"GoogleAuthRequest"},"GoogleAuthResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"},"is_new_user":{"type":"boolean","title":"Is New User","default":false}},"type":"object","required":["access_token"],"title":"GoogleAuthResponse"},"GuestReportResponse":{"properties":{"id":{"type":"integer","title":"Id"},"filename":{"type":"string","title":"Filename"},"file_type":{"type":"string","title":"File Type"},"file_size":{"type":"integer","title":"File Size"},"status":{"type":"string","title":"Status"},"analysis_result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Analysis Result"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"key_findings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Key Findings"},"recommendations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Recommendations"},"report_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Type"},"confidence_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence Score"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["id","filename","file_type","file_size","status","analysis_result","summary","key_findings","recommendations","report_type","confidence_score","created_at","expires_at"],"title":"GuestReportResponse"},"GuestSessionResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"reports_uploaded":{"type":"integer","title":"Reports Uploaded"},"analyses_performed":{"type":"integer","title":"Analyses Performed"}},"type":"object","required":["session_id","expires_at","reports_uploaded","analyses_performed"],"title":"GuestSessionResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthProfileCreate":{"properties":{"age":{"anyOf":[{"type":"integer","maximum":150.0,"minimum":0.0},{"type":"null"}],"title":"Age"},"gender":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Gender"},"blood_group":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Blood Group"},"height_cm":{"anyOf":[{"type":"number","maximum":300.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Height Cm"},"weight_kg":{"anyOf":[{"type":"number","maximum":500.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Weight Kg"},"phone_number":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Phone Number"},"emergency_contact_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Emergency Contact Name"},"emergency_contact_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Emergency Contact Phone"},"state":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"State"},"district":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"District"},"pincode":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Pincode"},"chronic_conditions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chronic Conditions"},"current_medications":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Current Medications"},"allergies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allergies"},"past_surgeries":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Past Surgeries"},"family_history":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Family History"},"smoking_status":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Smoking Status"},"alcohol_consumption":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Alcohol Consumption"},"exercise_frequency":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Exercise Frequency"},"diet_type":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Diet Type"},"last_bp_systolic":{"anyOf":[{"type":"integer","maximum":300.0,"minimum":0.0},{"type":"null"}],"title":"Last Bp Systolic"},"last_bp_diastolic":{"anyOf":[{"type":"integer","maximum":200.0,"minimum":0.0},{"type":"null"}],"title":"Last Bp Diastolic"},"last_heart_rate":{"anyOf":[{"type":"integer","maximum":300.0,"minimum":0.0},{"type":"null"}],"title":"Last Heart Rate"},"last_vitals_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Vitals Date"},"consent_data_usage":{"type":"boolean","title":"Consent Data Usage","default":false},"consent_research":{"type":"boolean","title":"Consent Research","default":false}},"type":"object","title":"HealthProfileCreate"},"HealthProfileResponse":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"whatsapp_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Whatsapp User Id"},"age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Age"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"blood_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blood Group"},"height_cm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Height Cm"},"weight_kg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weight Kg"},"bmi":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bmi"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"emergency_contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emergency Contact Name"},"emergency_contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emergency Contact Phone"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District"},"pincode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pincode"},"chronic_conditions":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Chronic Conditions"},"current_medications":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Current Medications"},"allergies":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Allergies"},"past_surgeries":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Past Surgeries"},"family_history":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Family History"},"smoking_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Smoking Status"},"alcohol_consumption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alcohol Consumption"},"exercise_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exercise Frequency"},"diet_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Diet Type"},"last_bp_systolic":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Bp Systolic"},"last_bp_diastolic":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Bp Diastolic"},"last_heart_rate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Heart Rate"},"last_vitals_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Vitals Date"},"profile_completeness_score":{"type":"integer","title":"Profile Completeness Score","default":0},"consent_data_usage":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Consent Data Usage","default":false},"consent_research":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Consent Research","default":false},"consent_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Consent Date"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id"],"title":"HealthProfileResponse"},"HealthProfileUpdate":{"properties":{"age":{"anyOf":[{"type":"integer","maximum":150.0,"minimum":0.0},{"type":"null"}],"title":"Age"},"gender":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Gender"},"blood_group":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Blood Group"},"height_cm":{"anyOf":[{"type":"number","maximum":300.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Height Cm"},"weight_kg":{"anyOf":[{"type":"number","maximum":500.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Weight Kg"},"phone_number":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Phone Number"},"emergency_contact_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Emergency Contact Name"},"emergency_contact_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Emergency Contact Phone"},"state":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"State"},"district":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"District"},"pincode":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Pincode"},"chronic_conditions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chronic Conditions"},"current_medications":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Current Medications"},"allergies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allergies"},"past_surgeries":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Past Surgeries"},"family_history":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Family History"},"smoking_status":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Smoking Status"},"alcohol_consumption":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Alcohol Consumption"},"exercise_frequency":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Exercise Frequency"},"diet_type":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Diet Type"},"last_bp_systolic":{"anyOf":[{"type":"integer","maximum":300.0,"minimum":0.0},{"type":"null"}],"title":"Last Bp Systolic"},"last_bp_diastolic":{"anyOf":[{"type":"integer","maximum":200.0,"minimum":0.0},{"type":"null"}],"title":"Last Bp Diastolic"},"last_heart_rate":{"anyOf":[{"type":"integer","maximum":300.0,"minimum":0.0},{"type":"null"}],"title":"Last Heart Rate"},"last_vitals_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Last Vitals Date"},"consent_data_usage":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Consent Data Usage"},"consent_research":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Consent Research"}},"type":"object","title":"HealthProfileUpdate"},"HealthReminderCreate":{"properties":{"reminder_type":{"type":"string","maxLength":50,"title":"Reminder Type"},"title":{"type":"string","maxLength":255,"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"scheduled_at":{"type":"string","format":"date-time","title":"Scheduled At"},"recurrence":{"type":"string","maxLength":20,"title":"Recurrence","default":"none"},"recurrence_end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Recurrence End Date"},"report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"},"risk_assessment_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Risk Assessment Id"}},"type":"object","required":["reminder_type","title","scheduled_at"],"title":"HealthReminderCreate"},"HealthReminderResponse":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"whatsapp_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Whatsapp User Id"},"reminder_type":{"type":"string","title":"Reminder Type"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"scheduled_at":{"type":"string","format":"date-time","title":"Scheduled At"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"status":{"type":"string","title":"Status"},"recurrence":{"type":"string","title":"Recurrence"},"next_occurrence":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Occurrence"},"recurrence_end_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Recurrence End Date"},"report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"},"risk_assessment_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Risk Assessment Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","reminder_type","title","scheduled_at","status","recurrence"],"title":"HealthReminderResponse"},"IPRestrictionRequest":{"properties":{"admin_user_id":{"type":"integer","title":"Admin User Id"},"ip_address":{"type":"string","title":"Ip Address"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["admin_user_id","ip_address"],"title":"IPRestrictionRequest"},"IndianFoodCreate":{"properties":{"name":{"type":"string","title":"Name"},"name_hi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Hi"},"category":{"type":"string","title":"Category"},"calories_per_100g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Calories Per 100G"},"protein_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Protein G"},"carbs_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Carbs G"},"fat_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fat G"},"fiber_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fiber G"},"gi_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gi Index"},"gl_per_serving":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gl Per Serving"},"serving_size_g":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Serving Size G"},"conditions_good":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Conditions Good"},"conditions_avoid":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Conditions Avoid"},"diet_type":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Diet Type"},"regions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Regions"},"meal_times":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Meal Times"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name","category"],"title":"IndianFoodCreate"},"IndianFoodResponse":{"properties":{"name":{"type":"string","title":"Name"},"name_hi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Hi"},"category":{"type":"string","title":"Category"},"calories_per_100g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Calories Per 100G"},"protein_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Protein G"},"carbs_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Carbs G"},"fat_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fat G"},"fiber_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fiber G"},"gi_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gi Index"},"gl_per_serving":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gl Per Serving"},"serving_size_g":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Serving Size G"},"conditions_good":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Conditions Good"},"conditions_avoid":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Conditions Avoid"},"diet_type":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Diet Type"},"regions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Regions"},"meal_times":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Meal Times"},"is_active":{"type":"boolean","title":"Is Active","default":true},"id":{"type":"integer","title":"Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["name","category","id"],"title":"IndianFoodResponse"},"IndianFoodUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"name_hi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Hi"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"calories_per_100g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Calories Per 100G"},"protein_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Protein G"},"carbs_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Carbs G"},"fat_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fat G"},"fiber_g":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fiber G"},"gi_index":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gi Index"},"gl_per_serving":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gl Per Serving"},"serving_size_g":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Serving Size G"},"conditions_good":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Conditions Good"},"conditions_avoid":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Conditions Avoid"},"diet_type":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Diet Type"},"regions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Regions"},"meal_times":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Meal Times"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"IndianFoodUpdate"},"InstitutionCreate":{"properties":{"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"per_report_price_inr":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Report Price Inr"},"billing_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Email"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["name","slug"],"title":"InstitutionCreate"},"InstitutionResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"status":{"type":"string","title":"Status"},"per_report_price_inr":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Per Report Price Inr"}},"type":"object","required":["id","name","slug","status"],"title":"InstitutionResponse"},"InviteAccept":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"InviteAccept"},"InviteCreate":{"properties":{"relationship_type":{"type":"string","title":"Relationship Type","default":"other"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"}},"type":"object","title":"InviteCreate"},"LabChainCreate":{"properties":{"name":{"type":"string","title":"Name"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"cities":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cities"},"home_collection":{"type":"boolean","title":"Home Collection","default":false},"online_reports":{"type":"boolean","title":"Online Reports","default":false},"nabl_accredited":{"type":"boolean","title":"Nabl Accredited","default":false},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name"],"title":"LabChainCreate"},"LabChainResponse":{"properties":{"name":{"type":"string","title":"Name"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"cities":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cities"},"home_collection":{"type":"boolean","title":"Home Collection","default":false},"online_reports":{"type":"boolean","title":"Online Reports","default":false},"nabl_accredited":{"type":"boolean","title":"Nabl Accredited","default":false},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"is_active":{"type":"boolean","title":"Is Active","default":true},"id":{"type":"integer","title":"Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["name","id"],"title":"LabChainResponse"},"LabChainUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"cities":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cities"},"home_collection":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Home Collection"},"online_reports":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Online Reports"},"nabl_accredited":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Nabl Accredited"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"LabChainUpdate"},"LabKeyMap":{"properties":{"lab_key":{"type":"string","title":"Lab Key"},"institution_id":{"type":"integer","title":"Institution Id"}},"type":"object","required":["lab_key","institution_id"],"title":"LabKeyMap"},"LinkCareContextsRequest":{"properties":{"userId":{"type":"integer","title":"Userid"},"hiType":{"type":"string","title":"Hitype","default":"DiagnosticReport"}},"type":"object","required":["userId"],"title":"LinkCareContextsRequest"},"LinkTelegramRequest":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"LinkTelegramRequest"},"LinkTelegramResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"plan_name":{"type":"string","title":"Plan Name"},"daily_limit":{"type":"integer","title":"Daily Limit"}},"type":"object","required":["success","message","plan_name","daily_limit"],"title":"LinkTelegramResponse"},"LinkWhatsAppRequest":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"otp":{"type":"string","title":"Otp"}},"type":"object","required":["phone_number","otp"],"title":"LinkWhatsAppRequest"},"LinkWhatsAppResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"phone_number":{"type":"string","title":"Phone Number"},"plan_name":{"type":"string","title":"Plan Name"},"daily_limit":{"type":"integer","title":"Daily Limit"}},"type":"object","required":["success","message","phone_number","plan_name","daily_limit"],"title":"LinkWhatsAppResponse"},"LoginOTPRequest":{"properties":{"loginId":{"type":"string","title":"Loginid"},"loginHint":{"type":"string","title":"Loginhint"},"scope":{"items":{"type":"string"},"type":"array","title":"Scope","default":["abha-login","aadhaar-verify"]},"otpSystem":{"type":"string","title":"Otpsystem","default":"aadhaar"},"txnId":{"type":"string","title":"Txnid","default":""},"isResend":{"type":"boolean","title":"Isresend","default":false}},"type":"object","required":["loginId","loginHint"],"title":"LoginOTPRequest"},"LoginVerifyRequest":{"properties":{"txnId":{"type":"string","title":"Txnid"},"otp":{"type":"string","title":"Otp"},"scope":{"items":{"type":"string"},"type":"array","title":"Scope","default":["abha-login","aadhaar-verify"]}},"type":"object","required":["txnId","otp"],"title":"LoginVerifyRequest"},"LoginVerifyUserRequest":{"properties":{"abhaNumber":{"type":"string","title":"Abhanumber"},"txnId":{"type":"string","title":"Txnid"}},"type":"object","required":["abhaNumber","txnId"],"title":"LoginVerifyUserRequest"},"LogoutRequest":{"properties":{"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"}},"type":"object","title":"LogoutRequest"},"MaintenanceModeRequest":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"estimated_duration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Estimated Duration"}},"type":"object","required":["enabled","message","estimated_duration"],"title":"MaintenanceModeRequest"},"ModerationAction":{"type":"string","enum":["approve","reject","flag","unflag"],"title":"ModerationAction"},"ModerationActionRequest":{"properties":{"action":{"$ref":"#/components/schemas/ModerationAction"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["action","reason","notes"],"title":"ModerationActionRequest"},"ModerationQueueStats":{"properties":{"total_flagged":{"type":"integer","title":"Total Flagged"},"pending_review":{"type":"integer","title":"Pending Review"},"reports_flagged":{"type":"integer","title":"Reports Flagged"},"chats_flagged":{"type":"integer","title":"Chats Flagged"},"feedback_flagged":{"type":"integer","title":"Feedback Flagged"},"avg_response_time_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Response Time Hours"}},"type":"object","required":["total_flagged","pending_review","reports_flagged","chats_flagged","feedback_flagged","avg_response_time_hours"],"title":"ModerationQueueStats"},"PasswordChangeRequest":{"properties":{"current_password":{"type":"string","title":"Current Password"},"new_password":{"type":"string","title":"New Password"}},"type":"object","required":["current_password","new_password"],"title":"PasswordChangeRequest"},"PasswordChangeResponse":{"properties":{"message":{"type":"string","title":"Message"},"changed_at":{"type":"string","format":"date-time","title":"Changed At"}},"type":"object","required":["message","changed_at"],"title":"PasswordChangeResponse"},"PatientResponse":{"properties":{"id":{"type":"integer","title":"Id"},"uuid":{"type":"string","title":"Uuid"},"name":{"type":"string","title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"birth_year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Birth Year"},"blood_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blood Group"},"is_self":{"type":"boolean","title":"Is Self"},"relationship_type":{"type":"string","title":"Relationship Type"},"access_role":{"type":"string","title":"Access Role"},"link_status":{"type":"string","title":"Link Status"},"report_count":{"type":"integer","title":"Report Count"}},"type":"object","required":["id","uuid","name","gender","birth_year","blood_group","is_self","relationship_type","access_role","link_status","report_count"],"title":"PatientResponse"},"QuickActionResponse":{"properties":{"action":{"type":"string","title":"Action"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"icon":{"type":"string","title":"Icon"},"url":{"type":"string","title":"Url"},"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count"}},"type":"object","required":["action","title","description","icon","url","count"],"title":"QuickActionResponse"},"RateLimitResponse":{"properties":{"allowed":{"type":"boolean","title":"Allowed"},"analyses_remaining":{"type":"integer","title":"Analyses Remaining"},"uploads_remaining":{"type":"integer","title":"Uploads Remaining"},"can_analyze":{"type":"boolean","title":"Can Analyze"},"can_upload":{"type":"boolean","title":"Can Upload"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["allowed","analyses_remaining","uploads_remaining","can_analyze","can_upload"],"title":"RateLimitResponse"},"ReassignRequest":{"properties":{"patient_id":{"type":"integer","title":"Patient Id"}},"type":"object","required":["patient_id"],"title":"ReassignRequest"},"RecentActivityResponse":{"properties":{"id":{"type":"integer","title":"Id"},"type":{"type":"string","title":"Type"},"description":{"type":"string","title":"Description"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["id","type","description","timestamp","status"],"title":"RecentActivityResponse"},"ReferenceDataStatsResponse":{"properties":{"foods_count":{"type":"integer","title":"Foods Count"},"lab_chains_count":{"type":"integer","title":"Lab Chains Count"},"test_prices_count":{"type":"integer","title":"Test Prices Count"},"consultation_costs_count":{"type":"integer","title":"Consultation Costs Count"},"drug_interactions_count":{"type":"integer","title":"Drug Interactions Count"},"last_updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated"}},"type":"object","required":["foods_count","lab_chains_count","test_prices_count","consultation_costs_count","drug_interactions_count"],"title":"ReferenceDataStatsResponse"},"RefreshRequest":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"RefreshRequest"},"RegisterResponse":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"full_name":{"type":"string","title":"Full Name"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"}},"type":"object","required":["id","email","full_name","is_active","is_verified","created_at","access_token"],"title":"RegisterResponse"},"RegisterTokenRequest":{"properties":{"token":{"type":"string","minLength":10,"title":"Token","description":"FCM device token"},"platform":{"type":"string","pattern":"^(android|ios)$","title":"Platform","description":"Device platform"},"device_model":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Device Model"},"app_version":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"App Version"}},"type":"object","required":["token","platform"],"title":"RegisterTokenRequest"},"ReportDetailResponse":{"properties":{"id":{"type":"integer","title":"Id"},"original_filename":{"type":"string","title":"Original Filename"},"file_size":{"type":"integer","title":"File Size"},"file_type":{"type":"string","title":"File Type"},"status":{"type":"string","title":"Status"},"report_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Type"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"key_findings":{"anyOf":[{},{"type":"null"}],"title":"Key Findings"},"recommendations":{"anyOf":[{},{"type":"null"}],"title":"Recommendations"},"confidence_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence Score"},"processing_time_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Processing Time Seconds"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"analysis_result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Analysis Result"},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel","default":"web"}},"type":"object","required":["id","original_filename","file_size","file_type","status","report_type","summary","key_findings","recommendations","confidence_score","processing_time_seconds","created_at","updated_at","analysis_result"],"title":"ReportDetailResponse"},"ReportHistoryListResponse":{"properties":{"reports":{"items":{"$ref":"#/components/schemas/ReportHistoryResponse"},"type":"array","title":"Reports"},"total_count":{"type":"integer","title":"Total Count"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["reports","total_count","page","per_page","total_pages"],"title":"ReportHistoryListResponse"},"ReportHistoryResponse":{"properties":{"id":{"type":"integer","title":"Id"},"original_filename":{"type":"string","title":"Original Filename"},"status":{"type":"string","title":"Status"},"report_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Type"},"file_size":{"type":"integer","title":"File Size"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"processing_time_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Processing Time Seconds"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags","default":[]}},"type":"object","required":["id","original_filename","status","report_type","file_size","created_at","updated_at","processing_time_seconds"],"title":"ReportHistoryResponse"},"ReportListResponse":{"properties":{"reports":{"items":{"$ref":"#/components/schemas/ReportDetailResponse"},"type":"array","title":"Reports"},"total_count":{"type":"integer","title":"Total Count"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["reports","total_count","page","per_page","total_pages"],"title":"ReportListResponse"},"ReportTrendResponse":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"whatsapp_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Whatsapp User Id"},"parameter_name":{"type":"string","title":"Parameter Name"},"parameter_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parameter Category"},"value":{"type":"number","title":"Value"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"reference_range_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reference Range Min"},"reference_range_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reference Range Max"},"is_normal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Normal"},"deviation_percentage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Deviation Percentage"},"report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"},"report_date":{"type":"string","format":"date","title":"Report Date"},"report_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Type"},"lab_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lab Name"},"previous_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Previous Value"},"value_change":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Change"},"percentage_change":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percentage Change"},"trend_direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trend Direction"},"days_since_last_test":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Since Last Test"},"is_critical":{"type":"boolean","title":"Is Critical","default":false},"trend_alert":{"type":"boolean","title":"Trend Alert","default":false},"requires_attention":{"type":"boolean","title":"Requires Attention","default":false},"clinical_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Clinical Notes"},"extracted_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extracted By"},"confidence_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence Score"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","parameter_name","value","report_date"],"title":"ReportTrendResponse"},"ReportUpdateRequest":{"properties":{"is_flagged":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Flagged"},"admin_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Notes"}},"type":"object","title":"ReportUpdateRequest"},"ReportUploadResponse":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id","default":0},"family_member_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Family Member Id"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"},"original_filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Filename"},"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size"},"file_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Type"},"status":{"type":"string","title":"Status","default":"pending"},"report_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report Type"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"key_findings":{"anyOf":[{},{"type":"null"}],"title":"Key Findings"},"recommendations":{"anyOf":[{},{"type":"null"}],"title":"Recommendations"},"analysis_result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Analysis Result"},"confidence_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence Score"},"processing_time_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Processing Time Seconds"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel","default":"mobile"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","created_at"],"title":"ReportUploadResponse"},"ReportsByTypeResponse":{"properties":{"report_type":{"type":"string","title":"Report Type"},"count":{"type":"integer","title":"Count"},"latest_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Latest Date"}},"type":"object","required":["report_type","count","latest_date"],"title":"ReportsByTypeResponse"},"RiskAssessmentResponse":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"whatsapp_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Whatsapp User Id"},"risk_type":{"type":"string","title":"Risk Type"},"risk_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Risk Category"},"risk_level":{"type":"string","title":"Risk Level"},"risk_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Risk Score"},"contributing_factors":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Contributing Factors"},"trend_indicators":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Trend Indicators"},"lifestyle_factors":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Lifestyle Factors"},"recommendations":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Recommendations"},"preventive_measures":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Preventive Measures"},"assessment_date":{"type":"string","format":"date","title":"Assessment Date"},"next_review_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Next Review Date"},"model_used":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Used"},"model_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Version"},"confidence_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence Score"},"is_reviewed":{"type":"boolean","title":"Is Reviewed","default":false},"is_active":{"type":"boolean","title":"Is Active","default":true},"superseded_by":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Superseded By"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"powered_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Powered By"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","risk_type","risk_level","assessment_date"],"title":"RiskAssessmentResponse"},"SecurityEventResponse":{"properties":{"id":{"type":"integer","title":"Id"},"event_type":{"type":"string","title":"Event Type"},"severity":{"type":"string","title":"Severity"},"description":{"type":"string","title":"Description"},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip Address"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_resolved":{"type":"boolean","title":"Is Resolved"}},"type":"object","required":["id","event_type","severity","description","ip_address","created_at","is_resolved"],"title":"SecurityEventResponse"},"SessionInfo":{"properties":{"id":{"type":"integer","title":"Id"},"ip_address":{"type":"string","title":"Ip Address"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"device":{"type":"string","title":"Device"},"last_activity":{"type":"string","format":"date-time","title":"Last Activity"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_current":{"type":"boolean","title":"Is Current"}},"type":"object","required":["id","ip_address","location","device","last_activity","created_at","is_current"],"title":"SessionInfo"},"SettingCategory":{"type":"string","enum":["ai_model","rate_limiting","features","system","security","payment"],"title":"SettingCategory"},"SettingResponse":{"properties":{"id":{"type":"integer","title":"Id"},"key":{"type":"string","title":"Key"},"value":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":true,"type":"object"}],"title":"Value"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"category":{"type":"string","title":"Category"},"data_type":{"type":"string","title":"Data Type"},"is_sensitive":{"type":"boolean","title":"Is Sensitive"},"requires_restart":{"type":"boolean","title":"Requires Restart"},"last_modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Modified By"},"last_modified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified At"}},"type":"object","required":["id","key","value","description","category","data_type","is_sensitive","requires_restart","last_modified_by","last_modified_at"],"title":"SettingResponse"},"SettingUpdateRequest":{"properties":{"value":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":true,"type":"object"}],"title":"Value"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["value","description"],"title":"SettingUpdateRequest"},"Setup2FAResponse":{"properties":{"secret":{"type":"string","title":"Secret"},"qr_code":{"type":"string","title":"Qr Code"},"backup_codes":{"items":{"type":"string"},"type":"array","title":"Backup Codes"}},"type":"object","required":["secret","qr_code","backup_codes"],"title":"Setup2FAResponse"},"SmsNotifyRequest":{"properties":{"phoneNo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phoneno"},"userId":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Userid"}},"type":"object","title":"SmsNotifyRequest","description":"Deep-link SMS for a patient with records but no ABHA\n(HIP_INIT_NOTIFY_HIECM — mandatory)."},"StatsResponse":{"properties":{"total":{"type":"integer","title":"Total"},"since":{"type":"string","format":"date-time","title":"Since"},"by_bucket":{"items":{"$ref":"#/components/schemas/BucketStat"},"type":"array","title":"By Bucket"},"overall_guard_fired_rate":{"type":"number","title":"Overall Guard Fired Rate"}},"type":"object","required":["total","since","by_bucket","overall_guard_fired_rate"],"title":"StatsResponse"},"SystemStatusResponse":{"properties":{"maintenance_mode":{"type":"boolean","title":"Maintenance Mode"},"maintenance_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Maintenance Message"},"system_version":{"type":"string","title":"System Version"},"uptime":{"type":"string","title":"Uptime"},"active_users":{"type":"integer","title":"Active Users"},"total_reports_processed":{"type":"integer","title":"Total Reports Processed"}},"type":"object","required":["maintenance_mode","maintenance_message","system_version","uptime","active_users","total_reports_processed"],"title":"SystemStatusResponse"},"TelegramLinkStatusResponse":{"properties":{"is_linked":{"type":"boolean","title":"Is Linked"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"linked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Linked At"}},"type":"object","required":["is_linked","display_name","linked_at"],"title":"TelegramLinkStatusResponse"},"TestPriceCreate":{"properties":{"test_id":{"type":"string","title":"Test Id"},"name":{"type":"string","title":"Name"},"name_hi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Hi"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"city_prices":{"anyOf":[{"additionalProperties":{"additionalProperties":{"type":"number"},"type":"object"},"type":"object"},{"type":"null"}],"title":"City Prices"},"fasting_required":{"type":"boolean","title":"Fasting Required","default":false},"report_time_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Time Hours"},"home_collection_available":{"type":"boolean","title":"Home Collection Available","default":true},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["test_id","name"],"title":"TestPriceCreate"},"TestPriceResponse":{"properties":{"test_id":{"type":"string","title":"Test Id"},"name":{"type":"string","title":"Name"},"name_hi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Hi"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"city_prices":{"anyOf":[{"additionalProperties":{"additionalProperties":{"type":"number"},"type":"object"},"type":"object"},{"type":"null"}],"title":"City Prices"},"fasting_required":{"type":"boolean","title":"Fasting Required","default":false},"report_time_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Time Hours"},"home_collection_available":{"type":"boolean","title":"Home Collection Available","default":true},"is_active":{"type":"boolean","title":"Is Active","default":true},"id":{"type":"integer","title":"Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"updated_by":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated By"}},"type":"object","required":["test_id","name","id"],"title":"TestPriceResponse"},"TestPriceUpdate":{"properties":{"test_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"name_hi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name Hi"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"city_prices":{"anyOf":[{"additionalProperties":{"additionalProperties":{"type":"number"},"type":"object"},"type":"object"},{"type":"null"}],"title":"City Prices"},"fasting_required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Fasting Required"},"report_time_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Time Hours"},"home_collection_available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Home Collection Available"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"TestPriceUpdate"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"expires_in":{"type":"integer","title":"Expires In"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"}},"type":"object","required":["access_token","expires_in"],"title":"Token"},"TrainingDataVerification":{"properties":{"is_approved":{"type":"boolean","title":"Is Approved"},"corrected_analysis":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Corrected Analysis"},"rejection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Reason"}},"type":"object","required":["is_approved"],"title":"TrainingDataVerification"},"TrainingFeedbackCreate":{"properties":{"report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"},"guest_report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Guest Report Id"},"feedback_type":{"type":"string","maxLength":50,"title":"Feedback Type"},"original_field":{"type":"string","maxLength":100,"title":"Original Field"},"original_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Value"},"corrected_value":{"type":"string","title":"Corrected Value"},"correction_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correction Context"}},"type":"object","required":["feedback_type","original_field","corrected_value"],"title":"TrainingFeedbackCreate"},"TrainingFeedbackResponse":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"whatsapp_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Whatsapp User Id"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Report Id"},"guest_report_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Guest Report Id"},"feedback_type":{"type":"string","title":"Feedback Type"},"original_field":{"type":"string","title":"Original Field"},"original_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Value"},"corrected_value":{"type":"string","title":"Corrected Value"},"correction_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correction Context"},"confidence_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence Score"},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"is_used_for_training":{"type":"boolean","title":"Is Used For Training","default":false},"is_anonymized":{"type":"boolean","title":"Is Anonymized","default":false},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","feedback_type","original_field","corrected_value"],"title":"TrainingFeedbackResponse"},"TrendPerson":{"properties":{"patient_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Patient Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"is_self":{"type":"boolean","title":"Is Self","default":false},"relationship_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Type"},"link_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Status"},"data_points":{"type":"integer","title":"Data Points"},"latest_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Latest Date"}},"type":"object","required":["data_points"],"title":"TrendPerson","description":"A person with trend data on the account. Trends are per person: a\nfamily-shared account holds several people's series, never one mixed\nseries. patient_id=None is data not yet attributed to anyone."},"TrendSummary":{"properties":{"parameter_name":{"type":"string","title":"Parameter Name"},"parameter_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parameter Category"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"latest_value":{"type":"number","title":"Latest Value"},"latest_date":{"type":"string","format":"date","title":"Latest Date"},"trend_direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trend Direction"},"data_points":{"type":"integer","title":"Data Points"},"is_critical":{"type":"boolean","title":"Is Critical","default":false},"trend_alert":{"type":"boolean","title":"Trend Alert","default":false},"reference_range_min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reference Range Min"},"reference_range_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reference Range Max"},"previous_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Previous Value"},"percentage_change":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percentage Change"}},"type":"object","required":["parameter_name","latest_value","latest_date","data_points"],"title":"TrendSummary","description":"Summary of trends for a specific parameter over time."},"UnregisterTokenRequest":{"properties":{"token":{"type":"string","minLength":10,"title":"Token"}},"type":"object","required":["token"],"title":"UnregisterTokenRequest"},"UpdateNotificationPrefsRequest":{"properties":{"push_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Push Enabled"},"report_completion":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Report Completion"}},"type":"object","title":"UpdateNotificationPrefsRequest"},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"},"full_name":{"type":"string","title":"Full Name"}},"type":"object","required":["email","password","full_name"],"title":"UserCreate"},"UserDetailResponse":{"properties":{"user":{"additionalProperties":true,"type":"object","title":"User"},"stats":{"additionalProperties":true,"type":"object","title":"Stats"},"recent_activity":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Recent Activity"}},"type":"object","required":["user","stats","recent_activity"],"title":"UserDetailResponse"},"UserListResponse":{"properties":{"users":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Users"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"limit":{"type":"integer","title":"Limit"},"total_pages":{"type":"integer","title":"Total Pages"}},"type":"object","required":["users","total","page","limit","total_pages"],"title":"UserListResponse"},"UserLogin":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"UserLogin"},"UserPreferencesResponse":{"properties":{"theme":{"type":"string","title":"Theme"},"language":{"type":"string","title":"Language"},"timezone":{"type":"string","title":"Timezone"},"email_notifications":{"type":"boolean","title":"Email Notifications"},"push_notifications":{"type":"boolean","title":"Push Notifications"},"report_completion_notify":{"type":"boolean","title":"Report Completion Notify"},"marketing_emails":{"type":"boolean","title":"Marketing Emails"},"data_retention_days":{"type":"integer","title":"Data Retention Days"},"auto_delete_old_reports":{"type":"boolean","title":"Auto Delete Old Reports"},"allow_data_for_training":{"type":"boolean","title":"Allow Data For Training"},"profile_visibility":{"type":"string","title":"Profile Visibility"},"share_usage_analytics":{"type":"boolean","title":"Share Usage Analytics"}},"type":"object","required":["theme","language","timezone","email_notifications","push_notifications","report_completion_notify","marketing_emails","data_retention_days","auto_delete_old_reports","allow_data_for_training","profile_visibility","share_usage_analytics"],"title":"UserPreferencesResponse"},"UserPreferencesUpdate":{"properties":{"theme":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"email_notifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Email Notifications"},"push_notifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Push Notifications"},"report_completion_notify":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Report Completion Notify"},"marketing_emails":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Marketing Emails"},"data_retention_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Data Retention Days"},"auto_delete_old_reports":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Delete Old Reports"},"allow_data_for_training":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Data For Training"},"profile_visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Visibility"},"share_usage_analytics":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Share Usage Analytics"}},"type":"object","title":"UserPreferencesUpdate"},"UserProfileResponse":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"full_name":{"type":"string","title":"Full Name"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"last_login":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","email","full_name","is_active","is_verified","last_login","created_at"],"title":"UserProfileResponse"},"UserProfileUpdate":{"properties":{"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"}},"type":"object","title":"UserProfileUpdate"},"UserResponse":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"full_name":{"type":"string","title":"Full Name"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"auth_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auth Provider","default":"email"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","email","full_name","is_active","is_verified","created_at"],"title":"UserResponse"},"UserUpdateRequest":{"properties":{"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"},"admin_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Notes"}},"type":"object","title":"UserUpdateRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyMobileRequest":{"properties":{"txnId":{"type":"string","title":"Txnid"},"otp":{"type":"string","title":"Otp"},"scope":{"items":{"type":"string"},"type":"array","title":"Scope","default":["abha-enrol","mobile-verify"]}},"type":"object","required":["txnId","otp"],"title":"VerifyMobileRequest"},"WAConnectRequest":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"WAConnectRequest","description":"Request body for WhatsApp account connection"},"WAConnectResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"access_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"},"user_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Name"},"is_new_user":{"type":"boolean","title":"Is New User","default":false}},"type":"object","required":["success","message"],"title":"WAConnectResponse","description":"Response for WhatsApp account connection"},"WhatsAppLinkStatusResponse":{"properties":{"is_linked":{"type":"boolean","title":"Is Linked"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"linked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Linked At"}},"type":"object","required":["is_linked","phone_number","linked_at"],"title":"WhatsAppLinkStatusResponse"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}