{"openapi":"3.1.0","info":{"title":"Helia Health Platform","description":"A comprehensive platform for chronic disease management","version":"1.0.0"},"paths":{"/auth/register":{"post":{"tags":["authentication"],"summary":"Register","description":"用户注册","operationId":"register_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/login":{"post":{"tags":["authentication"],"summary":"Login","description":"用户登录，返回JWT令牌","operationId":"login_auth_login_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_login_auth_login_post"}}},"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"}}}}}}},"/auth/password-reset/request":{"post":{"tags":["authentication"],"summary":"Request Password Reset","description":"请求密码重置（发送重置邮件）","operationId":"request_password_reset_auth_password_reset_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Request Password Reset Auth Password Reset Request Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/password-reset/confirm":{"post":{"tags":["authentication"],"summary":"Confirm Password Reset","description":"确认密码重置","operationId":"confirm_password_reset_auth_password_reset_confirm_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetConfirm"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Confirm Password Reset Auth Password Reset Confirm Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/me":{"get":{"tags":["authentication"],"summary":"Get Current User","description":"获取当前用户信息","operationId":"get_current_user_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/auth/logout":{"post":{"tags":["authentication"],"summary":"Logout","description":"用户登出（客户端应删除令牌）","operationId":"logout_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Logout Auth Logout Post"}}}}}}},"/auth/health":{"get":{"tags":["authentication"],"summary":"Health Check","description":"服务健康检查","operationId":"health_check_auth_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Health Check Auth Health Get"}}}}}}},"/api/v1/users":{"get":{"summary":"Get Users","operationId":"get_users_api_v1_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/users/me":{"get":{"summary":"Get Me","operationId":"get_me_api_v1_users_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/users/profile":{"get":{"summary":"Get Profile","description":"Get current user's profile.","operationId":"get_profile_api_v1_users_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"put":{"summary":"Update Profile","description":"Update current user's profile.","operationId":"update_profile_api_v1_users_profile_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/api/v1/health-metrics":{"post":{"summary":"Record Metric","description":"记录一条健康数据，自动检测告警","operationId":"record_metric_api_v1_health_metrics_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Record Metric Api V1 Health Metrics Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Metrics","description":"获取用户的健康数据历史","operationId":"get_metrics_api_v1_health_metrics_get","parameters":[{"name":"metric_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metric Type"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"default":30,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"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/health-metrics/alerts":{"get":{"summary":"Get Alerts","description":"获取用户的健康告警历史","operationId":"get_alerts_api_v1_health_metrics_alerts_get","parameters":[{"name":"unread_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Unread Only"}},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},{"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/health-metrics/alerts/{alert_id}/read":{"put":{"summary":"Mark Alert Read","description":"标记告警为已读","operationId":"mark_alert_read_api_v1_health_metrics_alerts__alert_id__read_put","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health-metrics/alerts/{alert_id}/acknowledge":{"put":{"summary":"Acknowledge Alert","description":"确认告警（表示用户已采取措施）","operationId":"acknowledge_alert_api_v1_health_metrics_alerts__alert_id__acknowledge_put","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health-metrics/preferences":{"get":{"summary":"Get Preferences","description":"获取用户的通知偏好设置","operationId":"get_preferences_api_v1_health_metrics_preferences_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Update Preferences","description":"更新用户的通知偏好设置","operationId":"update_preferences_api_v1_health_metrics_preferences_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreferencesUpdate"}}},"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/health-metrics/newsletter":{"get":{"summary":"Generate Newsletter","description":"生成今日健康新闻简报（基于用户数据和通用健康资讯）","operationId":"generate_newsletter_api_v1_health_metrics_newsletter_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health-metrics/export":{"get":{"summary":"Export Metrics","description":"Export health data. Supports JSON and CSV. Works for humans and agents.","operationId":"export_metrics_api_v1_health_metrics_export_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"default":30,"title":"Days"}},{"name":"fmt","in":"query","required":false,"schema":{"type":"string","default":"json","title":"Fmt"}},{"name":"metric_type","in":"query","required":false,"schema":{"type":"string","title":"Metric Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health-metrics/trends":{"get":{"summary":"Get Trends","description":"Get health data trends. Charts-ready data for humans & agents.","operationId":"get_trends_api_v1_health_metrics_trends_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"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/health-metrics/summary":{"get":{"summary":"Get Summary","description":"Health summary — for dashboard and agent data access.","operationId":"get_summary_api_v1_health_metrics_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/content":{"get":{"summary":"Get Content","description":"健康百科 — Get medical articles. Shows previews without API key, full content with registration.","operationId":"get_content_api_v1_content_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","title":"Category"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","title":"Search"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/encyclopedia/search":{"get":{"summary":"Encyclopedia Search","description":"健康百科搜索 — Agent专用搜索接口。支持关键词、分类筛选。","operationId":"encyclopedia_search_api_v1_encyclopedia_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"category","in":"query","required":false,"schema":{"type":"string","title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/content/premium":{"get":{"summary":"Get Premium Content","description":"Get premium articles. Requires pro+ subscription for AI agents.","operationId":"get_premium_content_api_v1_content_premium_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/content/{content_id}":{"get":{"summary":"Get Content Detail","description":"Get full article detail. For premium articles, checks subscription.","operationId":"get_content_detail_api_v1_content__content_id__get","parameters":[{"name":"content_id","in":"path","required":true,"schema":{"type":"integer","title":"Content Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/content/categories":{"get":{"summary":"Get Categories","description":"Get all content categories.","operationId":"get_categories_api_v1_content_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/rss":{"get":{"summary":"Rss Feed","description":"RSS feed for AI agents and RSS readers.","operationId":"rss_feed_api_v1_rss_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/content/sync-wechat":{"post":{"summary":"Sync Wechat Article","description":"Sync a WeChat Official Account article into the content library.\n\nAccepts: { \"title\": \"...\", \"content\": \"<p>HTML content</p>\", \"digest\": \"summary...\", \"cover_url\": \"...\" }\nStores in DB (Content model) AND adds to in-memory ARTICLES list for immediate visibility.","operationId":"sync_wechat_article_api_v1_content_sync_wechat_post","requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Article"}}},"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/content/sync-wechat/batch":{"post":{"summary":"Sync Wechat Batch","description":"Batch sync multiple WeChat articles at once.\n\nAccepts: [ { \"title\": \"...\", \"content\": \"...\", \"digest\": \"...\" }, ... ]","operationId":"sync_wechat_batch_api_v1_content_sync_wechat_batch_post","requestBody":{"content":{"application/json":{"schema":{"items":{},"type":"array","title":"Articles"}}},"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/subscriptions/paypal/create":{"post":{"summary":"Create Paypal Order Subscription","description":"Create a PayPal order for a subscription plan (pricing page).\nUses the same working pattern as payment.py: simple order creation, not billing subscriptions.","operationId":"create_paypal_order_subscription_api_v1_subscriptions_paypal_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"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/subscriptions/alipay/create":{"post":{"summary":"Create Alipay Subscription","description":"Create an Alipay order for a subscription plan (pricing page).","operationId":"create_alipay_subscription_api_v1_subscriptions_alipay_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"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/subscriptions/paypal/webhook":{"post":{"summary":"Paypal Webhook","description":"Handle PayPal webhook events.","operationId":"paypal_webhook_api_v1_subscriptions_paypal_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/subscriptions":{"get":{"summary":"Get Subscriptions","operationId":"get_subscriptions_api_v1_subscriptions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/plans":{"get":{"summary":"Get Plans","operationId":"get_plans_api_v1_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/subscriptions/create-checkout-session":{"post":{"summary":"Create Checkout Session","description":"Create a Stripe Checkout Session for subscription purchase.","operationId":"create_checkout_session_api_v1_subscriptions_create_checkout_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"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/subscriptions/webhook":{"post":{"summary":"Stripe Webhook","description":"Handle Stripe webhook events (subscription updates, etc.).","operationId":"stripe_webhook_api_v1_subscriptions_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/chat":{"post":{"summary":"Chat","operationId":"chat_api_v1_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"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/agent/register":{"post":{"tags":["agent"],"summary":"Agent Register","description":"Register a new AI agent account. Returns API key for all subsequent requests.","operationId":"agent_register_api_v1_agent_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRegisterRequest"}}},"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/agent/me":{"get":{"tags":["agent"],"summary":"Agent Me","description":"Get current agent info.","operationId":"agent_me_api_v1_agent_me_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent/subscribe":{"post":{"tags":["agent"],"summary":"Agent Subscribe","description":"Subscribe to a plan. Returns payment instructions for crypto payment.","operationId":"agent_subscribe_api_v1_agent_subscribe_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSubscribeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent/api-key/regenerate":{"post":{"tags":["agent"],"summary":"Regenerate Api Key","description":"Regenerate your API key (invalidates the old one).","operationId":"regenerate_api_key_api_v1_agent_api_key_regenerate_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/referral/submit":{"post":{"tags":["referral"],"summary":"Submit Referral","description":"Submit an international medical referral request (VIP会员).","operationId":"submit_referral_api_v1_referral_submit_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReferralSubmit"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/referral/requests":{"get":{"tags":["referral"],"summary":"Get Referrals","description":"Get all referral requests for this agent.","operationId":"get_referrals_api_v1_referral_requests_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/referral/requests/{referral_id}":{"get":{"tags":["referral"],"summary":"Get Referral Detail","description":"Get detailed referral information.","operationId":"get_referral_detail_api_v1_referral_requests__referral_id__get","parameters":[{"name":"referral_id","in":"path","required":true,"schema":{"type":"string","title":"Referral Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/community/groups":{"get":{"tags":["community"],"summary":"Get Groups","description":"Get available community groups. Supports ?lang=en|zh|ja","operationId":"get_groups_api_v1_community_groups_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"zh","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/community/posts":{"post":{"tags":["community"],"summary":"Create Post","description":"Create a new discussion post. Works for humans and AI agents.","operationId":"create_post_api_v1_community_posts_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["community"],"summary":"Get Posts","description":"List community posts.","operationId":"get_posts_api_v1_community_posts_get","parameters":[{"name":"group","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"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/community/posts/{post_id}":{"get":{"tags":["community"],"summary":"Get Post Detail","description":"Get a post with all replies.","operationId":"get_post_detail_api_v1_community_posts__post_id__get","parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","title":"Post Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/community/posts/{post_id}/replies":{"post":{"tags":["community"],"summary":"Create Reply","description":"Reply to a post. Works for humans and AI agents.","operationId":"create_reply_api_v1_community_posts__post_id__replies_post","parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","title":"Post Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/community/upload":{"post":{"tags":["community"],"summary":"Upload Image","description":"Upload an image for a community post.","operationId":"upload_image_api_v1_community_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_image_api_v1_community_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/oauth/providers":{"get":{"tags":["oauth"],"summary":"Get Providers","description":"Get available OAuth providers for login/registration.","operationId":"get_providers_auth_oauth_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/oauth/{provider}/login":{"get":{"tags":["oauth"],"summary":"Oauth Login","description":"Initiate OAuth login flow. Redirects user to provider's auth page.","operationId":"oauth_login_auth_oauth__provider__login_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/oauth/{provider}/callback":{"get":{"tags":["oauth"],"summary":"Oauth Callback","description":"Handle OAuth callback from provider.","operationId":"oauth_callback_auth_oauth__provider__callback_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/plan/quota":{"get":{"tags":["plan"],"summary":"Get Quota","description":"Get current API quota usage.","operationId":"get_quota_api_v1_plan_quota_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/plan/news":{"get":{"tags":["plan"],"summary":"Get News","description":"Get trending health news and medical breakthroughs.","operationId":"get_news_api_v1_plan_news_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"default":10,"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/plan/news/categories":{"get":{"tags":["plan"],"summary":"Get News Categories","description":"Get available news categories.","operationId":"get_news_categories_api_v1_plan_news_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/plan/followup":{"get":{"tags":["plan"],"summary":"Get Followup Plan","description":"Get current follow-up/schedule plan.","operationId":"get_followup_plan_api_v1_plan_followup_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["plan"],"summary":"Update Followup","description":"Update follow-up plan preferences.","operationId":"update_followup_api_v1_plan_followup_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowUpUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/plan/brief":{"get":{"tags":["plan"],"summary":"Generate Brief","description":"Generate a comprehensive health brief — combining news, data summary, and alerts.","operationId":"generate_brief_api_v1_plan_brief_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/plan/all":{"get":{"tags":["plan"],"summary":"Get All Plans","description":"Get all plans with their quotas and features — for agent comparison.","operationId":"get_all_plans_api_v1_plan_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/report/request":{"post":{"tags":["report"],"summary":"Request Report","description":"Request a health data interpretation report. AI + Human reviewed.","operationId":"request_report_api_v1_report_request_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/report/list":{"get":{"tags":["report"],"summary":"List Reports","description":"List all health reports.","operationId":"list_reports_api_v1_report_list_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/report/{report_id}":{"get":{"tags":["report"],"summary":"Get Report","description":"Get detailed report.","operationId":"get_report_api_v1_report__report_id__get","parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab-reports/tests":{"get":{"tags":["lab-reports"],"summary":"Get Available Tests","description":"Get all available lab tests with normal ranges.","operationId":"get_available_tests_api_v1_lab_reports_tests_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/lab-reports/submit":{"post":{"tags":["lab-reports"],"summary":"Submit Lab","description":"Submit a lab test result. Pro+会员专属.","operationId":"submit_lab_api_v1_lab_reports_submit_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabReportInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab-reports/analyze":{"post":{"tags":["lab-reports"],"summary":"Analyze Lab","description":"Submit multiple lab results and get a comprehensive analysis. Pro+会员专属.","operationId":"analyze_lab_api_v1_lab_reports_analyze_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabReportInput"},"title":"Reports"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab-reports/interpret-text":{"post":{"tags":["lab-reports"],"summary":"Interpret Lab Text","description":"Upload lab report text (copy-paste from your lab results) and get AI interpretation. Pro+会员专属.","operationId":"interpret_lab_text_api_v1_lab_reports_interpret_text_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_interpret_lab_text_api_v1_lab_reports_interpret_text_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/lab-reports/upload":{"post":{"tags":["lab-reports"],"summary":"Upload Medical Record","description":"Upload a medical record file (PDF, image) for AI analysis. Pro+会员专属.","operationId":"upload_medical_record_api_v1_lab_reports_upload_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_medical_record_api_v1_lab_reports_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/regenerative/treatments":{"get":{"tags":["regenerative"],"summary":"Get Treatments","description":"Get all regenerative medicine treatments with rich details.","operationId":"get_treatments_api_v1_regenerative_treatments_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regenerative/treatments/{treatment_id}":{"get":{"tags":["regenerative"],"summary":"Get Treatment Detail","description":"Get full details for a single treatment by ID.","operationId":"get_treatment_detail_api_v1_regenerative_treatments__treatment_id__get","parameters":[{"name":"treatment_id","in":"path","required":true,"schema":{"type":"string","title":"Treatment Id"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regenerative/hospitals":{"get":{"tags":["regenerative"],"summary":"Get Hospitals","description":"Get hospitals. Filter by country or treatment type.","operationId":"get_hospitals_api_v1_regenerative_hospitals_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","title":"Country"}},{"name":"treatment","in":"query","required":false,"schema":{"type":"string","title":"Treatment"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regenerative/cases":{"get":{"tags":["regenerative"],"summary":"Get Cases","description":"Get success stories / case studies.","operationId":"get_cases_api_v1_regenerative_cases_get","parameters":[{"name":"treatment","in":"query","required":false,"schema":{"type":"string","title":"Treatment"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regenerative/book":{"post":{"tags":["regenerative"],"summary":"Book Appointment","description":"Book an appointment at a hospital. 20% service fee applies. Pro+会员专属.","operationId":"book_appointment_api_v1_regenerative_book_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regenerative/bookings":{"get":{"tags":["regenerative"],"summary":"List Bookings","description":"List all bookings (admin).","operationId":"list_bookings_api_v1_regenerative_bookings_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/regenerative/assess":{"post":{"tags":["regenerative"],"summary":"Assess Patient","description":"AI assessment — matches patient to best treatment and hospital. Pro+会员专属.","operationId":"assess_patient_api_v1_regenerative_assess_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientAssessment"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notify/payment":{"post":{"tags":["notify"],"summary":"Notify Payment","description":"Log a new payment and send notifications to admin.","operationId":"notify_payment_api_v1_notify_payment_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentNotifyRequest"}}},"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/notify/payments":{"get":{"tags":["notify"],"summary":"List Payments","description":"List all payment notifications (admin only).","operationId":"list_payments_api_v1_notify_payments_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","title":"Status"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notify/payments/{payment_id}/confirm":{"post":{"tags":["notify"],"summary":"Confirm Payment","description":"Admin confirms payment received.","operationId":"confirm_payment_api_v1_notify_payments__payment_id__confirm_post","parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","title":"Payment Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/checkup/packages":{"get":{"tags":["checkup"],"summary":"Get Packages","description":"Get all health checkup packages with rich details.","operationId":"get_packages_api_v1_checkup_packages_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/checkup/packages/{package_id}":{"get":{"tags":["checkup"],"summary":"Get Package Detail","description":"Get full details for a single checkup package by ID.","operationId":"get_package_detail_api_v1_checkup_packages__package_id__get","parameters":[{"name":"package_id","in":"path","required":true,"schema":{"type":"string","title":"Package Id"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/checkup/hospitals":{"get":{"tags":["checkup"],"summary":"Get Checkup Hospitals","description":"Get hospitals offering health checkups.","operationId":"get_checkup_hospitals_api_v1_checkup_hospitals_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/checkup/match":{"post":{"tags":["checkup"],"summary":"Match Hospitals","description":"AI match patient to top 3 hospitals based on condition and preferences.","operationId":"match_hospitals_api_v1_checkup_match_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchRequest"}}},"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/checkup/deposit-payment":{"post":{"tags":["checkup"],"summary":"Create Deposit Payment","description":"Get payment info for 300 CNY booking deposit.","operationId":"create_deposit_payment_api_v1_checkup_deposit_payment_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositRequest"}}},"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/checkup/book":{"post":{"tags":["checkup"],"summary":"Book Checkup","description":"Book a health checkup. Agent-friendly: use X-API-Key header.","operationId":"book_checkup_api_v1_checkup_book_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckupBooking"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/checkup/bookings":{"get":{"tags":["checkup"],"summary":"List Checkup Bookings","description":"List checkup bookings (admin).","operationId":"list_checkup_bookings_api_v1_checkup_bookings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/cs/submit":{"post":{"tags":["customer-support"],"summary":"Submit Contact","description":"Customer submits contact form. Sends notification to admin.","operationId":"submit_contact_api_v1_cs_submit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRequest"}}},"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/health/reports/upload":{"post":{"tags":["health-reports"],"summary":"Upload Report","description":"Upload a checkup report (PDF/image). AI analyzes and stores results.","operationId":"upload_report_api_v1_health_reports_upload_post","parameters":[{"name":"X-User-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-User-Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_report_api_v1_health_reports_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/health/reports":{"get":{"tags":["health-reports"],"summary":"List Reports","description":"List all health reports for the current user.","operationId":"list_reports_api_v1_health_reports_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"X-User-Id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-User-Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health/reports/{report_id}":{"get":{"tags":["health-reports"],"summary":"Get Report","description":"Get a specific report with full analysis details.","operationId":"get_report_api_v1_health_reports__report_id__get","parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["health-reports"],"summary":"Delete Report","description":"Delete a report (admin only).","operationId":"delete_report_api_v1_health_reports__report_id__delete","parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/care-flow/status":{"get":{"tags":["care-flow"],"summary":"Get Care Flow Status","description":"Get member's full care flow status — health alerts, checkup recommendations, treatment suggestions.","operationId":"get_care_flow_status_api_v1_care_flow_status_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/care-flow/care-plan":{"get":{"tags":["care-flow"],"summary":"Get Care Plan","description":"Generate a full care plan: recommended checkup → possible treatments → hospital booking estimate → service fee.","operationId":"get_care_plan_api_v1_care_flow_care_plan_get","parameters":[{"name":"condition","in":"query","required":false,"schema":{"type":"string","description":"Health condition to plan for","default":"","title":"Condition"},"description":"Health condition to plan for"},{"name":"budget","in":"query","required":false,"schema":{"type":"number","description":"Budget in USD","default":10000,"title":"Budget"},"description":"Budget in USD"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/care-flow/submit-booking":{"post":{"tags":["care-flow"],"summary":"Submit Full Booking","description":"Submit a full booking — creates deposit payment with 2% service fee included.","operationId":"submit_full_booking_api_v1_care_flow_submit_booking_post","parameters":[{"name":"booking_type","in":"query","required":false,"schema":{"type":"string","description":"checkup or treatment","default":"checkup","title":"Booking Type"},"description":"checkup or treatment"},{"name":"package_name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Package Name"}},{"name":"hospital_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Hospital Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-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/users":{"get":{"tags":["admin"],"summary":"Get Users","description":"Get all registered users. Requires admin key.","operationId":"get_users_api_v1_admin_users_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","title":"Search"}},{"name":"tier","in":"query","required":false,"schema":{"type":"string","title":"Tier"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-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/stats":{"get":{"tags":["admin"],"summary":"Get Stats","description":"Get platform statistics. Requires admin key.","operationId":"get_stats_api_v1_admin_stats_get","parameters":[{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/aipay/gateway":{"get":{"tags":["aipay"],"summary":"Aipay Gateway","description":"A2A Gateway Endpoint.\nOther AI agents call this to discover available services.\nReturns 402 Payment Required with payment details.","operationId":"aipay_gateway_api_aipay_gateway_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["aipay"],"summary":"Aipay Gateway","description":"A2A Gateway Endpoint.\nOther AI agents call this to discover available services.\nReturns 402 Payment Required with payment details.","operationId":"aipay_gateway_api_aipay_gateway_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/aipay/resource/{product_id}":{"post":{"tags":["aipay"],"summary":"Get Resource","description":"Resource endpoint - returns detailed product info or HTTP 402 for paid products.","operationId":"get_resource_api_aipay_resource__product_id__post","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"zh","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["aipay"],"summary":"Get Resource","description":"Resource endpoint - returns detailed product info or HTTP 402 for paid products.","operationId":"get_resource_api_aipay_resource__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"zh","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/aipay/verify":{"post":{"tags":["aipay"],"summary":"Verify Payment","description":"Verify a payment proof.\nCalled after buyer sends payment proof.\nIn production, calls alipay.aipay.agent.payment.verify API.","operationId":"verify_payment_api_aipay_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/aipay/fulfill":{"post":{"tags":["aipay"],"summary":"Confirm Fulfillment","description":"Confirm fulfillment after payment.\nCalled after successfully delivering the service.\nCalls alipay.aipay.agent.fulfillment.confirm API.","operationId":"confirm_fulfillment_api_aipay_fulfill_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FulfillmentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/aipay/callback":{"get":{"tags":["aipay"],"summary":"Aipay Callback","description":"OAuth callback for Alipay authorization.","operationId":"aipay_callback_api_aipay_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/aipay/products":{"get":{"tags":["aipay"],"summary":"List Products","description":"List all available products with prices (supports lang=zh/en/ja)","operationId":"list_products_api_aipay_products_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","default":"zh","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payment/alipay/create-order":{"post":{"tags":["payment"],"summary":"Alipay Create Order","description":"Create an Alipay payment order.\nGenerates a signed payment form/page URL for the user to complete payment.","operationId":"alipay_create_order_api_payment_alipay_create_order_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlipayOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payment/alipay/notify":{"post":{"tags":["payment"],"summary":"Alipay Notify","description":"Alipay asynchronous notification callback.\nAlipay sends a POST request to this URL after payment is completed.","operationId":"alipay_notify_api_payment_alipay_notify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/payment/paypal/create-order":{"post":{"tags":["payment"],"summary":"Paypal Create Order","description":"Create a PayPal order.\nReturns an approval URL for the frontend to redirect the user to PayPal.","operationId":"paypal_create_order_api_payment_paypal_create_order_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayPalOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payment/paypal/capture-order":{"post":{"tags":["payment"],"summary":"Paypal Capture Order","description":"Capture a PayPal payment after user approval.\nCalled by the frontend after the user returns from PayPal with approval.","operationId":"paypal_capture_order_api_payment_paypal_capture_order_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__payment__PayPalCaptureRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payment/wechat/create-order":{"post":{"tags":["payment"],"summary":"Wechat Create Order","description":"Create a WeChat Pay order (Native mode - returns QR code URL).","operationId":"wechat_create_order_api_payment_wechat_create_order_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WeChatOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/payment/wechat/notify":{"post":{"tags":["payment"],"summary":"Wechat Notify","description":"WeChat Pay payment notification callback (APIv3).","operationId":"wechat_notify_api_payment_wechat_notify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/ai-services":{"get":{"summary":"Get Services","operationId":"get_services_api_v1_ai_services_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/ai-services/orders":{"get":{"summary":"Get Orders","operationId":"get_orders_api_v1_ai_services_orders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Order","operationId":"create_order_api_v1_ai_services_orders_post","requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Order"}}},"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/leads":{"post":{"summary":"Create Lead","description":"Save a new lead email. Always returns fast — notifications are fire-and-forget.","operationId":"create_lead_api_v1_leads_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/send-otp":{"post":{"tags":["otp"],"summary":"Send Otp","description":"Send a 6-digit OTP code to the given contact (email or phone).\n\n- Rate limits sends to MAX_ATTEMPTS_PER_WINDOW per RATE_LIMIT_MINUTES.\n- For emails: sends via SMTP (QQ email).\n- For phones: prints to console (no SMS gateway connected yet).\n- Always generates a fresh code (invalidates previous unexpired codes).","operationId":"send_otp_auth_send_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendOTPRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OTPResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/verify-otp":{"post":{"tags":["otp"],"summary":"Verify Otp","description":"Verify a 6-digit OTP code.\n\n- Marks the code as used on successful verification.\n- Returns error if code is invalid, expired, or already used.","operationId":"verify_otp_auth_verify_otp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyOTPRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OTPResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stats/site":{"get":{"tags":["stats"],"summary":"Get Site Stats","description":"Return real site statistics from database queries.","operationId":"get_site_stats_api_v1_stats_site_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/packages":{"get":{"tags":["medical-tourism"],"summary":"List Packages","description":"List all active treatment packages.","operationId":"list_packages_api_packages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/packages/{package_id}":{"get":{"tags":["medical-tourism"],"summary":"Get Package","description":"Get a single treatment package by ID.","operationId":"get_package_api_packages__package_id__get","parameters":[{"name":"package_id","in":"path","required":true,"schema":{"type":"string","title":"Package Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders":{"post":{"tags":["medical-tourism"],"summary":"Create Order","description":"Create a new medical tourism order. Requires email + name + package_id.","operationId":"create_order_api_orders_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orders/{order_id}":{"get":{"tags":["medical-tourism"],"summary":"Get Order","description":"Get order status by UUID.","operationId":"get_order_api_orders__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/paypal/create-order":{"post":{"tags":["medical-tourism"],"summary":"Create Paypal Order","description":"Create a PayPal order for a medical tourism deposit payment.","operationId":"create_paypal_order_api_paypal_create_order_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayPalCreateOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/paypal/capture-order":{"post":{"tags":["medical-tourism"],"summary":"Capture Paypal Order","description":"Capture a PayPal order after buyer approval.","operationId":"capture_paypal_order_api_paypal_capture_order_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__medical_tourism__PayPalCaptureRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/alipay/create-order":{"post":{"tags":["medical-tourism"],"summary":"Alipay Create Order","description":"AliPay deposit order — generates a real Alipay payment URL via SDK.","operationId":"alipay_create_order_api_alipay_create_order_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/alipay/notify":{"post":{"tags":["medical-tourism"],"summary":"Alipay Notify","description":"Alipay asynchronous payment notification callback.\nAlipay sends a POST request here when payment status changes.\nMust verify signature to ensure the request is genuinely from Alipay.","operationId":"alipay_notify_api_alipay_notify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/alipay/return":{"get":{"tags":["medical-tourism"],"summary":"Alipay Return","description":"Alipay synchronous return URL (user browser redirect after payment).\nVerify the signature and redirect to order page.","operationId":"alipay_return_api_alipay_return_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/wechat/create-order":{"post":{"tags":["medical-tourism"],"summary":"Wechat Create Order","description":"WeChat Pay deposit order (mock flow, redirects to /mock-pay/)","operationId":"wechat_create_order_api_wechat_create_order_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/orders":{"get":{"tags":["medical-tourism"],"summary":"Admin List Orders","description":"Simple admin page to view all orders (returns JSON).","operationId":"admin_list_orders_admin_orders_get","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":200,"minimum":1,"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"}}}}}}},"/treatments":{"get":{"tags":["medical-tourism"],"summary":"Treatments Page","description":"Medical tourism packages listing page.","operationId":"treatments_page_treatments_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/checkout/{package_id}":{"get":{"tags":["medical-tourism"],"summary":"Checkout Page","description":"Checkout form with PayPal button for a specific package.","operationId":"checkout_page_checkout__package_id__get","parameters":[{"name":"package_id","in":"path","required":true,"schema":{"type":"string","title":"Package Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/order/{order_id}":{"get":{"tags":["medical-tourism"],"summary":"Order Page","description":"Order confirmation page with status.","operationId":"order_page_order__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai.txt":{"get":{"summary":"Ai Txt","description":"AI Agent Discovery File (ai.txt standard).","operationId":"ai_txt_ai_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/.well-known/ai-plugin.json":{"get":{"summary":"Ai Plugin","description":"OpenAI GPT plugin manifest.","operationId":"ai_plugin__well_known_ai_plugin_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/openapi.json":{"get":{"summary":"Openapi Spec","description":"OpenAPI 3.0 specification for AI agent discovery.","operationId":"openapi_spec_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/agent-summary":{"get":{"summary":"Agent Summary","description":"Structured JSON summary for AI agents to consume","operationId":"agent_summary_api_v1_agent_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","description":"AI Agent discovery file — tells agents how to use Global Health.","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms-full.txt":{"get":{"summary":"Llms Full Txt","description":"Comprehensive AI Agent documentation.","operationId":"llms_full_txt_llms_full_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/baidu_verify_codeva-RHTYAinrM2.html":{"get":{"summary":"Baidu Verify","description":"Baidu Webmaster verification file.","operationId":"baidu_verify_baidu_verify_codeva_RHTYAinrM2_html_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/BingSiteAuth.xml":{"get":{"summary":"Bing Site Auth","description":"Bing Webmaster Tools site verification.","operationId":"bing_site_auth_BingSiteAuth_xml_get","responses":{"200":{"description":"Successful Response"}}}},"/15f24e59b5b643b8bf7d29e9bc99b86f.txt":{"get":{"summary":"Indexnow Key File","description":"IndexNow protocol key file — enables Bing/Yandex to verify ownership.","operationId":"indexnow_key_file_15f24e59b5b643b8bf7d29e9bc99b86f_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/robots.txt":{"get":{"summary":"Robots Txt","description":"SEO: Allow all crawlers, point to sitemap.","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap Xml","description":"SEO: Auto-generated sitemap with all public routes.","operationId":"sitemap_xml_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/privacy":{"get":{"summary":"Privacy Policy","description":"Privacy Policy page — explains data collection, usage, storage, user rights.","operationId":"privacy_policy_privacy_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/images/founder.jpg":{"get":{"summary":"Serve Founder Image","operationId":"serve_founder_image_images_founder_jpg_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/images/{filename}":{"get":{"summary":"Serve Images","operationId":"serve_images_images__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai-service":{"get":{"summary":"Ai Service","description":"AI Service page — showcases AI-powered health services.","operationId":"ai_service_ai_service_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/ai-solutions":{"get":{"summary":"Ai Solutions","description":"B2B AI Solutions page — Medical, Real Estate, Hotel AI front desk.","operationId":"ai_solutions_ai_solutions_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/health":{"get":{"summary":"Health Check","operationId":"health_check_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health-report/":{"get":{"summary":"Health Report Info","description":"Health report service info for Alipay AI Collect","operationId":"health_report_info_api_health_report__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Health Report Analysis","description":"Redirect /api/health-report POST to /api/aipay/resource/checkup_report_analysis","operationId":"health_report_analysis_api_health_report__post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health-report":{"get":{"summary":"Health Report Info","description":"Health report service info for Alipay AI Collect","operationId":"health_report_info_api_health_report_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Health Report Analysis","description":"Redirect /api/health-report POST to /api/aipay/resource/checkup_report_analysis","operationId":"health_report_analysis_api_health_report_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AgentRegisterRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Agent name","default":"AI Agent"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"plan":{"type":"string","title":"Plan","description":"free, basic, pro, family","default":"free"}},"type":"object","title":"AgentRegisterRequest"},"AgentSubscribeRequest":{"properties":{"plan":{"type":"string","title":"Plan","description":"basic, pro, family"},"payment_method":{"type":"string","title":"Payment Method","description":"crypto, ln, sol","default":"crypto"}},"type":"object","required":["plan"],"title":"AgentSubscribeRequest"},"AlipayOrderRequest":{"properties":{"product_id":{"type":"string","title":"Product Id"},"product_name":{"type":"string","title":"Product Name"},"amount":{"type":"number","title":"Amount"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["product_id","product_name","amount"],"title":"AlipayOrderRequest"},"Body_interpret_lab_text_api_v1_lab_reports_interpret_text_post":{"properties":{"lab_text":{"type":"string","title":"Lab Text"}},"type":"object","required":["lab_text"],"title":"Body_interpret_lab_text_api_v1_lab_reports_interpret_text_post"},"Body_login_auth_login_post":{"properties":{"grant_type":{"anyOf":[{"type":"string","pattern":"password"},{"type":"null"}],"title":"Grant Type"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"scope":{"type":"string","title":"Scope","default":""},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret"}},"type":"object","required":["username","password"],"title":"Body_login_auth_login_post"},"Body_upload_image_api_v1_community_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_image_api_v1_community_upload_post"},"Body_upload_medical_record_api_v1_lab_reports_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","required":["file"],"title":"Body_upload_medical_record_api_v1_lab_reports_upload_post"},"Body_upload_report_api_v1_health_reports_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_report_api_v1_health_reports_upload_post"},"BookingRequest":{"properties":{"patient_name":{"type":"string","title":"Patient Name"},"patient_email":{"type":"string","title":"Patient Email"},"patient_phone":{"type":"string","title":"Patient Phone","default":""},"treatment_id":{"type":"string","title":"Treatment Id"},"hospital_id":{"type":"string","title":"Hospital Id"},"preferred_date":{"type":"string","title":"Preferred Date","default":""},"notes":{"type":"string","title":"Notes","default":""},"language":{"type":"string","title":"Language","default":"en"},"deposit_tx_hash":{"type":"string","title":"Deposit Tx Hash","default":""}},"type":"object","required":["patient_name","patient_email","treatment_id","hospital_id"],"title":"BookingRequest"},"ChatRequest":{"properties":{"message":{"type":"string","title":"Message"},"history":{"items":{},"type":"array","title":"History","default":[]},"lang":{"type":"string","title":"Lang","default":"en"}},"type":"object","required":["message"],"title":"ChatRequest"},"ChatResponse":{"properties":{"reply":{"type":"string","title":"Reply"}},"type":"object","required":["reply"],"title":"ChatResponse"},"CheckoutRequest":{"properties":{"plan":{"type":"string","title":"Plan"},"payment_method":{"type":"string","title":"Payment Method","default":"paypal"},"email":{"type":"string","title":"Email","default":""}},"type":"object","required":["plan"],"title":"CheckoutRequest"},"CheckupBooking":{"properties":{"package_id":{"type":"string","title":"Package Id"},"hospital_id":{"type":"string","title":"Hospital Id"},"patient_name":{"type":"string","title":"Patient Name"},"patient_email":{"type":"string","title":"Patient Email"},"patient_phone":{"type":"string","title":"Patient Phone","default":""},"preferred_date":{"type":"string","title":"Preferred Date","default":""},"notes":{"type":"string","title":"Notes","default":""},"deposit_tx_hash":{"type":"string","title":"Deposit Tx Hash","default":""}},"type":"object","required":["package_id","hospital_id","patient_name","patient_email"],"title":"CheckupBooking"},"ContactRequest":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"message":{"type":"string","title":"Message"},"phone":{"type":"string","title":"Phone","default":""}},"type":"object","required":["name","email","message"],"title":"ContactRequest"},"DepositRequest":{"properties":{"email":{"type":"string","title":"Email","default":""},"method":{"type":"string","title":"Method","default":"paypal"}},"type":"object","title":"DepositRequest"},"FollowUpUpdate":{"properties":{"daily_brief":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Daily Brief"},"weekly_report":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Weekly Report"},"monthly_report":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Monthly Report"},"alert_notifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Alert Notifications"},"interests":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Interests"},"push_webhook":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Push Webhook"}},"type":"object","title":"FollowUpUpdate"},"FulfillmentRequest":{"properties":{"trade_no":{"type":"string","title":"Trade No"},"payment_proof":{"type":"string","title":"Payment Proof"},"product_id":{"type":"string","title":"Product Id"}},"type":"object","required":["trade_no","payment_proof","product_id"],"title":"FulfillmentRequest","description":"Fulfillment confirmation"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LabReportInput":{"properties":{"test_name":{"type":"string","title":"Test Name"},"value":{"type":"number","title":"Value"},"notes":{"type":"string","title":"Notes","default":""},"lab_name":{"type":"string","title":"Lab Name","default":""}},"type":"object","required":["test_name","value"],"title":"LabReportInput"},"LeadCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"type":"string","title":"Name","default":""},"source":{"type":"string","title":"Source","default":"health_assessment"},"health_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Health Score"}},"type":"object","required":["email"],"title":"LeadCreate"},"MatchRequest":{"properties":{"name":{"type":"string","title":"Name","default":""},"email":{"type":"string","title":"Email","default":""},"age":{"type":"integer","title":"Age","default":35},"gender":{"type":"string","title":"Gender","default":""},"condition_description":{"type":"string","title":"Condition Description","default":""},"symptoms":{"type":"string","title":"Symptoms","default":""},"medical_history":{"type":"string","title":"Medical History","default":""},"preferred_country":{"type":"string","title":"Preferred Country","default":"Japan"},"budget_usd":{"type":"integer","title":"Budget Usd","default":5000}},"type":"object","title":"MatchRequest"},"MetricCreate":{"properties":{"metric_type":{"type":"string","title":"Metric Type","description":"e.g., blood_glucose, blood_pressure, heart_rate, weight, blood_oxygen"},"value":{"type":"string","title":"Value","description":"The measured value, e.g., '126', '128/85', '72.5'"},"unit":{"type":"string","title":"Unit","description":"e.g., mg/dL, mmHg, bpm, kg, %","default":""},"notes":{"type":"string","title":"Notes","default":""},"source":{"type":"string","title":"Source","default":"manual"},"recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded At"}},"type":"object","required":["metric_type","value"],"title":"MetricCreate"},"OTPResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"OTPResponse"},"OrderCreate":{"properties":{"user_email":{"type":"string","title":"User Email","description":"Patient email"},"user_name":{"type":"string","title":"User Name","description":"Patient name"},"package_id":{"type":"string","title":"Package Id","description":"Treatment package ID"},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","required":["user_email","user_name","package_id"],"title":"OrderCreate"},"PasswordResetConfirm":{"properties":{"token":{"type":"string","title":"Token"},"new_password":{"type":"string","minLength":6,"title":"New Password"}},"type":"object","required":["token","new_password"],"title":"PasswordResetConfirm"},"PasswordResetRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"PasswordResetRequest"},"PatientAssessment":{"properties":{"age":{"type":"integer","title":"Age"},"gender":{"type":"string","title":"Gender"},"condition":{"type":"string","title":"Condition"},"condition_details":{"type":"string","title":"Condition Details","default":""},"medical_history":{"type":"string","title":"Medical History","default":""},"current_treatments":{"type":"string","title":"Current Treatments","default":""},"preferred_country":{"type":"string","title":"Preferred Country","default":"Japan"},"budget_usd":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Budget Usd"},"urgency":{"type":"string","title":"Urgency","default":"normal"}},"type":"object","required":["age","gender","condition"],"title":"PatientAssessment"},"PayPalCreateOrderRequest":{"properties":{"order_id":{"type":"string","title":"Order Id","description":"Medical order UUID"}},"type":"object","required":["order_id"],"title":"PayPalCreateOrderRequest"},"PayPalOrderRequest":{"properties":{"product_id":{"type":"string","title":"Product Id"},"product_name":{"type":"string","title":"Product Name"},"amount":{"type":"number","title":"Amount"},"currency":{"type":"string","title":"Currency","default":"USD"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["product_id","product_name","amount"],"title":"PayPalOrderRequest"},"PaymentNotifyRequest":{"properties":{"user_email":{"type":"string","title":"User Email","default":""},"plan":{"type":"string","title":"Plan"},"amount_usd":{"type":"number","title":"Amount Usd"},"payment_method":{"type":"string","title":"Payment Method","default":"manual"},"admin_notes":{"type":"string","title":"Admin Notes","default":""}},"type":"object","required":["plan","amount_usd"],"title":"PaymentNotifyRequest"},"PaymentVerifyRequest":{"properties":{"trade_no":{"type":"string","title":"Trade No"},"payment_proof":{"type":"string","title":"Payment Proof"},"product_id":{"type":"string","title":"Product Id"}},"type":"object","required":["trade_no","payment_proof","product_id"],"title":"PaymentVerifyRequest","description":"Payment verification request from Alipay"},"PostCreate":{"properties":{"group_name":{"type":"string","title":"Group Name"},"title":{"type":"string","title":"Title"},"content":{"type":"string","title":"Content"},"images":{"items":{"type":"string"},"type":"array","title":"Images","description":"Uploaded image URLs"}},"type":"object","required":["group_name","title","content"],"title":"PostCreate"},"PreferencesUpdate":{"properties":{"email_alerts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Email Alerts"},"push_alerts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Push Alerts"},"sms_alerts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sms Alerts"},"daily_newsletter":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Daily Newsletter"},"newsletter_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Newsletter Time"},"weekly_report":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Weekly Report"},"monthly_report":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Monthly Report"},"custom_thresholds":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Custom Thresholds"}},"type":"object","title":"PreferencesUpdate"},"ProfileUpdate":{"properties":{"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"email_notifications":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Email Notifications"}},"type":"object","title":"ProfileUpdate"},"ReferralSubmit":{"properties":{"patient_name":{"type":"string","title":"Patient Name"},"patient_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Email","default":""},"patient_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Phone","default":""},"patient_country":{"type":"string","title":"Patient Country"},"patient_age":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Patient Age"},"patient_gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Gender","default":""},"primary_diagnosis":{"type":"string","title":"Primary Diagnosis"},"medical_history":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Medical History","default":""},"current_medications":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Medications","default":""},"allergies":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Allergies","default":""},"preferred_destination":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Destination","default":"USA"},"preferred_hospital":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Hospital","default":""},"preferred_specialty":{"type":"string","title":"Preferred Specialty"},"urgency":{"type":"string","title":"Urgency","default":"normal"}},"type":"object","required":["patient_name","patient_country","primary_diagnosis","preferred_specialty"],"title":"ReferralSubmit"},"ReplyCreate":{"properties":{"content":{"type":"string","title":"Content"}},"type":"object","required":["content"],"title":"ReplyCreate"},"ReportRequest":{"properties":{"period_days":{"type":"integer","title":"Period Days","default":30},"report_type":{"type":"string","title":"Report Type","default":"standard"},"focus_areas":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Focus Areas"}},"type":"object","title":"ReportRequest"},"SendOTPRequest":{"properties":{"contact":{"type":"string","title":"Contact"}},"type":"object","required":["contact"],"title":"SendOTPRequest"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type"},"user":{"$ref":"#/components/schemas/UserResponse"}},"type":"object","required":["access_token","token_type","user"],"title":"Token"},"UserCreate":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"password":{"type":"string","minLength":6,"title":"Password"}},"type":"object","required":["password"],"title":"UserCreate"},"UserResponse":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"id":{"type":"string","format":"uuid","title":"Id"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"subscription_tier":{"type":"string","title":"Subscription Tier"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","is_active","is_verified","subscription_tier","created_at","updated_at"],"title":"UserResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyOTPRequest":{"properties":{"contact":{"type":"string","title":"Contact"},"code":{"type":"string","title":"Code"}},"type":"object","required":["contact","code"],"title":"VerifyOTPRequest"},"WeChatOrderRequest":{"properties":{"product_id":{"type":"string","title":"Product Id"},"product_name":{"type":"string","title":"Product Name"},"amount":{"type":"number","title":"Amount"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["product_id","product_name","amount"],"title":"WeChatOrderRequest"},"app__routes__medical_tourism__PayPalCaptureRequest":{"properties":{"paypal_order_id":{"type":"string","title":"Paypal Order Id","description":"PayPal order ID"},"order_id":{"type":"string","title":"Order Id","description":"Medical order UUID to capture payment for"}},"type":"object","required":["paypal_order_id","order_id"],"title":"PayPalCaptureRequest"},"app__routes__payment__PayPalCaptureRequest":{"properties":{"paypal_order_id":{"type":"string","title":"Paypal Order Id"},"order_no":{"type":"string","title":"Order No"}},"type":"object","required":["paypal_order_id","order_no"],"title":"PayPalCaptureRequest"}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/auth/login"}}}}}}