{"openapi":"3.1.0","info":{"title":"Markdown to DOCX Converter","version":"0.1.0"},"paths":{"/":{"get":{"summary":"Read Root","operationId":"read_root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/convert-text":{"post":{"summary":"Convert Markdown Text To Docx","description":"Convert markdown text to DOCX using external API\n\nCan optionally render Mermaid diagrams when convert_mermaid is set to true","operationId":"convert_markdown_text_to_docx_convert_text_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkdownText"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/convert-text-to-url":{"post":{"summary":"Convert Markdown Text To Url","description":"Convert markdown text to DOCX and upload to Vercel Blob, returning the URL.","operationId":"convert_markdown_text_to_url_convert_text_to_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkdownText"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/auth/register":{"post":{"tags":["Authentication"],"summary":"Register User","description":"Register a new user and generate an API key (admin only)","operationId":"register_user_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/auth/refresh-key":{"post":{"tags":["Authentication"],"summary":"Refresh Api Key","description":"Invalidate existing API key and generate a new one","operationId":"refresh_api_key_auth_refresh_key_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyResponse"}}}}},"security":[{"APIKeyHeader":[]}]}},"/auth/quota":{"get":{"tags":["Authentication"],"summary":"Get User Quota","description":"Get current user's quota information and API key expiration date","operationId":"get_user_quota_auth_quota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotaResponse"}}}}},"security":[{"APIKeyHeader":[]}]}},"/admin/users":{"get":{"tags":["Admin","Admin"],"summary":"List Users","description":"List all users with their quota information (admin only)","operationId":"list_users_admin_users_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserListItem"},"title":"Response List Users Admin Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/users/{user_id}":{"get":{"tags":["Admin","Admin"],"summary":"Get User Details","description":"Get detailed information about a specific user (admin only)","operationId":"get_user_details_admin_users__user_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin","Admin"],"summary":"Delete User","description":"Delete a user and all associated data (admin only)","operationId":"delete_user_admin_users__user_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/usage":{"get":{"tags":["Admin","Admin"],"summary":"Get Usage Logs","description":"Get usage logs with optional filtering by user and date range (admin only)","operationId":"get_usage_logs_admin_usage_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UsageRecordItem"},"title":"Response Get Usage Logs Admin Usage Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/stats":{"get":{"tags":["Admin","Admin"],"summary":"Get Usage Statistics","description":"Get overall usage statistics (admin only)","operationId":"get_usage_statistics_admin_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageStats"}}}}},"security":[{"APIKeyHeader":[]}]}},"/admin/users/{user_id}/status":{"put":{"tags":["Admin","Admin"],"summary":"Update User Status","description":"Activate or deactivate a user (admin only)","operationId":"update_user_status_admin_users__user_id__status_put","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"is_active","in":"query","required":true,"schema":{"type":"boolean","title":"Is Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/recharge":{"post":{"tags":["Admin","Admin"],"summary":"Recharge User Account","description":"Recharge a user's account with validation (admin only)\n\nValidates that:\n- amount/0.2 = quota\n- gift_quota = quota (equal bonus) only if amount ≥ 5.00, otherwise gift_quota should be 0\n- If the user doesn't exist, creates a new user\n- Updates total_recharge by adding the amount","operationId":"recharge_user_account_admin_recharge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RechargeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RechargeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/admin/users/{user_id}/quota":{"put":{"tags":["Admin","Admin"],"summary":"Update User Quota","description":"Update a user's quota fields (admin only)","operationId":"update_user_quota_admin_users__user_id__quota_put","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotaUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserQuotaDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/xhs-recharge":{"post":{"tags":["Admin","Admin"],"summary":"Xhs Recharge","description":"Xiaohongshu recharge endpoint (admin only).\nMatches web recharge quota logic by default but allows custom overrides.","operationId":"xhs_recharge_admin_xhs_recharge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XHSRechargeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RechargeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/payments/create":{"post":{"tags":["Payments"],"summary":"Create Payment","description":"创建新的支付订单（仅限注册用户，允许 API KEY 过期后续费）","operationId":"create_payment_payments_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/payments/guest-create":{"post":{"tags":["Payments"],"summary":"Create Guest Payment","description":"为未注册用户创建支付订单（只需提供邮箱）","operationId":"create_guest_payment_payments_guest_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestPaymentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payments/creem/create":{"post":{"tags":["Payments"],"summary":"Create Creem Payment","description":"为Creem创建一个新的支付会话（允许 API KEY 过期后续费）。","operationId":"create_creem_payment_payments_creem_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCreemPaymentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreemPaymentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/payments/creem/guest-create":{"post":{"tags":["Payments"],"summary":"Create Creem Guest Payment","description":"为未注册用户创建Creem支付订单。","operationId":"create_creem_guest_payment_payments_creem_guest_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCreemGuestPaymentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreemGuestPaymentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payments/status/{order_no}":{"get":{"tags":["Payments"],"summary":"Get Payment Status","description":"获取支付订单的状态","operationId":"get_payment_status_payments_status__order_no__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"order_no","in":"path","required":true,"schema":{"type":"string","title":"Order No"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payments/orders":{"get":{"tags":["Payments"],"summary":"List User Payment Orders","description":"列出当前用户的所有支付订单","operationId":"list_user_payment_orders_payments_orders_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PaymentOrderResponse"},"title":"Response List User Payment Orders Payments Orders Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payments/creem/subscription/create":{"post":{"tags":["Payments"],"summary":"Create Creem Subscription Payment","description":"通过 Creem 创建订阅支付（注册用户，允许 API KEY 过期后续费）","operationId":"create_creem_subscription_payment_payments_creem_subscription_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCreemSubscriptionPaymentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreemSubscriptionPaymentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/payments/creem/subscription/guest-create":{"post":{"tags":["Payments"],"summary":"Create Creem Guest Subscription Payment","description":"通过 Creem 为未注册用户创建订阅支付","operationId":"create_creem_guest_subscription_payment_payments_creem_subscription_guest_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCreemGuestSubscriptionPaymentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreemGuestSubscriptionPaymentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payments/subscription/create":{"post":{"tags":["Payments"],"summary":"Create Subscription Payment","description":"创建订阅支付订单（允许 API KEY 过期后续费）","operationId":"create_subscription_payment_payments_subscription_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubscriptionPaymentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPaymentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/payments/subscription/guest-create":{"post":{"tags":["Payments"],"summary":"Create Guest Subscription Payment","description":"为未注册用户创建订阅支付订单","operationId":"create_guest_subscription_payment_payments_subscription_guest_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestSubscriptionPaymentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestSubscriptionPaymentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/subscriptions/plans":{"get":{"tags":["Subscriptions"],"summary":"List Subscription Plans","description":"获取所有可用的订阅计划\n公开接口，无需认证","operationId":"list_subscription_plans_subscriptions_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SubscriptionPlanResponse"},"type":"array","title":"Response List Subscription Plans Subscriptions Plans Get"}}}}}}},"/subscriptions/plans/{plan_code}":{"get":{"tags":["Subscriptions"],"summary":"Get Subscription Plan","description":"获取指定的订阅计划详情\n公开接口，无需认证","operationId":"get_subscription_plan_subscriptions_plans__plan_code__get","parameters":[{"name":"plan_code","in":"path","required":true,"schema":{"type":"string","title":"Plan Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/subscriptions/my":{"get":{"tags":["Subscriptions"],"summary":"Get My Subscription","description":"获取当前用户的有效订阅（允许过期 KEY 查询）","operationId":"get_my_subscription_subscriptions_my_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UserSubscriptionResponse"},{"type":"null"}],"title":"Response Get My Subscription Subscriptions My Get"}}}}},"security":[{"APIKeyHeader":[]}]}},"/subscriptions/my/history":{"get":{"tags":["Subscriptions"],"summary":"Get My Subscription History","description":"获取当前用户的订阅历史（允许过期 KEY 查询）","operationId":"get_my_subscription_history_subscriptions_my_history_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserSubscriptionResponse"},"title":"Response Get My Subscription History Subscriptions My History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/subscriptions/my/quota":{"get":{"tags":["Subscriptions"],"summary":"Get My Quota Status","description":"获取当前用户的配额状态（允许过期 KEY 查询）\n包括订阅配额和一次性配额","operationId":"get_my_quota_status_subscriptions_my_quota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotaStatusResponse"}}}}},"security":[{"APIKeyHeader":[]}]}},"/subscriptions/my/upgrade":{"post":{"tags":["Subscriptions"],"summary":"Upgrade My Subscription","description":"升级当前用户的 Creem 订阅套餐。\n仅支持升级（sort_order 更高的套餐），不支持降级或同套餐操作。\nCreem 会自动处理差价扣款，无需重新结账。","operationId":"upgrade_my_subscription_subscriptions_my_upgrade_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeSubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeSubscriptionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/subscriptions/my/cancel":{"post":{"tags":["Subscriptions"],"summary":"Cancel My Subscription","description":"取消当前用户的订阅自动续费(允许过期 KEY 操作)\n如果是 Creem 订阅，同步调用 Creem API 执行 scheduled cancel（到期后停止续费）。\n订阅仍然有效直到到期。","operationId":"cancel_my_subscription_subscriptions_my_cancel_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/subscriptions/my/resume":{"post":{"tags":["Subscriptions"],"summary":"Resume My Subscription","description":"恢复已取消续费的 Creem 订阅（重新开启自动续费）。\n要求订阅仍在有效期内（status=active）且 auto_renew=False。","operationId":"resume_my_subscription_subscriptions_my_resume_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/templates":{"get":{"tags":["Templates"],"summary":"List Available Templates","description":"### Get Available Templates\n\nRetrieves the list of available templates from the external conversion service, categorized by language.\n\n**Returns:**\n\nA JSON object where keys are language codes (e.g., 'en', 'zh') and values are lists of template names for that language (without the .docx extension).\n\n**Example cURL:**\n\n```bash\ncurl -X GET \"/templates\"\n```\n\n**Example Response:**\n\n```json\n{\n  \"zh\": [\n    \"templates\",\n    \"英文通用\",\n    \"论文\",\n    \"论文-首行不缩进\",\n    \"论文-标题加粗\"\n  ],\n  \"en\": [\n    \"thesis\",\n    \"templates\",\n    \"short-fiction\",\n    \"book2\",\n    \"long-fiction\",\n    \"book1\",\n    \"article\"\n  ]\n}\n```","operationId":"list_available_templates_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Response List Available Templates Templates Get"}}}}}}}},"components":{"schemas":{"APIKeyResponse":{"properties":{"key":{"type":"string","title":"Key"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["key","expires_at"],"title":"APIKeyResponse"},"CreateCreemGuestPaymentRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"用户邮箱"},"amount":{"type":"number","title":"Amount","description":"支付金额 (e.g., 4.99, 9.99)"}},"type":"object","required":["email","amount"],"title":"CreateCreemGuestPaymentRequest"},"CreateCreemGuestSubscriptionPaymentRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"用户邮箱"},"plan_code":{"type":"string","title":"Plan Code","description":"订阅套餐代码"}},"type":"object","required":["email","plan_code"],"title":"CreateCreemGuestSubscriptionPaymentRequest"},"CreateCreemPaymentRequest":{"properties":{"amount":{"type":"number","title":"Amount","description":"支付金额 (e.g., 4.99, 9.99)"}},"type":"object","required":["amount"],"title":"CreateCreemPaymentRequest"},"CreateCreemSubscriptionPaymentRequest":{"properties":{"plan_code":{"type":"string","title":"Plan Code","description":"订阅套餐代码 (standard_monthly, pro_monthly, pro_yearly, ultra_yearly)"}},"type":"object","required":["plan_code"],"title":"CreateCreemSubscriptionPaymentRequest"},"CreatePaymentRequest":{"properties":{"amount":{"type":"number","title":"Amount","description":"支付金额（人民币）"},"payment_method":{"type":"string","enum":["alipay","wxpay"],"title":"Payment Method","description":"支付方式 (alipay 或 wxpay)","default":"alipay"},"method":{"anyOf":[{"type":"string","enum":["api","web"]},{"type":"null"}],"title":"Method","description":"支付接口类型 (api 或 web)","default":"web"},"return_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Url","description":"支付后的自定义返回URL"}},"type":"object","required":["amount"],"title":"CreatePaymentRequest"},"CreateSubscriptionPaymentRequest":{"properties":{"plan_code":{"type":"string","title":"Plan Code","description":"订阅计划代码 (standard_monthly, pro_monthly, pro_yearly, ultra_yearly)"},"payment_method":{"type":"string","enum":["alipay","wxpay"],"title":"Payment Method","description":"支付方式 (alipay 或 wxpay)","default":"alipay"},"method":{"anyOf":[{"type":"string","enum":["api","web"]},{"type":"null"}],"title":"Method","description":"支付接口类型 (api 或 web)","default":"web"},"return_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Url","description":"支付后的自定义返回URL"}},"type":"object","required":["plan_code"],"title":"CreateSubscriptionPaymentRequest"},"CreemGuestPaymentResponse":{"properties":{"order_no":{"type":"string","title":"Order No"},"checkout_url":{"type":"string","title":"Checkout Url"},"status":{"type":"string","title":"Status"},"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["order_no","checkout_url","status","api_key"],"title":"CreemGuestPaymentResponse"},"CreemGuestSubscriptionPaymentResponse":{"properties":{"order_no":{"type":"string","title":"Order No"},"checkout_url":{"type":"string","title":"Checkout Url"},"status":{"type":"string","title":"Status"},"plan_code":{"type":"string","title":"Plan Code"},"plan_name":{"type":"string","title":"Plan Name"},"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["order_no","checkout_url","status","plan_code","plan_name","api_key"],"title":"CreemGuestSubscriptionPaymentResponse"},"CreemPaymentResponse":{"properties":{"order_no":{"type":"string","title":"Order No"},"checkout_url":{"type":"string","title":"Checkout Url"},"status":{"type":"string","title":"Status"}},"type":"object","required":["order_no","checkout_url","status"],"title":"CreemPaymentResponse"},"CreemSubscriptionPaymentResponse":{"properties":{"order_no":{"type":"string","title":"Order No"},"checkout_url":{"type":"string","title":"Checkout Url"},"status":{"type":"string","title":"Status"},"plan_code":{"type":"string","title":"Plan Code"},"plan_name":{"type":"string","title":"Plan Name"}},"type":"object","required":["order_no","checkout_url","status","plan_code","plan_name"],"title":"CreemSubscriptionPaymentResponse"},"GuestPaymentRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"用户邮箱，将用于创建或关联账户"},"amount":{"type":"number","title":"Amount","description":"支付金额（人民币）"},"payment_method":{"type":"string","enum":["alipay","wxpay"],"title":"Payment Method","description":"支付方式 (alipay 或 wxpay)","default":"alipay"},"method":{"anyOf":[{"type":"string","enum":["api","web"]},{"type":"null"}],"title":"Method","description":"支付接口类型 (api 或 web)","default":"api"},"return_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Url","description":"支付后的自定义返回URL"}},"type":"object","required":["email","amount"],"title":"GuestPaymentRequest"},"GuestSubscriptionPaymentRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"用户邮箱"},"plan_code":{"type":"string","title":"Plan Code","description":"订阅计划代码"},"payment_method":{"type":"string","enum":["alipay","wxpay"],"title":"Payment Method","description":"支付方式 (alipay 或 wxpay)","default":"alipay"},"method":{"anyOf":[{"type":"string","enum":["api","web"]},{"type":"null"}],"title":"Method","description":"支付接口类型 (api 或 web)","default":"web"},"return_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Url","description":"支付后的自定义返回URL"}},"type":"object","required":["email","plan_code"],"title":"GuestSubscriptionPaymentRequest"},"GuestSubscriptionPaymentResponse":{"properties":{"order_no":{"type":"string","title":"Order No"},"payment_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Url"},"qr_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qr Code"},"qr_img":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qr Img"},"status":{"type":"string","title":"Status"},"plan_code":{"type":"string","title":"Plan Code"},"plan_name":{"type":"string","title":"Plan Name"},"api_key":{"type":"string","title":"Api Key"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["order_no","status","plan_code","plan_name","api_key"],"title":"GuestSubscriptionPaymentResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MarkdownText":{"properties":{"content":{"type":"string","title":"Content"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename","default":"output"},"template_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Name","default":"templates"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","default":"zh"},"convert_mermaid":{"type":"boolean","title":"Convert Mermaid","default":false},"remove_hr":{"type":"boolean","title":"Remove Hr","default":false},"compat_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Compat Mode"},"hard_line_breaks":{"type":"boolean","title":"Hard Line Breaks","default":false},"extra_lua_filters":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Extra Lua Filters"}},"type":"object","required":["content"],"title":"MarkdownText","description":"Model for receiving markdown text content"},"PaymentOrderResponse":{"properties":{"id":{"type":"integer","title":"Id"},"order_no":{"type":"string","title":"Order No"},"amount":{"type":"number","title":"Amount"},"quota":{"type":"integer","title":"Quota"},"gift_quota":{"type":"integer","title":"Gift Quota"},"status":{"type":"string","title":"Status"},"payment_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Method"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"paid_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid At"}},"type":"object","required":["id","order_no","amount","quota","gift_quota","status","payment_method","created_at"],"title":"PaymentOrderResponse"},"PaymentResponse":{"properties":{"order_no":{"type":"string","title":"Order No"},"payment_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Url"},"qr_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qr Code"},"qr_img":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qr Img"},"status":{"type":"string","title":"Status"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"}},"type":"object","required":["order_no","status"],"title":"PaymentResponse"},"QuotaResponse":{"properties":{"email":{"type":"string","title":"Email"},"total_quota":{"type":"integer","title":"Total Quota"},"used_quota":{"type":"integer","title":"Used Quota"},"remaining_quota":{"type":"integer","title":"Remaining Quota"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["email","total_quota","used_quota","remaining_quota"],"title":"QuotaResponse"},"QuotaStatusResponse":{"properties":{"email":{"type":"string","title":"Email"},"has_subscription":{"type":"boolean","title":"Has Subscription"},"subscription":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Subscription"},"addon_quota":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Addon Quota"}},"type":"object","required":["email","has_subscription"],"title":"QuotaStatusResponse","description":"用户配额状态响应"},"QuotaUpdate":{"properties":{"total_quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Quota"},"used_quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Used Quota"},"gift_quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gift Quota"},"total_recharge":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Recharge"}},"type":"object","title":"QuotaUpdate"},"RechargeRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"amount":{"type":"number","title":"Amount"},"quota":{"type":"integer","title":"Quota"},"gift_quota":{"type":"integer","title":"Gift Quota","default":0}},"type":"object","required":["email","amount","quota"],"title":"RechargeRequest"},"RechargeResponse":{"properties":{"user_id":{"type":"integer","title":"User Id"},"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"total_quota":{"type":"integer","title":"Total Quota"},"used_quota":{"type":"integer","title":"Used Quota"},"gift_quota":{"type":"integer","title":"Gift Quota","default":0},"total_recharge":{"type":"number","title":"Total Recharge","default":0.0},"remaining_quota":{"type":"integer","title":"Remaining Quota","default":0},"payment_amount":{"type":"number","title":"Payment Amount"},"added_quota":{"type":"integer","title":"Added Quota"},"added_gift_quota":{"type":"integer","title":"Added Gift Quota"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"}},"type":"object","required":["user_id","email","total_quota","used_quota","payment_amount","added_quota","added_gift_quota"],"title":"RechargeResponse"},"SubscriptionPaymentResponse":{"properties":{"order_no":{"type":"string","title":"Order No"},"payment_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Url"},"qr_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qr Code"},"qr_img":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Qr Img"},"status":{"type":"string","title":"Status"},"plan_code":{"type":"string","title":"Plan Code"},"plan_name":{"type":"string","title":"Plan Name"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["order_no","status","plan_code","plan_name"],"title":"SubscriptionPaymentResponse"},"SubscriptionPlanResponse":{"properties":{"id":{"type":"integer","title":"Id"},"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"price":{"type":"number","title":"Price"},"billing_period":{"type":"string","title":"Billing Period"},"daily_quota":{"type":"integer","title":"Daily Quota"},"mcp_enabled":{"type":"boolean","title":"Mcp Enabled"},"skill_enabled":{"type":"boolean","title":"Skill Enabled"},"is_active":{"type":"boolean","title":"Is Active"},"sort_order":{"type":"integer","title":"Sort Order"}},"type":"object","required":["id","code","name","price","billing_period","daily_quota","mcp_enabled","skill_enabled","is_active","sort_order"],"title":"SubscriptionPlanResponse"},"UpgradeSubscriptionRequest":{"properties":{"plan_code":{"type":"string","title":"Plan Code"}},"type":"object","required":["plan_code"],"title":"UpgradeSubscriptionRequest"},"UpgradeSubscriptionResponse":{"properties":{"message":{"type":"string","title":"Message"},"plan_code":{"type":"string","title":"Plan Code"},"plan_name":{"type":"string","title":"Plan Name"}},"type":"object","required":["message","plan_code","plan_name"],"title":"UpgradeSubscriptionResponse"},"UsageRecordItem":{"properties":{"id":{"type":"integer","title":"Id"},"user_id":{"type":"integer","title":"User Id"},"user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"endpoint":{"type":"string","title":"Endpoint"},"request_details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Details"}},"type":"object","required":["id","user_id","timestamp","endpoint"],"title":"UsageRecordItem"},"UsageStats":{"properties":{"total_users":{"type":"integer","title":"Total Users"},"active_users":{"type":"integer","title":"Active Users"},"total_conversions":{"type":"integer","title":"Total Conversions"},"conversions_today":{"type":"integer","title":"Conversions Today"},"conversions_this_week":{"type":"integer","title":"Conversions This Week"},"conversions_this_month":{"type":"integer","title":"Conversions This Month"},"total_revenue":{"type":"number","title":"Total Revenue","default":0.0}},"type":"object","required":["total_users","active_users","total_conversions","conversions_today","conversions_this_week","conversions_this_month"],"title":"UsageStats"},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["email"],"title":"UserCreate"},"UserDetail":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_active":{"type":"boolean","title":"Is Active"},"total_quota":{"type":"integer","title":"Total Quota","default":0},"used_quota":{"type":"integer","title":"Used Quota","default":0},"gift_quota":{"type":"integer","title":"Gift Quota","default":0},"total_recharge":{"type":"number","title":"Total Recharge","default":0.0},"remaining_quota":{"type":"integer","title":"Remaining Quota","default":0},"api_keys":{"items":{"type":"string"},"type":"array","title":"Api Keys","default":[]}},"type":"object","required":["id","email","created_at","is_active"],"title":"UserDetail"},"UserListItem":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_active":{"type":"boolean","title":"Is Active"},"total_quota":{"type":"integer","title":"Total Quota","default":0},"used_quota":{"type":"integer","title":"Used Quota","default":0}},"type":"object","required":["id","email","created_at","is_active"],"title":"UserListItem"},"UserQuotaDetail":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"is_active":{"type":"boolean","title":"Is Active"},"total_quota":{"type":"integer","title":"Total Quota","default":0},"used_quota":{"type":"integer","title":"Used Quota","default":0},"gift_quota":{"type":"integer","title":"Gift Quota","default":0},"total_recharge":{"type":"number","title":"Total Recharge","default":0.0},"remaining_quota":{"type":"integer","title":"Remaining Quota","default":0}},"type":"object","required":["id","email","created_at","is_active"],"title":"UserQuotaDetail"},"UserSubscriptionResponse":{"properties":{"id":{"type":"integer","title":"Id"},"plan_id":{"type":"integer","title":"Plan Id"},"plan_name":{"type":"string","title":"Plan Name"},"plan_code":{"type":"string","title":"Plan Code"},"status":{"type":"string","title":"Status"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"auto_renew":{"type":"boolean","title":"Auto Renew"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"daily_quota":{"type":"integer","title":"Daily Quota"}},"type":"object","required":["id","plan_id","plan_name","plan_code","status","started_at","expires_at","auto_renew","created_at","daily_quota"],"title":"UserSubscriptionResponse"},"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"},"XHSRechargeRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"amount":{"type":"number","title":"Amount"},"quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quota"},"gift_quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gift Quota"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["email","amount"],"title":"XHSRechargeRequest"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}