{"openapi":"3.0.0","paths":{"/v1/admin/monitoring":{"get":{"operationId":"MonitoringController_overview","parameters":[],"responses":{"200":{"description":""}},"tags":["Monitoring"]}},"/v1/admin/monitoring/incidents/{key}/acknowledge":{"post":{"operationId":"MonitoringController_ack","parameters":[{"name":"key","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Monitoring"]}},"/v1/admin/products/{id}/cover":{"post":{"operationId":"CoverController_upload","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Cover"]}},"/v1/covers/{id}":{"get":{"operationId":"CoverController_image","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Cover"]}},"/v1/admin/backups/settings":{"get":{"operationId":"BackupController_settings","parameters":[],"responses":{"200":{"description":""}},"tags":["Backup"]},"put":{"operationId":"BackupController_configure","parameters":[],"responses":{"200":{"description":""}},"tags":["Backup"]}},"/v1/admin/backups/runs":{"get":{"operationId":"BackupController_runs","parameters":[],"responses":{"200":{"description":""}},"tags":["Backup"]},"post":{"operationId":"BackupController_request","parameters":[],"responses":{"201":{"description":""}},"tags":["Backup"]}},"/v1/admin/backups/runs/{id}/retry":{"post":{"operationId":"BackupController_retry","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Backup"]}},"/v1/admin/backups/runs/{id}/download":{"get":{"operationId":"BackupController_download","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Backup"]}},"/v1/admin/backups/google/connect":{"post":{"operationId":"BackupController_connect","parameters":[],"responses":{"201":{"description":""}},"tags":["Backup"]}},"/v1/admin/backups/google/disconnect":{"post":{"operationId":"BackupController_disconnect","parameters":[],"responses":{"201":{"description":""}},"tags":["Backup"]}},"/v1/admin/backups/google/callback":{"get":{"operationId":"BackupController_callback","parameters":[],"responses":{"200":{"description":""}},"tags":["Backup"]}},"/v1/admin/orders/{id}/review":{"post":{"operationId":"AdministrationController_review","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Administration"]}},"/v1/admin/invoices":{"get":{"operationId":"AdministrationController_invoices","parameters":[],"responses":{"200":{"description":""}},"tags":["Administration"]},"post":{"operationId":"AdministrationController_record","parameters":[],"responses":{"201":{"description":""}},"tags":["Administration"]}},"/v1/admin/invoices/{id}/void":{"post":{"operationId":"AdministrationController_void","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Administration"]}},"/v1/admin/access/permissions":{"get":{"operationId":"RbacController_permissions","parameters":[],"responses":{"200":{"description":""}},"tags":["Rbac"]}},"/v1/admin/access/groups":{"get":{"operationId":"RbacController_groups","parameters":[],"responses":{"200":{"description":""}},"tags":["Rbac"]},"post":{"operationId":"RbacController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["Rbac"]}},"/v1/admin/access/groups/{id}":{"put":{"operationId":"RbacController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Rbac"]}},"/v1/admin/access/users":{"get":{"operationId":"RbacController_users","parameters":[],"responses":{"200":{"description":""}},"tags":["Rbac"]}},"/v1/admin/access/users/{id}":{"put":{"operationId":"RbacController_assign","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Rbac"]}},"/v1/admin/access/invites":{"get":{"operationId":"RbacController_invites","parameters":[],"responses":{"200":{"description":""}},"tags":["Rbac"]},"post":{"operationId":"RbacController_invite","parameters":[],"responses":{"201":{"description":""}},"tags":["Rbac"]}},"/v1/admin/access/invites/{id}":{"delete":{"operationId":"RbacController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Rbac"]}},"/v1/staff/invite-info":{"post":{"operationId":"RbacController_info","parameters":[],"responses":{"201":{"description":""}},"tags":["Rbac"]}},"/v1/staff/accept":{"post":{"operationId":"RbacController_accept","parameters":[],"responses":{"201":{"description":""}},"tags":["Rbac"]}},"/v1/support/guest/requests":{"post":{"operationId":"GuestSupportController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":120},"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"subject":{"type":"string","minLength":5,"maxLength":180},"body":{"type":"string","minLength":10,"maxLength":10000},"contactConsent":{"type":"boolean","const":true},"idempotencyKey":{"type":"string","minLength":12,"maxLength":100},"website":{"type":"string","maxLength":0}},"required":["name","email","subject","body","contactConsent","idempotencyKey"]}}}},"responses":{"201":{"description":""}},"tags":["Hỗ trợ không cần tài khoản"]}},"/v1/support/guest/recover":{"post":{"operationId":"GuestSupportController_recover","parameters":[],"responses":{"201":{"description":""}},"tags":["Hỗ trợ không cần tài khoản"]}},"/v1/support/guest/access":{"post":{"operationId":"GuestSupportController_access","parameters":[],"responses":{"201":{"description":""}},"tags":["Hỗ trợ không cần tài khoản"]}},"/v1/support/guest/thread":{"get":{"operationId":"GuestSupportController_thread","parameters":[],"responses":{"200":{"description":""}},"tags":["Hỗ trợ không cần tài khoản"]}},"/v1/support/guest/messages":{"post":{"operationId":"GuestSupportController_reply","parameters":[],"responses":{"201":{"description":""}},"tags":["Hỗ trợ không cần tài khoản"]}},"/v1/support/guest/logout":{"post":{"operationId":"GuestSupportController_logout","parameters":[],"responses":{"201":{"description":""}},"tags":["Hỗ trợ không cần tài khoản"]}},"/v1/admin/automations":{"get":{"operationId":"AutomationController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Automation"]},"post":{"operationId":"AutomationController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["Automation"]}},"/v1/admin/automations/{id}/pause":{"post":{"operationId":"AutomationController_pause","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Automation"]}},"/v1/admin/reconciliation":{"get":{"operationId":"ReconciliationController_history","parameters":[],"responses":{"200":{"description":""}},"tags":["Reconciliation"]},"post":{"operationId":"ReconciliationController_run","parameters":[],"responses":{"201":{"description":""}},"tags":["Reconciliation"]}},"/v1/admin/payments/{id}/resolve":{"post":{"operationId":"ReconciliationController_resolve","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Reconciliation"]}},"/v1/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"responses":{"201":{"description":""}},"security":[{"cookie":[]}],"summary":"Đăng ký, đồng ý điều khoản và gửi email xác minh","tags":["Tài khoản"]}},"/v1/auth/verify":{"post":{"operationId":"AuthController_verify","parameters":[],"responses":{"201":{"description":""}},"security":[{"cookie":[]}],"tags":["Tài khoản"]}},"/v1/auth/login":{"post":{"operationId":"AuthController_login","parameters":[],"responses":{"200":{"description":""}},"security":[{"cookie":[]}],"tags":["Tài khoản"]}},"/v1/auth/me":{"get":{"operationId":"AuthController_me","parameters":[],"responses":{"200":{"description":""}},"security":[{"cookie":[]}],"tags":["Tài khoản"]}},"/v1/auth/logout":{"post":{"operationId":"AuthController_logout","parameters":[],"responses":{"200":{"description":""}},"security":[{"cookie":[]}],"tags":["Tài khoản"]}},"/v1/auth/forgot":{"post":{"operationId":"AuthController_forgot","parameters":[],"responses":{"201":{"description":""}},"security":[{"cookie":[]}],"tags":["Tài khoản"]}},"/v1/auth/reset":{"post":{"operationId":"AuthController_reset","parameters":[],"responses":{"201":{"description":""}},"security":[{"cookie":[]}],"tags":["Tài khoản"]}},"/v1/auth/mfa/setup":{"post":{"operationId":"AuthController_mfa","parameters":[],"responses":{"201":{"description":""}},"security":[{"cookie":[]}],"tags":["Tài khoản"]}},"/v1/auth/mfa/enable":{"post":{"operationId":"AuthController_mfaEnable","parameters":[],"responses":{"201":{"description":""}},"security":[{"cookie":[]}],"tags":["Tài khoản"]}},"/v1/health":{"get":{"operationId":"StoreController_health","parameters":[],"responses":{"200":{"description":""}},"tags":["Cửa hàng"]}},"/v1/config":{"get":{"operationId":"StoreController_config","parameters":[],"responses":{"200":{"description":""}},"tags":["Cửa hàng"]}},"/v1/products":{"get":{"operationId":"StoreController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Cửa hàng"]}},"/v1/products/{slug}":{"get":{"operationId":"StoreController_product","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Cửa hàng"]}},"/v1/knowledge":{"get":{"operationId":"StoreController_knowledge","parameters":[],"responses":{"200":{"description":""}},"tags":["Cửa hàng"]}},"/v1/support/chat":{"post":{"operationId":"StoreController_support","parameters":[],"responses":{"201":{"description":""}},"tags":["Cửa hàng"]}},"/v1/marketing/leads":{"post":{"operationId":"StoreController_lead","parameters":[],"responses":{"201":{"description":""}},"tags":["Cửa hàng"]}},"/v1/marketing/confirm":{"post":{"operationId":"StoreController_confirm","parameters":[],"responses":{"201":{"description":""}},"tags":["Cửa hàng"]}},"/v1/marketing/unsubscribe/{token}":{"post":{"operationId":"StoreController_unsubscribe","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Cửa hàng"]}},"/v1/checkout":{"post":{"operationId":"CommerceController_checkout","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/quotes/{id}/checkout":{"post":{"operationId":"CommerceController_quoteCheckout","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/orders":{"get":{"operationId":"CommerceController_orders","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/orders/{id}":{"get":{"operationId":"CommerceController_order","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/orders/{id}/test-payment":{"post":{"operationId":"CommerceController_test","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/orders/{id}/refunds":{"post":{"operationId":"CommerceController_refund","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/library":{"get":{"operationId":"CommerceController_library","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/assets/{id}/download":{"post":{"operationId":"CommerceController_download","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/download/{token}":{"get":{"operationId":"CommerceController_file","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/lessons/{id}":{"get":{"operationId":"CommerceController_lesson","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/lessons/{id}/progress":{"post":{"operationId":"CommerceController_progress","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/products/{id}/content":{"get":{"operationId":"CommerceController_content","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"servings","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/licenses":{"get":{"operationId":"CommerceController_licenseList","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]},"post":{"operationId":"CommerceController_licenseIssue","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/licenses/{id}":{"delete":{"operationId":"CommerceController_licenseRevoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/licenses/{id}/devices":{"get":{"operationId":"CommerceController_devices","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/activations/{id}":{"delete":{"operationId":"CommerceController_revokeDevice","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/licenses/activate":{"post":{"operationId":"CommerceController_activate","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/licenses/validate":{"post":{"operationId":"CommerceController_validate","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/bots/threads":{"get":{"operationId":"CommerceController_threads","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/bots/threads/{id}/messages":{"get":{"operationId":"CommerceController_messages","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/bots/chat":{"post":{"operationId":"CommerceController_chat","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Đơn hàng và thư viện"]}},"/v1/tickets":{"get":{"operationId":"CustomerController_tickets","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]},"post":{"operationId":"CustomerController_ticketCreate","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/tickets/{id}":{"get":{"operationId":"CustomerController_ticket","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/tickets/{id}/messages":{"post":{"operationId":"CustomerController_reply","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/services":{"get":{"operationId":"CustomerController_serviceList","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]},"post":{"operationId":"CustomerController_serviceCreate","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/services/{id}":{"get":{"operationId":"CustomerController_service","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/services/{id}/candidates":{"get":{"operationId":"CustomerController_candidates","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/quotes/{id}/accept":{"post":{"operationId":"CustomerController_accept","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/milestones/{id}/status":{"post":{"operationId":"CustomerController_milestone","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/account/consent":{"get":{"operationId":"CustomerController_consent","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]},"post":{"operationId":"CustomerController_preference","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/account/api-keys":{"get":{"operationId":"CustomerController_keys","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]},"post":{"operationId":"CustomerController_keyCreate","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/account/api-keys/{id}":{"delete":{"operationId":"CustomerController_keyRevoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/account/connections":{"get":{"operationId":"CustomerController_connections","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/account/connections/{id}":{"delete":{"operationId":"CustomerController_disconnect","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/oauth/consent/{id}":{"get":{"operationId":"CustomerController_info","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/oauth/consent":{"post":{"operationId":"CustomerController_approve","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Hỗ trợ và dịch vụ"]}},"/v1/admin/dashboard":{"get":{"operationId":"AdminController_dashboard","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products":{"get":{"operationId":"AdminController_products","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]},"post":{"operationId":"AdminController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string","maxLength":150,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"type":{"type":"string","enum":["skill","chatbot","template","software","course","bundle","ebook","recipe","service","font"]},"name":{"type":"string","minLength":3,"maxLength":180},"summary":{"type":"string","maxLength":500},"description":{"type":"string","maxLength":30000},"coverUrl":{"default":"/brand/cover-skill.svg","type":"string","pattern":"^(?:\\/brand\\/[a-z0-9/._-]+|\\/api\\/v1\\/covers\\/[a-f0-9-]{36})$"},"metadata":{"default":{"tags":[],"compatibility":[]},"type":"object","properties":{"tags":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","maxLength":60}},"compatibility":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","maxLength":100}},"level":{"type":"string","maxLength":100},"family":{"type":"string","maxLength":100}},"required":["tags","compatibility"],"additionalProperties":false},"privateContent":{"default":{},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["slug","type","name","summary","description","coverUrl","metadata","privateContent"],"additionalProperties":false}}}},"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products/{id}":{"get":{"operationId":"AdminController_product","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]},"patch":{"operationId":"AdminController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products/{id}/archive":{"post":{"operationId":"AdminController_archive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products/{id}/offers":{"post":{"operationId":"AdminController_offer","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":120},"price":{"type":"integer","minimum":0,"maximum":10000000000},"durationDays":{"default":null,"anyOf":[{"type":"integer","minimum":1,"maximum":36500},{"type":"null"}]},"license":{"type":"object","properties":{"scope":{"default":"personal","type":"string","enum":["personal","commercial","desktop","web","app","team"]},"seats":{"default":1,"type":"integer","minimum":1,"maximum":10000},"domains":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","maxLength":253}},"updatesDays":{"default":365,"type":"integer","minimum":0,"maximum":36500},"supportDays":{"default":30,"type":"integer","minimum":0,"maximum":36500},"terms":{"type":"string","minLength":10,"maxLength":10000}},"required":["scope","seats","domains","updatesDays","supportDays","terms"],"additionalProperties":false},"quota":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":10000000},{"type":"null"}]}},"required":["name","price","durationDays","license","quota"],"additionalProperties":false}}}},"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products/{id}/offers/{offerId}":{"patch":{"operationId":"AdminController_offerUpdate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"offerId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products/{id}/versions":{"get":{"operationId":"AdminController_productVersions","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products/{id}/duplicate":{"post":{"operationId":"AdminController_productDuplicate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products/{id}/bundle":{"post":{"operationId":"AdminController_bundle","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products/{id}/assets":{"get":{"operationId":"AdminController_assets","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]},"post":{"operationId":"AdminController_upload","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/assets/{id}/review":{"post":{"operationId":"AdminController_review","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/products/{id}/lessons":{"get":{"operationId":"AdminController_lessons","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]},"post":{"operationId":"AdminController_lesson","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":180},"position":{"type":"integer","minimum":1,"maximum":10000},"body":{"type":"string","maxLength":50000},"videoAssetId":{"default":null,"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"isPreview":{"default":false,"type":"boolean"},"dripDays":{"default":0,"type":"integer","minimum":0,"maximum":3650},"expectedProductVersion":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"quiz":{"default":[],"maxItems":30,"type":"array","items":{"type":"object","properties":{"question":{"type":"string","minLength":5,"maxLength":1000},"options":{"minItems":2,"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"correctIndex":{"type":"integer","minimum":0,"maximum":5}},"required":["question","options","correctIndex"],"additionalProperties":false}}},"required":["title","position","body","videoAssetId","isPreview","dripDays","quiz"],"additionalProperties":false}}}},"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/orders":{"get":{"operationId":"AdminController_orders","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/orders/{id}":{"get":{"operationId":"AdminController_order","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/payment-reviews":{"get":{"operationId":"AdminController_payments","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/refunds":{"get":{"operationId":"AdminController_refunds","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/refunds/{id}/complete":{"post":{"operationId":"AdminController_refundComplete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/approvals":{"get":{"operationId":"AdminController_approvals","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]},"post":{"operationId":"AdminController_requestApproval","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","oneOf":[{"type":"object","properties":{"action":{"type":"string","const":"catalog.publish"},"productId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"rightsConfirmed":{"type":"boolean","const":true}},"required":["action","productId","version","rightsConfirmed"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"automation.activate"},"automationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["action","automationId"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"campaign.send"},"campaignId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["action","campaignId"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"refund.approve"},"refundId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["action","refundId"],"additionalProperties":false}]}}}},"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/approvals/{id}/decide":{"post":{"operationId":"AdminController_decide","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/contacts":{"get":{"operationId":"AdminController_contacts","parameters":[{"name":"q","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/contacts/{id}":{"patch":{"operationId":"AdminController_tags","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/suppressions":{"post":{"operationId":"AdminController_suppress","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/campaigns":{"get":{"operationId":"AdminController_campaigns","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]},"post":{"operationId":"AdminController_campaign","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/campaigns/{id}/preview":{"get":{"operationId":"AdminController_preview","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/support/assignees":{"get":{"operationId":"AdminController_supportAssignees","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/tickets":{"get":{"operationId":"AdminController_tickets","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/tickets/{id}":{"get":{"operationId":"AdminController_ticket","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]},"patch":{"operationId":"AdminController_updateTicket","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/tickets/{id}/messages":{"post":{"operationId":"AdminController_reply","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/services":{"get":{"operationId":"AdminController_serviceList","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/services/{id}":{"get":{"operationId":"AdminController_service","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/services/{id}/quotes":{"post":{"operationId":"AdminController_quote","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/services/{id}/milestones":{"post":{"operationId":"AdminController_milestone","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/candidates":{"get":{"operationId":"AdminController_candidates","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]},"post":{"operationId":"AdminController_candidate","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/candidates/{id}/share":{"post":{"operationId":"AdminController_share","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/audit":{"get":{"operationId":"AdminController_audit","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/jobs":{"get":{"operationId":"AdminController_jobs","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/jobs/{id}/retry":{"post":{"operationId":"AdminController_retry","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/users":{"get":{"operationId":"AdminController_users","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/users/{id}":{"patch":{"operationId":"AdminController_role","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/coupons":{"post":{"operationId":"AdminController_coupon","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/admin/knowledge":{"post":{"operationId":"AdminController_article","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Quản trị"]}},"/v1/affiliates/program":{"get":{"operationId":"AffiliateController_program","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/affiliates/apply":{"post":{"operationId":"AffiliateController_apply","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/affiliates/me":{"get":{"operationId":"AffiliateController_me","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/affiliates/capture":{"post":{"operationId":"AffiliateController_capture","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/affiliates/bank":{"put":{"operationId":"AffiliateController_bank","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/affiliates/payouts":{"post":{"operationId":"AffiliateController_payout","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/admin/affiliates":{"get":{"operationId":"AffiliateController_list","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/admin/affiliates/program":{"post":{"operationId":"AffiliateController_configure","parameters":[],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/admin/affiliates/{id}/status":{"post":{"operationId":"AffiliateController_status","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/admin/products/{id}/affiliate-rate":{"put":{"operationId":"AffiliateController_rate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]},"get":{"operationId":"AffiliateController_getRate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]},"delete":{"operationId":"AffiliateController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/admin/affiliate-payouts":{"get":{"operationId":"AffiliateController_payouts","parameters":[],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/admin/affiliate-payouts/{id}/bank":{"get":{"operationId":"AffiliateController_payoutBank","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/admin/affiliate-payouts/{id}/decide":{"post":{"operationId":"AffiliateController_decide","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}},"/v1/admin/affiliate-payouts/{id}/paid":{"post":{"operationId":"AffiliateController_paid","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"bearer":[]},{"cookie":[]}],"tags":["Affiliate · Cộng tác viên"]}}},"info":{"title":"SỐNG CÙNG AI API","description":"REST v1; session cookies hoặc API key có scope. JSON writes dùng X-SCAI-Request: 1. MCP tại /mcp, OAuth discovery tại /.well-known/oauth-protected-resource/mcp.","version":"0.1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"},"cookie":{"type":"apiKey","in":"cookie","name":"scai_session"}},"schemas":{}}}