django-cfg 1.4.20__py3-none-any.whl → 1.4.23__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (794) hide show
  1. django_cfg/__init__.py +4 -4
  2. django_cfg/apps/accounts/__init__.py +1 -1
  3. django_cfg/apps/accounts/__models.py +30 -29
  4. django_cfg/apps/accounts/admin/__init__.py +14 -3
  5. django_cfg/apps/accounts/admin/activity_admin.py +19 -19
  6. django_cfg/apps/accounts/admin/filters.py +7 -6
  7. django_cfg/apps/accounts/admin/group_admin.py +10 -16
  8. django_cfg/apps/accounts/admin/inlines.py +21 -19
  9. django_cfg/apps/accounts/admin/otp_admin.py +12 -12
  10. django_cfg/apps/accounts/admin/registration_admin.py +24 -24
  11. django_cfg/apps/accounts/admin/resources.py +49 -48
  12. django_cfg/apps/accounts/admin/twilio_admin.py +37 -37
  13. django_cfg/apps/accounts/admin/user_admin.py +45 -41
  14. django_cfg/apps/accounts/management/commands/otp_test.py +11 -11
  15. django_cfg/apps/accounts/managers/__init__.py +1 -1
  16. django_cfg/apps/accounts/managers/user_manager.py +6 -7
  17. django_cfg/apps/accounts/migrations/0001_initial.py +3 -2
  18. django_cfg/apps/accounts/models/__init__.py +15 -16
  19. django_cfg/apps/accounts/models/activity.py +5 -5
  20. django_cfg/apps/accounts/models/integrations.py +15 -15
  21. django_cfg/apps/accounts/models/registration.py +3 -2
  22. django_cfg/apps/accounts/models/user.py +3 -2
  23. django_cfg/apps/accounts/serializers/__init__.py +10 -3
  24. django_cfg/apps/accounts/serializers/otp.py +5 -4
  25. django_cfg/apps/accounts/serializers/profile.py +4 -5
  26. django_cfg/apps/accounts/serializers/webhook.py +13 -13
  27. django_cfg/apps/accounts/services/activity_service.py +13 -12
  28. django_cfg/apps/accounts/services/otp_service.py +16 -14
  29. django_cfg/apps/accounts/signals.py +18 -16
  30. django_cfg/apps/accounts/urls.py +10 -5
  31. django_cfg/apps/accounts/utils/notifications.py +22 -22
  32. django_cfg/apps/accounts/views/__init__.py +1 -1
  33. django_cfg/apps/accounts/views/otp.py +15 -14
  34. django_cfg/apps/accounts/views/profile.py +14 -10
  35. django_cfg/apps/accounts/views/webhook.py +46 -48
  36. django_cfg/apps/agents/__init__.py +3 -3
  37. django_cfg/apps/agents/admin/__init__.py +1 -1
  38. django_cfg/apps/agents/admin/execution_admin.py +68 -72
  39. django_cfg/apps/agents/admin/registry_admin.py +50 -54
  40. django_cfg/apps/agents/admin/toolsets_admin.py +63 -67
  41. django_cfg/apps/agents/apps.py +3 -3
  42. django_cfg/apps/agents/core/__init__.py +4 -4
  43. django_cfg/apps/agents/core/dependencies.py +24 -23
  44. django_cfg/apps/agents/core/django_agent.py +41 -39
  45. django_cfg/apps/agents/core/exceptions.py +12 -12
  46. django_cfg/apps/agents/core/models.py +16 -15
  47. django_cfg/apps/agents/core/orchestrator.py +58 -58
  48. django_cfg/apps/agents/examples/simple_example.py +24 -19
  49. django_cfg/apps/agents/integration/__init__.py +1 -1
  50. django_cfg/apps/agents/integration/middleware.py +12 -11
  51. django_cfg/apps/agents/integration/registry.py +52 -49
  52. django_cfg/apps/agents/integration/signals.py +5 -5
  53. django_cfg/apps/agents/management/commands/create_agent.py +39 -38
  54. django_cfg/apps/agents/management/commands/orchestrator_status.py +40 -39
  55. django_cfg/apps/agents/managers/__init__.py +8 -3
  56. django_cfg/apps/agents/managers/execution.py +42 -41
  57. django_cfg/apps/agents/managers/registry.py +40 -39
  58. django_cfg/apps/agents/managers/toolsets.py +87 -86
  59. django_cfg/apps/agents/migrations/0001_initial.py +2 -1
  60. django_cfg/apps/agents/models/__init__.py +2 -2
  61. django_cfg/apps/agents/models/execution.py +43 -42
  62. django_cfg/apps/agents/models/registry.py +46 -45
  63. django_cfg/apps/agents/models/toolsets.py +63 -62
  64. django_cfg/apps/agents/patterns/__init__.py +5 -5
  65. django_cfg/apps/agents/patterns/content_agents.py +17 -16
  66. django_cfg/apps/agents/toolsets/__init__.py +3 -3
  67. django_cfg/apps/agents/toolsets/cache_toolset.py +56 -55
  68. django_cfg/apps/agents/toolsets/django_toolset.py +43 -42
  69. django_cfg/apps/agents/toolsets/file_toolset.py +64 -63
  70. django_cfg/apps/agents/toolsets/orm_toolset.py +75 -74
  71. django_cfg/apps/agents/urls.py +3 -2
  72. django_cfg/apps/api/commands/urls.py +1 -0
  73. django_cfg/apps/api/commands/views.py +23 -26
  74. django_cfg/apps/api/endpoints/checker.py +5 -4
  75. django_cfg/apps/api/endpoints/drf_views.py +2 -2
  76. django_cfg/apps/api/endpoints/tests.py +6 -5
  77. django_cfg/apps/api/endpoints/urls.py +2 -1
  78. django_cfg/apps/api/endpoints/views.py +1 -0
  79. django_cfg/apps/api/health/drf_views.py +6 -6
  80. django_cfg/apps/api/health/urls.py +2 -1
  81. django_cfg/apps/api/health/views.py +41 -41
  82. django_cfg/{modules/django_ipc_client → apps/ipc}/__init__.py +6 -6
  83. django_cfg/apps/ipc/apps.py +28 -0
  84. django_cfg/apps/ipc/serializers/__init__.py +19 -0
  85. django_cfg/apps/ipc/serializers/serializers.py +229 -0
  86. django_cfg/apps/ipc/services/__init__.py +7 -0
  87. django_cfg/apps/ipc/services/client/__init__.py +23 -0
  88. django_cfg/{modules/django_ipc_client → apps/ipc/services/client}/client.py +7 -6
  89. django_cfg/{modules/django_ipc_client → apps/ipc/services/client}/exceptions.py +1 -1
  90. django_cfg/{modules/django_ipc_client/dashboard → apps/ipc/services}/monitor.py +23 -5
  91. django_cfg/{modules/django_ipc_client/dashboard/static/django_ipc_dashboard/js/dashboard.js → apps/ipc/static/django_cfg_ipc/js/dashboard.mjs} +131 -63
  92. django_cfg/{modules/django_ipc_client/dashboard/templates/django_ipc_dashboard → apps/ipc/templates/django_cfg_ipc}/base.html +5 -10
  93. django_cfg/apps/ipc/templates/django_cfg_ipc/dashboard.html +202 -0
  94. django_cfg/apps/ipc/urls.py +21 -0
  95. django_cfg/apps/ipc/urls_admin.py +20 -0
  96. django_cfg/apps/ipc/views/__init__.py +8 -0
  97. django_cfg/apps/ipc/views/dashboard.py +15 -0
  98. django_cfg/apps/ipc/views/viewsets.py +245 -0
  99. django_cfg/apps/knowbase/admin/__init__.py +2 -2
  100. django_cfg/apps/knowbase/admin/actions/__init__.py +1 -1
  101. django_cfg/apps/knowbase/admin/actions/visibility_actions.py +2 -1
  102. django_cfg/apps/knowbase/admin/archive_admin.py +81 -84
  103. django_cfg/apps/knowbase/admin/chat_admin.py +70 -72
  104. django_cfg/apps/knowbase/admin/document_admin.py +10 -11
  105. django_cfg/apps/knowbase/admin/external_data_admin.py +69 -71
  106. django_cfg/apps/knowbase/admin/helpers/__init__.py +1 -1
  107. django_cfg/apps/knowbase/admin/helpers/configs.py +2 -2
  108. django_cfg/apps/knowbase/admin/helpers/statistics.py +1 -1
  109. django_cfg/apps/knowbase/apps.py +13 -13
  110. django_cfg/apps/knowbase/config/__init__.py +7 -6
  111. django_cfg/apps/knowbase/config/constance_fields.py +14 -12
  112. django_cfg/apps/knowbase/config/constance_settings.py +32 -31
  113. django_cfg/apps/knowbase/config/settings.py +28 -28
  114. django_cfg/apps/knowbase/examples/external_data_usage.py +35 -32
  115. django_cfg/apps/knowbase/management/commands/knowbase_stats.py +33 -32
  116. django_cfg/apps/knowbase/management/commands/setup_knowbase.py +11 -13
  117. django_cfg/apps/knowbase/managers/__init__.py +2 -2
  118. django_cfg/apps/knowbase/managers/archive.py +86 -85
  119. django_cfg/apps/knowbase/managers/base.py +5 -5
  120. django_cfg/apps/knowbase/managers/chat.py +29 -28
  121. django_cfg/apps/knowbase/managers/document.py +39 -39
  122. django_cfg/apps/knowbase/managers/external_data.py +74 -73
  123. django_cfg/apps/knowbase/migrations/0001_initial.py +2 -1
  124. django_cfg/apps/knowbase/migrations/0002_archiveitem_archiveitemchunk_documentarchive_and_more.py +2 -1
  125. django_cfg/apps/knowbase/migrations/0003_alter_documentarchive_archive_type.py +29 -0
  126. django_cfg/apps/knowbase/mixins/__init__.py +4 -4
  127. django_cfg/apps/knowbase/mixins/config/__init__.py +1 -1
  128. django_cfg/apps/knowbase/mixins/config/meta_config.py +1 -1
  129. django_cfg/apps/knowbase/mixins/config.py +19 -18
  130. django_cfg/apps/knowbase/mixins/creator.py +7 -7
  131. django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +29 -28
  132. django_cfg/apps/knowbase/mixins/external_data_mixin.py +6 -5
  133. django_cfg/apps/knowbase/mixins/generators/__init__.py +1 -1
  134. django_cfg/apps/knowbase/mixins/generators/content_generator.py +2 -2
  135. django_cfg/apps/knowbase/mixins/service.py +47 -45
  136. django_cfg/apps/knowbase/models/__init__.py +7 -7
  137. django_cfg/apps/knowbase/models/archive.py +72 -72
  138. django_cfg/apps/knowbase/models/base.py +12 -13
  139. django_cfg/apps/knowbase/models/chat.py +20 -19
  140. django_cfg/apps/knowbase/models/document.py +37 -35
  141. django_cfg/apps/knowbase/models/external_data.py +41 -42
  142. django_cfg/apps/knowbase/serializers/__init__.py +7 -7
  143. django_cfg/apps/knowbase/serializers/archive_serializers.py +50 -42
  144. django_cfg/apps/knowbase/serializers/chat_serializers.py +16 -15
  145. django_cfg/apps/knowbase/serializers/document_serializers.py +13 -12
  146. django_cfg/apps/knowbase/serializers/external_data_serializers.py +31 -31
  147. django_cfg/apps/knowbase/serializers/public_serializers.py +10 -9
  148. django_cfg/apps/knowbase/services/__init__.py +7 -7
  149. django_cfg/apps/knowbase/services/archive/__init__.py +7 -7
  150. django_cfg/apps/knowbase/services/archive/analyzers/__init__.py +1 -1
  151. django_cfg/apps/knowbase/services/archive/analyzers/tag_generator.py +1 -1
  152. django_cfg/apps/knowbase/services/archive/archive_service.py +109 -112
  153. django_cfg/apps/knowbase/services/archive/chunking/__init__.py +3 -3
  154. django_cfg/apps/knowbase/services/archive/chunking/base.py +1 -0
  155. django_cfg/apps/knowbase/services/archive/chunking/json_chunker.py +4 -3
  156. django_cfg/apps/knowbase/services/archive/chunking/markdown_chunker.py +5 -4
  157. django_cfg/apps/knowbase/services/archive/chunking/python_chunker.py +6 -5
  158. django_cfg/apps/knowbase/services/archive/chunking/text_chunker.py +4 -3
  159. django_cfg/apps/knowbase/services/archive/chunking_service.py +3 -7
  160. django_cfg/apps/knowbase/services/archive/context/__init__.py +1 -1
  161. django_cfg/apps/knowbase/services/archive/context/builders.py +2 -1
  162. django_cfg/apps/knowbase/services/archive/context/models.py +2 -1
  163. django_cfg/apps/knowbase/services/archive/exceptions.py +5 -5
  164. django_cfg/apps/knowbase/services/archive/extraction_service.py +111 -110
  165. django_cfg/apps/knowbase/services/archive/vectorization_service.py +80 -77
  166. django_cfg/apps/knowbase/services/base.py +11 -9
  167. django_cfg/apps/knowbase/services/chat_service.py +40 -39
  168. django_cfg/apps/knowbase/services/document_service.py +28 -27
  169. django_cfg/apps/knowbase/services/embedding/__init__.py +9 -9
  170. django_cfg/apps/knowbase/services/embedding/async_processor.py +38 -40
  171. django_cfg/apps/knowbase/services/embedding/batch_processor.py +45 -42
  172. django_cfg/apps/knowbase/services/embedding/batch_result.py +7 -6
  173. django_cfg/apps/knowbase/services/embedding/models.py +52 -51
  174. django_cfg/apps/knowbase/services/embedding/processors.py +24 -23
  175. django_cfg/apps/knowbase/services/embedding/utils.py +17 -17
  176. django_cfg/apps/knowbase/services/prompt_builder.py +24 -23
  177. django_cfg/apps/knowbase/services/search_service.py +52 -49
  178. django_cfg/apps/knowbase/signals/__init__.py +2 -5
  179. django_cfg/apps/knowbase/signals/archive_signals.py +35 -34
  180. django_cfg/apps/knowbase/signals/chat_signals.py +6 -5
  181. django_cfg/apps/knowbase/signals/document_signals.py +22 -22
  182. django_cfg/apps/knowbase/signals/external_data_signals.py +22 -22
  183. django_cfg/apps/knowbase/tasks/__init__.py +6 -7
  184. django_cfg/apps/knowbase/tasks/archive_tasks.py +41 -41
  185. django_cfg/apps/knowbase/tasks/document_processing.py +49 -44
  186. django_cfg/apps/knowbase/tasks/external_data_tasks.py +46 -44
  187. django_cfg/apps/knowbase/tasks/maintenance.py +26 -24
  188. django_cfg/apps/knowbase/urls.py +3 -2
  189. django_cfg/apps/knowbase/urls_admin.py +6 -3
  190. django_cfg/apps/knowbase/urls_system.py +4 -5
  191. django_cfg/apps/knowbase/utils/chunk_settings.py +22 -20
  192. django_cfg/apps/knowbase/utils/text_processing.py +76 -75
  193. django_cfg/apps/knowbase/utils/validation.py +9 -9
  194. django_cfg/apps/knowbase/views/__init__.py +5 -5
  195. django_cfg/apps/knowbase/views/archive_views.py +90 -87
  196. django_cfg/apps/knowbase/views/base.py +9 -12
  197. django_cfg/apps/knowbase/views/chat_views.py +35 -32
  198. django_cfg/apps/knowbase/views/document_views.py +27 -28
  199. django_cfg/apps/knowbase/views/public_views.py +19 -19
  200. django_cfg/apps/leads/admin/leads_admin.py +41 -45
  201. django_cfg/apps/leads/admin/resources.py +14 -14
  202. django_cfg/apps/leads/admin.py +7 -9
  203. django_cfg/apps/leads/apps.py +1 -1
  204. django_cfg/apps/leads/models.py +17 -17
  205. django_cfg/apps/leads/serializers.py +5 -4
  206. django_cfg/apps/leads/signals.py +7 -7
  207. django_cfg/apps/leads/tests.py +47 -47
  208. django_cfg/apps/leads/urls.py +2 -2
  209. django_cfg/apps/leads/views.py +11 -11
  210. django_cfg/apps/maintenance/__init__.py +3 -3
  211. django_cfg/apps/maintenance/admin/__init__.py +1 -1
  212. django_cfg/apps/maintenance/admin/api_key_admin.py +36 -36
  213. django_cfg/apps/maintenance/admin/log_admin.py +35 -37
  214. django_cfg/apps/maintenance/admin/scheduled_admin.py +47 -51
  215. django_cfg/apps/maintenance/admin/site_admin.py +49 -52
  216. django_cfg/apps/maintenance/apps.py +2 -2
  217. django_cfg/apps/maintenance/management/commands/maintenance.py +53 -52
  218. django_cfg/apps/maintenance/management/commands/process_scheduled_maintenance.py +44 -44
  219. django_cfg/apps/maintenance/management/commands/sync_cloudflare.py +32 -32
  220. django_cfg/apps/maintenance/managers/__init__.py +1 -1
  221. django_cfg/apps/maintenance/managers/cloudflare_site_manager.py +39 -38
  222. django_cfg/apps/maintenance/managers/maintenance_log_manager.py +32 -31
  223. django_cfg/apps/maintenance/migrations/0001_initial.py +1 -0
  224. django_cfg/apps/maintenance/models/__init__.py +2 -2
  225. django_cfg/apps/maintenance/models/cloudflare_api_key.py +15 -15
  226. django_cfg/apps/maintenance/models/cloudflare_site.py +24 -22
  227. django_cfg/apps/maintenance/models/maintenance_log.py +15 -14
  228. django_cfg/apps/maintenance/models/scheduled_maintenance.py +53 -52
  229. django_cfg/apps/maintenance/services/__init__.py +3 -3
  230. django_cfg/apps/maintenance/services/bulk_operations_service.py +68 -68
  231. django_cfg/apps/maintenance/services/maintenance_service.py +59 -58
  232. django_cfg/apps/maintenance/services/scheduled_maintenance_service.py +52 -52
  233. django_cfg/apps/maintenance/services/site_sync_service.py +64 -65
  234. django_cfg/apps/maintenance/utils/__init__.py +1 -1
  235. django_cfg/apps/maintenance/utils/retry_utils.py +17 -17
  236. django_cfg/apps/newsletter/admin/__init__.py +12 -16
  237. django_cfg/apps/newsletter/admin/newsletter_admin.py +90 -87
  238. django_cfg/apps/newsletter/admin/resources.py +29 -29
  239. django_cfg/apps/newsletter/admin.py +39 -32
  240. django_cfg/apps/newsletter/management/commands/test_newsletter.py +3 -3
  241. django_cfg/apps/newsletter/managers/__init__.py +1 -1
  242. django_cfg/apps/newsletter/migrations/0001_initial.py +2 -1
  243. django_cfg/apps/newsletter/models.py +34 -33
  244. django_cfg/apps/newsletter/serializers.py +13 -13
  245. django_cfg/apps/newsletter/services/email_service.py +42 -40
  246. django_cfg/apps/newsletter/signals.py +4 -3
  247. django_cfg/apps/newsletter/urls.py +7 -7
  248. django_cfg/apps/newsletter/views/__init__.py +14 -19
  249. django_cfg/apps/newsletter/views/campaigns.py +19 -19
  250. django_cfg/apps/newsletter/views/emails.py +20 -20
  251. django_cfg/apps/newsletter/views/newsletters.py +5 -5
  252. django_cfg/apps/newsletter/views/subscriptions.py +24 -24
  253. django_cfg/apps/newsletter/views/tracking.py +6 -5
  254. django_cfg/apps/payments/admin/__init__.py +6 -5
  255. django_cfg/apps/payments/admin/api_keys_admin.py +43 -45
  256. django_cfg/apps/payments/admin/balance_admin.py +41 -47
  257. django_cfg/apps/payments/admin/currencies_admin.py +60 -62
  258. django_cfg/apps/payments/admin/endpoint_groups_admin.py +14 -28
  259. django_cfg/apps/payments/admin/filters.py +59 -59
  260. django_cfg/apps/payments/admin/networks_admin.py +36 -50
  261. django_cfg/apps/payments/admin/payments_admin.py +47 -49
  262. django_cfg/apps/payments/admin/subscriptions_admin.py +30 -32
  263. django_cfg/apps/payments/admin/tariffs_admin.py +37 -42
  264. django_cfg/apps/payments/admin_interface/serializers/__init__.py +12 -13
  265. django_cfg/apps/payments/admin_interface/serializers/payment_serializers.py +28 -27
  266. django_cfg/apps/payments/admin_interface/serializers/webhook_serializers.py +4 -5
  267. django_cfg/apps/payments/admin_interface/templates/payments/base.html +407 -3
  268. django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_status.html +13 -13
  269. django_cfg/apps/payments/admin_interface/templates/payments/payment_dashboard.html +5 -1
  270. django_cfg/apps/payments/admin_interface/templates/payments/payment_detail.html +105 -49
  271. django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html +4 -1
  272. django_cfg/apps/payments/admin_interface/templates/payments/payment_list.html +16 -8
  273. django_cfg/apps/payments/admin_interface/templates/payments/webhook_dashboard.html +16 -8
  274. django_cfg/apps/payments/admin_interface/views/__init__.py +8 -9
  275. django_cfg/apps/payments/admin_interface/views/api/__init__.py +3 -3
  276. django_cfg/apps/payments/admin_interface/views/api/payments.py +52 -54
  277. django_cfg/apps/payments/admin_interface/views/api/stats.py +33 -30
  278. django_cfg/apps/payments/admin_interface/views/api/users.py +10 -11
  279. django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +46 -51
  280. django_cfg/apps/payments/admin_interface/views/api/webhook_public.py +9 -9
  281. django_cfg/apps/payments/admin_interface/views/base.py +17 -19
  282. django_cfg/apps/payments/admin_interface/views/dashboard.py +10 -10
  283. django_cfg/apps/payments/admin_interface/views/forms.py +21 -20
  284. django_cfg/apps/payments/apps.py +7 -6
  285. django_cfg/apps/payments/config/__init__.py +4 -4
  286. django_cfg/apps/payments/config/django_cfg_integration.py +22 -21
  287. django_cfg/apps/payments/config/helpers.py +14 -12
  288. django_cfg/apps/payments/management/commands/cleanup_expired_data.py +85 -86
  289. django_cfg/apps/payments/management/commands/currency_stats.py +84 -87
  290. django_cfg/apps/payments/management/commands/manage_currencies.py +59 -58
  291. django_cfg/apps/payments/management/commands/manage_providers.py +103 -105
  292. django_cfg/apps/payments/management/commands/process_pending_payments.py +67 -70
  293. django_cfg/apps/payments/management/commands/test_providers.py +83 -84
  294. django_cfg/apps/payments/middleware/__init__.py +1 -1
  295. django_cfg/apps/payments/middleware/api_access.py +77 -78
  296. django_cfg/apps/payments/middleware/rate_limiting.py +72 -72
  297. django_cfg/apps/payments/middleware/usage_tracking.py +66 -64
  298. django_cfg/apps/payments/migrations/0001_initial.py +2 -1
  299. django_cfg/apps/payments/models/__init__.py +11 -12
  300. django_cfg/apps/payments/models/api_keys.py +29 -27
  301. django_cfg/apps/payments/models/balance.py +38 -38
  302. django_cfg/apps/payments/models/base.py +12 -11
  303. django_cfg/apps/payments/models/currencies.py +53 -52
  304. django_cfg/apps/payments/models/managers/__init__.py +13 -14
  305. django_cfg/apps/payments/models/managers/api_key_managers.py +55 -53
  306. django_cfg/apps/payments/models/managers/balance_managers.py +98 -97
  307. django_cfg/apps/payments/models/managers/currency_managers.py +70 -69
  308. django_cfg/apps/payments/models/managers/payment_managers.py +113 -111
  309. django_cfg/apps/payments/models/managers/subscription_managers.py +99 -97
  310. django_cfg/apps/payments/models/payments.py +167 -73
  311. django_cfg/apps/payments/models/subscriptions.py +56 -54
  312. django_cfg/apps/payments/models/tariffs.py +35 -34
  313. django_cfg/apps/payments/services/__init__.py +33 -36
  314. django_cfg/apps/payments/services/cache/__init__.py +7 -1
  315. django_cfg/apps/payments/services/cache_service/__init__.py +22 -20
  316. django_cfg/apps/payments/services/cache_service/api_key_cache.py +6 -5
  317. django_cfg/apps/payments/services/cache_service/interfaces.py +5 -5
  318. django_cfg/apps/payments/services/cache_service/keys.py +8 -8
  319. django_cfg/apps/payments/services/cache_service/rate_limit_cache.py +8 -7
  320. django_cfg/apps/payments/services/cache_service/simple_cache.py +17 -14
  321. django_cfg/apps/payments/services/core/__init__.py +3 -3
  322. django_cfg/apps/payments/services/core/balance_service.py +69 -65
  323. django_cfg/apps/payments/services/core/base.py +25 -22
  324. django_cfg/apps/payments/services/core/currency/__init__.py +1 -1
  325. django_cfg/apps/payments/services/core/currency/currency_converter.py +2 -0
  326. django_cfg/apps/payments/services/core/currency_service.py +68 -66
  327. django_cfg/apps/payments/services/core/operations/__init__.py +1 -1
  328. django_cfg/apps/payments/services/core/operations/payment_canceller.py +2 -1
  329. django_cfg/apps/payments/services/core/operations/payment_creator.py +2 -1
  330. django_cfg/apps/payments/services/core/operations/status_checker.py +2 -1
  331. django_cfg/apps/payments/services/core/payment_service.py +10 -7
  332. django_cfg/apps/payments/services/core/providers/provider_client.py +2 -2
  333. django_cfg/apps/payments/services/core/subscription_service.py +77 -74
  334. django_cfg/apps/payments/services/core/utils/data_converter.py +1 -0
  335. django_cfg/apps/payments/services/core/utils/statistics_calculator.py +1 -0
  336. django_cfg/apps/payments/services/core/webhook_service.py +67 -63
  337. django_cfg/apps/payments/services/integrations/__init__.py +3 -3
  338. django_cfg/apps/payments/services/integrations/ngrok_service.py +1 -0
  339. django_cfg/apps/payments/services/integrations/providers_config.py +3 -2
  340. django_cfg/apps/payments/services/providers/base.py +59 -57
  341. django_cfg/apps/payments/services/providers/models/__init__.py +7 -14
  342. django_cfg/apps/payments/services/providers/models/base.py +15 -15
  343. django_cfg/apps/payments/services/providers/models/providers.py +13 -12
  344. django_cfg/apps/payments/services/providers/models/universal.py +6 -5
  345. django_cfg/apps/payments/services/providers/nowpayments/__init__.py +4 -4
  346. django_cfg/apps/payments/services/providers/nowpayments/config.py +9 -8
  347. django_cfg/apps/payments/services/providers/nowpayments/models.py +15 -15
  348. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/__init__.py +2 -2
  349. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/patterns.py +26 -26
  350. django_cfg/apps/payments/services/providers/nowpayments/parsers/parser.py +3 -2
  351. django_cfg/apps/payments/services/providers/nowpayments/provider.py +95 -99
  352. django_cfg/apps/payments/services/providers/nowpayments/sync.py +41 -40
  353. django_cfg/apps/payments/services/providers/registry.py +65 -63
  354. django_cfg/apps/payments/services/providers/sync_service.py +50 -50
  355. django_cfg/apps/payments/services/types/__init__.py +21 -22
  356. django_cfg/apps/payments/services/types/data.py +14 -13
  357. django_cfg/apps/payments/services/types/requests.py +21 -22
  358. django_cfg/apps/payments/services/types/responses.py +16 -15
  359. django_cfg/apps/payments/services/types/webhooks.py +30 -30
  360. django_cfg/apps/payments/signals/__init__.py +4 -6
  361. django_cfg/apps/payments/signals/api_key_signals.py +36 -35
  362. django_cfg/apps/payments/signals/balance_signals.py +28 -26
  363. django_cfg/apps/payments/signals/payment_signals.py +29 -28
  364. django_cfg/apps/payments/signals/subscription_signals.py +39 -38
  365. django_cfg/apps/payments/static/payments/js/ngrok-status.js +12 -8
  366. django_cfg/apps/payments/static/payments/js/payment-detail.js +1 -1
  367. django_cfg/apps/payments/static/payments/js/payment-form.js +3 -3
  368. django_cfg/apps/payments/static/payments/js/payment-list.js +13 -6
  369. django_cfg/apps/payments/static/payments/js/webhook-dashboard-mjs.js +241 -0
  370. django_cfg/apps/payments/tasks/__init__.py +11 -12
  371. django_cfg/apps/payments/tasks/types.py +10 -9
  372. django_cfg/apps/payments/tasks/usage_tracking.py +44 -46
  373. django_cfg/apps/payments/templatetags/payment_tags.py +27 -27
  374. django_cfg/apps/payments/urls.py +31 -14
  375. django_cfg/apps/payments/urls_admin.py +10 -10
  376. django_cfg/apps/payments/views/api/__init__.py +32 -33
  377. django_cfg/apps/payments/views/api/api_keys.py +62 -62
  378. django_cfg/apps/payments/views/api/balances.py +63 -64
  379. django_cfg/apps/payments/views/api/base.py +52 -52
  380. django_cfg/apps/payments/views/api/currencies.py +75 -63
  381. django_cfg/apps/payments/views/api/payments.py +73 -74
  382. django_cfg/apps/payments/views/api/subscriptions.py +71 -72
  383. django_cfg/apps/payments/views/api/webhooks.py +85 -84
  384. django_cfg/apps/payments/views/overview/__init__.py +7 -7
  385. django_cfg/apps/payments/views/overview/serializers.py +13 -14
  386. django_cfg/apps/payments/views/overview/services.py +66 -67
  387. django_cfg/apps/payments/views/overview/urls.py +2 -1
  388. django_cfg/apps/payments/views/overview/views.py +31 -31
  389. django_cfg/apps/payments/views/serializers/__init__.py +35 -36
  390. django_cfg/apps/payments/views/serializers/api_keys.py +59 -57
  391. django_cfg/apps/payments/views/serializers/balances.py +34 -33
  392. django_cfg/apps/payments/views/serializers/currencies.py +36 -34
  393. django_cfg/apps/payments/views/serializers/payments.py +48 -47
  394. django_cfg/apps/payments/views/serializers/subscriptions.py +50 -45
  395. django_cfg/apps/payments/views/serializers/webhooks.py +17 -16
  396. django_cfg/apps/support/admin/__init__.py +3 -3
  397. django_cfg/apps/support/admin/resources.py +26 -26
  398. django_cfg/apps/support/admin/support_admin.py +44 -48
  399. django_cfg/apps/support/admin.py +16 -15
  400. django_cfg/apps/support/apps.py +1 -1
  401. django_cfg/apps/support/managers/message_manager.py +4 -4
  402. django_cfg/apps/support/managers/ticket_manager.py +13 -12
  403. django_cfg/apps/support/migrations/0001_initial.py +2 -1
  404. django_cfg/apps/support/models.py +3 -1
  405. django_cfg/apps/support/serializers.py +4 -2
  406. django_cfg/apps/support/signals.py +12 -10
  407. django_cfg/apps/support/urls.py +4 -3
  408. django_cfg/apps/support/utils/support_email_service.py +11 -9
  409. django_cfg/apps/support/views/__init__.py +3 -3
  410. django_cfg/apps/support/views/admin.py +9 -9
  411. django_cfg/apps/support/views/api.py +12 -13
  412. django_cfg/apps/support/views/chat.py +14 -14
  413. django_cfg/apps/tasks/admin/tasks_admin.py +65 -74
  414. django_cfg/apps/tasks/apps.py +2 -2
  415. django_cfg/apps/tasks/serializers.py +6 -6
  416. django_cfg/apps/tasks/static/tasks/js/dashboard/main.mjs +44 -20
  417. django_cfg/apps/tasks/static/tasks/js/dashboard/overview.mjs +7 -5
  418. django_cfg/apps/tasks/static/tasks/js/dashboard/queues.mjs +5 -3
  419. django_cfg/apps/tasks/static/tasks/js/dashboard/tasks.mjs +5 -3
  420. django_cfg/apps/tasks/static/tasks/js/dashboard/workers.mjs +5 -3
  421. django_cfg/apps/tasks/tasks/demo_tasks.py +12 -11
  422. django_cfg/apps/tasks/templates/tasks/components/tasks_mjs_integration.html +269 -0
  423. django_cfg/apps/tasks/templates/tasks/pages/dashboard-improved.html +168 -0
  424. django_cfg/apps/tasks/templates/tasks/pages/dashboard.html +21 -2
  425. django_cfg/apps/tasks/urls.py +3 -2
  426. django_cfg/apps/tasks/urls_admin.py +1 -0
  427. django_cfg/apps/tasks/utils/simulator.py +49 -52
  428. django_cfg/apps/tasks/views/api.py +75 -73
  429. django_cfg/apps/tasks/views/dashboard.py +5 -4
  430. django_cfg/apps/urls.py +20 -11
  431. django_cfg/apps.py +6 -5
  432. django_cfg/cli/commands/create_project.py +7 -6
  433. django_cfg/cli/commands/info.py +25 -25
  434. django_cfg/cli/utils.py +27 -27
  435. django_cfg/config.py +1 -1
  436. django_cfg/core/__init__.py +8 -8
  437. django_cfg/core/base/config_model.py +13 -12
  438. django_cfg/core/builders/apps_builder.py +2 -2
  439. django_cfg/core/builders/middleware_builder.py +1 -1
  440. django_cfg/core/builders/security_builder.py +1 -1
  441. django_cfg/core/config.py +2 -2
  442. django_cfg/core/environment/detector.py +27 -28
  443. django_cfg/core/exceptions.py +1 -1
  444. django_cfg/core/generation/core_generators/settings.py +1 -1
  445. django_cfg/core/generation/core_generators/static.py +11 -5
  446. django_cfg/core/generation/core_generators/templates.py +1 -1
  447. django_cfg/core/generation/data_generators/__init__.py +1 -1
  448. django_cfg/core/generation/data_generators/cache.py +1 -1
  449. django_cfg/core/generation/data_generators/database.py +1 -1
  450. django_cfg/core/generation/generation.py +1 -3
  451. django_cfg/core/generation/integration_generators/__init__.py +2 -2
  452. django_cfg/core/generation/integration_generators/api.py +12 -2
  453. django_cfg/core/generation/integration_generators/sessions.py +1 -1
  454. django_cfg/core/generation/integration_generators/tailwind.py +1 -1
  455. django_cfg/core/generation/integration_generators/tasks.py +1 -1
  456. django_cfg/core/generation/integration_generators/third_party.py +1 -1
  457. django_cfg/core/generation/orchestrator.py +1 -1
  458. django_cfg/core/generation/protocols.py +1 -1
  459. django_cfg/core/generation/utility_generators/__init__.py +1 -1
  460. django_cfg/core/generation/utility_generators/email.py +1 -1
  461. django_cfg/core/generation/utility_generators/i18n.py +1 -1
  462. django_cfg/core/generation/utility_generators/limits.py +1 -1
  463. django_cfg/core/generation/utility_generators/logging.py +1 -1
  464. django_cfg/core/generation/utility_generators/security.py +1 -1
  465. django_cfg/core/generation/utils/helpers.py +1 -1
  466. django_cfg/core/integration/__init__.py +5 -5
  467. django_cfg/core/integration/commands_collector.py +38 -39
  468. django_cfg/core/integration/display/__init__.py +2 -2
  469. django_cfg/core/integration/display/base.py +30 -30
  470. django_cfg/core/integration/display/ngrok.py +35 -36
  471. django_cfg/core/integration/display/startup.py +149 -139
  472. django_cfg/core/integration/url_integration.py +10 -10
  473. django_cfg/core/integration/version_checker.py +20 -19
  474. django_cfg/core/services/config_service.py +4 -4
  475. django_cfg/core/state/__init__.py +1 -1
  476. django_cfg/core/state/registry.py +1 -1
  477. django_cfg/core/types/__init__.py +8 -1
  478. django_cfg/core/validation.py +36 -39
  479. django_cfg/management/commands/check_endpoints.py +3 -1
  480. django_cfg/management/commands/check_settings.py +3 -1
  481. django_cfg/management/commands/clear_constance.py +3 -1
  482. django_cfg/management/commands/create_token.py +3 -1
  483. django_cfg/management/commands/generate_clients.py +3 -1
  484. django_cfg/management/commands/migrate_all.py +3 -1
  485. django_cfg/management/commands/rundramatiq.py +3 -1
  486. django_cfg/management/commands/rundramatiq_simulator.py +3 -1
  487. django_cfg/management/commands/runserver_ngrok.py +3 -1
  488. django_cfg/management/commands/show_config.py +3 -1
  489. django_cfg/management/commands/superuser.py +3 -1
  490. django_cfg/management/commands/task_clear.py +3 -1
  491. django_cfg/management/commands/task_status.py +3 -1
  492. django_cfg/management/commands/test_email.py +3 -1
  493. django_cfg/management/commands/test_telegram.py +3 -1
  494. django_cfg/management/commands/test_twilio.py +3 -1
  495. django_cfg/management/commands/validate_openapi.py +3 -1
  496. django_cfg/middleware/pagination.py +8 -8
  497. django_cfg/middleware/public_endpoints.py +24 -23
  498. django_cfg/middleware/user_activity.py +27 -25
  499. django_cfg/models/__init__.py +19 -20
  500. django_cfg/models/api/__init__.py +4 -4
  501. django_cfg/models/api/config.py +23 -21
  502. django_cfg/models/api/cors.py +17 -16
  503. django_cfg/models/api/drf/__init__.py +1 -1
  504. django_cfg/models/api/drf/config.py +2 -1
  505. django_cfg/models/api/drf/redoc.py +2 -1
  506. django_cfg/models/api/drf/spectacular.py +4 -2
  507. django_cfg/models/api/drf/swagger.py +2 -1
  508. django_cfg/models/api/jwt.py +37 -36
  509. django_cfg/models/api/keys.py +13 -12
  510. django_cfg/models/api/limits.py +31 -30
  511. django_cfg/models/base/config.py +40 -41
  512. django_cfg/models/base/module.py +8 -8
  513. django_cfg/models/django/__init__.py +1 -1
  514. django_cfg/models/django/constance.py +8 -7
  515. django_cfg/models/django/environment.py +5 -3
  516. django_cfg/models/django/openapi.py +6 -16
  517. django_cfg/models/django/revolution_legacy.py +17 -16
  518. django_cfg/models/infrastructure/__init__.py +1 -1
  519. django_cfg/models/infrastructure/cache.py +46 -45
  520. django_cfg/models/infrastructure/database/config.py +4 -6
  521. django_cfg/models/infrastructure/database/converters.py +1 -1
  522. django_cfg/models/infrastructure/database/parsers.py +1 -1
  523. django_cfg/models/infrastructure/database/validators.py +1 -1
  524. django_cfg/models/infrastructure/logging.py +59 -57
  525. django_cfg/models/infrastructure/security.py +26 -24
  526. django_cfg/models/ngrok/auth.py +2 -1
  527. django_cfg/models/ngrok/config.py +3 -2
  528. django_cfg/models/ngrok/tunnel.py +2 -1
  529. django_cfg/models/payments/__init__.py +1 -1
  530. django_cfg/models/payments/api_keys.py +3 -1
  531. django_cfg/models/payments/config.py +4 -1
  532. django_cfg/models/payments/providers/base.py +2 -1
  533. django_cfg/models/payments/providers/nowpayments.py +3 -1
  534. django_cfg/models/services/__init__.py +1 -1
  535. django_cfg/models/services/base.py +2 -1
  536. django_cfg/models/services/email.py +28 -26
  537. django_cfg/models/services/telegram.py +2 -1
  538. django_cfg/models/tasks/__init__.py +2 -2
  539. django_cfg/models/tasks/backends.py +4 -3
  540. django_cfg/models/tasks/config.py +6 -4
  541. django_cfg/models/tasks/utils.py +3 -3
  542. django_cfg/modules/base.py +18 -17
  543. django_cfg/modules/django_admin/__init__.py +14 -15
  544. django_cfg/modules/django_admin/decorators/__init__.py +1 -1
  545. django_cfg/modules/django_admin/decorators/actions.py +8 -7
  546. django_cfg/modules/django_admin/decorators/display.py +9 -7
  547. django_cfg/modules/django_admin/icons/__init__.py +1 -1
  548. django_cfg/modules/django_admin/icons/constants.py +27 -27
  549. django_cfg/modules/django_admin/icons/generate_icons.py +54 -54
  550. django_cfg/modules/django_admin/management/commands/check_endpoints.py +5 -3
  551. django_cfg/modules/django_admin/management/commands/check_settings.py +40 -44
  552. django_cfg/modules/django_admin/management/commands/clear_constance.py +29 -30
  553. django_cfg/modules/django_admin/management/commands/create_token.py +42 -42
  554. django_cfg/modules/django_admin/management/commands/list_urls.py +37 -38
  555. django_cfg/modules/django_admin/management/commands/migrate_all.py +13 -15
  556. django_cfg/modules/django_admin/management/commands/migrator.py +17 -17
  557. django_cfg/modules/django_admin/management/commands/script.py +58 -60
  558. django_cfg/modules/django_admin/management/commands/show_config.py +32 -30
  559. django_cfg/modules/django_admin/management/commands/show_urls.py +46 -44
  560. django_cfg/modules/django_admin/management/commands/superuser.py +47 -48
  561. django_cfg/modules/django_admin/management/commands/tree.py +50 -54
  562. django_cfg/modules/django_admin/mixins/display_mixin.py +16 -15
  563. django_cfg/modules/django_admin/mixins/optimization_mixin.py +9 -8
  564. django_cfg/modules/django_admin/mixins/standalone_actions_mixin.py +25 -24
  565. django_cfg/modules/django_admin/models/__init__.py +4 -4
  566. django_cfg/modules/django_admin/models/action_models.py +3 -1
  567. django_cfg/modules/django_admin/models/badge_models.py +4 -2
  568. django_cfg/modules/django_admin/models/base.py +3 -3
  569. django_cfg/modules/django_admin/models/display_models.py +1 -0
  570. django_cfg/modules/django_admin/utils/badges.py +27 -26
  571. django_cfg/modules/django_admin/utils/displays.py +49 -49
  572. django_cfg/modules/django_client/apps.py +21 -3
  573. django_cfg/modules/django_client/core/__init__.py +9 -10
  574. django_cfg/modules/django_client/core/archive/manager.py +2 -2
  575. django_cfg/modules/django_client/core/cli/main.py +1 -3
  576. django_cfg/modules/django_client/core/config/config.py +3 -1
  577. django_cfg/modules/django_client/core/config/group.py +1 -0
  578. django_cfg/modules/django_client/core/config/service.py +2 -1
  579. django_cfg/modules/django_client/core/generator/__init__.py +1 -1
  580. django_cfg/modules/django_client/core/generator/base.py +2 -2
  581. django_cfg/modules/django_client/core/generator/python/async_client_gen.py +1 -1
  582. django_cfg/modules/django_client/core/generator/python/files_generator.py +1 -1
  583. django_cfg/modules/django_client/core/generator/python/generator.py +4 -4
  584. django_cfg/modules/django_client/core/generator/python/models_generator.py +1 -1
  585. django_cfg/modules/django_client/core/generator/python/operations_generator.py +2 -2
  586. django_cfg/modules/django_client/core/generator/python/sync_client_gen.py +1 -1
  587. django_cfg/modules/django_client/core/generator/typescript/client_generator.py +3 -1
  588. django_cfg/modules/django_client/core/generator/typescript/fetchers_generator.py +14 -13
  589. django_cfg/modules/django_client/core/generator/typescript/files_generator.py +1 -0
  590. django_cfg/modules/django_client/core/generator/typescript/generator.py +6 -6
  591. django_cfg/modules/django_client/core/generator/typescript/hooks_generator.py +12 -10
  592. django_cfg/modules/django_client/core/generator/typescript/models_generator.py +2 -1
  593. django_cfg/modules/django_client/core/generator/typescript/naming.py +2 -3
  594. django_cfg/modules/django_client/core/generator/typescript/operations_generator.py +12 -10
  595. django_cfg/modules/django_client/core/generator/typescript/schemas_generator.py +3 -2
  596. django_cfg/modules/django_client/core/generator/typescript/templates/client/client.ts.jinja +14 -6
  597. django_cfg/modules/django_client/core/generator/typescript/templates/main_index.ts.jinja +4 -10
  598. django_cfg/modules/django_client/core/groups/__init__.py +1 -1
  599. django_cfg/modules/django_client/core/groups/detector.py +2 -1
  600. django_cfg/modules/django_client/core/groups/manager.py +2 -1
  601. django_cfg/modules/django_client/core/ir/schema.py +1 -1
  602. django_cfg/modules/django_client/core/parser/base.py +0 -2
  603. django_cfg/modules/django_client/core/parser/models/schema.py +1 -1
  604. django_cfg/modules/django_client/core/validation/__init__.py +1 -1
  605. django_cfg/modules/django_client/core/validation/fixer.py +1 -2
  606. django_cfg/modules/django_client/core/validation/reporter.py +2 -2
  607. django_cfg/modules/django_client/core/validation/safety.py +1 -1
  608. django_cfg/modules/django_client/management/commands/generate_client.py +14 -11
  609. django_cfg/modules/django_client/management/commands/validate_openapi.py +4 -6
  610. django_cfg/modules/django_client/spectacular/__init__.py +1 -1
  611. django_cfg/modules/django_client/spectacular/async_detection.py +3 -2
  612. django_cfg/modules/django_client/spectacular/enum_naming.py +1 -1
  613. django_cfg/modules/django_client/spectacular/schema.py +5 -5
  614. django_cfg/modules/django_client/system/__init__.py +24 -0
  615. django_cfg/modules/django_client/system/base_generator.py +123 -0
  616. django_cfg/modules/django_client/system/generate_mjs_clients.py +174 -0
  617. django_cfg/modules/django_client/system/mjs_generator.py +219 -0
  618. django_cfg/modules/django_client/system/schema_parser.py +195 -0
  619. django_cfg/modules/django_client/system/templates/api_client.js.j2 +87 -0
  620. django_cfg/modules/django_client/system/templates/app_index.js.j2 +13 -0
  621. django_cfg/modules/django_client/system/templates/base_client.js.j2 +166 -0
  622. django_cfg/modules/django_client/system/templates/main_index.js.j2 +80 -0
  623. django_cfg/modules/django_client/system/templates/types.js.j2 +24 -0
  624. django_cfg/modules/django_client/urls.py +3 -2
  625. django_cfg/modules/django_currency/__init__.py +17 -18
  626. django_cfg/modules/django_currency/clients/__init__.py +2 -2
  627. django_cfg/modules/django_currency/clients/coinpaprika_client.py +48 -48
  628. django_cfg/modules/django_currency/clients/hybrid_client.py +76 -75
  629. django_cfg/modules/django_currency/core/__init__.py +7 -13
  630. django_cfg/modules/django_currency/core/converter.py +25 -24
  631. django_cfg/modules/django_currency/core/models.py +9 -8
  632. django_cfg/modules/django_currency/database/__init__.py +4 -4
  633. django_cfg/modules/django_currency/database/database_loader.py +65 -66
  634. django_cfg/modules/django_currency/examples/example_database_usage.py +29 -28
  635. django_cfg/modules/django_currency/utils/cache.py +10 -11
  636. django_cfg/modules/django_dashboard/__init__.py +4 -5
  637. django_cfg/modules/django_dashboard/components.py +11 -7
  638. django_cfg/modules/django_dashboard/debug.py +1 -3
  639. django_cfg/modules/django_dashboard/management/commands/debug_dashboard.py +3 -3
  640. django_cfg/modules/django_dashboard/sections/base.py +2 -1
  641. django_cfg/modules/django_dashboard/sections/commands.py +3 -2
  642. django_cfg/modules/django_dashboard/sections/documentation.py +8 -6
  643. django_cfg/modules/django_dashboard/sections/overview.py +13 -9
  644. django_cfg/modules/django_dashboard/sections/stats.py +2 -2
  645. django_cfg/modules/django_dashboard/sections/system.py +2 -1
  646. django_cfg/modules/django_drf_theme/templatetags/tailwind_tags.py +12 -4
  647. django_cfg/modules/django_email/management/commands/test_email.py +8 -7
  648. django_cfg/modules/django_email/service.py +5 -4
  649. django_cfg/modules/django_health/service.py +46 -44
  650. django_cfg/modules/django_import_export/__init__.py +7 -3
  651. django_cfg/modules/django_llm/__init__.py +3 -2
  652. django_cfg/modules/django_llm/example.py +58 -56
  653. django_cfg/modules/django_llm/llm/__init__.py +1 -1
  654. django_cfg/modules/django_llm/llm/cache.py +21 -20
  655. django_cfg/modules/django_llm/llm/client.py +9 -9
  656. django_cfg/modules/django_llm/llm/costs.py +14 -14
  657. django_cfg/modules/django_llm/llm/embeddings/__init__.py +1 -1
  658. django_cfg/modules/django_llm/llm/embeddings/mock_embedder.py +1 -2
  659. django_cfg/modules/django_llm/llm/embeddings/openai_embedder.py +1 -2
  660. django_cfg/modules/django_llm/llm/extractor.py +8 -8
  661. django_cfg/modules/django_llm/llm/models.py +5 -5
  662. django_cfg/modules/django_llm/llm/models_api/models_query.py +2 -2
  663. django_cfg/modules/django_llm/llm/models_cache.py +91 -92
  664. django_cfg/modules/django_llm/llm/providers/config_builder.py +1 -1
  665. django_cfg/modules/django_llm/llm/providers/provider_manager.py +2 -1
  666. django_cfg/modules/django_llm/llm/requests/cache_manager.py +1 -1
  667. django_cfg/modules/django_llm/llm/requests/chat_handler.py +2 -2
  668. django_cfg/modules/django_llm/llm/requests/embedding_handler.py +1 -1
  669. django_cfg/modules/django_llm/llm/responses/response_builder.py +2 -2
  670. django_cfg/modules/django_llm/llm/stats/stats_manager.py +1 -1
  671. django_cfg/modules/django_llm/llm/tokenizer.py +10 -9
  672. django_cfg/modules/django_llm/translator/__init__.py +1 -1
  673. django_cfg/modules/django_llm/translator/cache.py +36 -35
  674. django_cfg/modules/django_llm/translator/detectors/__init__.py +1 -1
  675. django_cfg/modules/django_llm/translator/detectors/script_detector.py +0 -1
  676. django_cfg/modules/django_llm/translator/stats/stats_tracker.py +1 -1
  677. django_cfg/modules/django_llm/translator/translator.py +5 -4
  678. django_cfg/modules/django_llm/translator/translators/__init__.py +1 -1
  679. django_cfg/modules/django_llm/translator/translators/json_translator.py +1 -1
  680. django_cfg/modules/django_llm/translator/utils/__init__.py +1 -1
  681. django_cfg/modules/django_llm/translator/utils/prompt_builder.py +0 -1
  682. django_cfg/modules/django_logging/__init__.py +1 -1
  683. django_cfg/modules/django_logging/django_logger.py +33 -34
  684. django_cfg/modules/django_logging/logger.py +3 -7
  685. django_cfg/modules/django_ngrok/__init__.py +7 -7
  686. django_cfg/modules/django_ngrok/management/commands/runserver_ngrok.py +33 -30
  687. django_cfg/modules/django_ngrok/service.py +33 -32
  688. django_cfg/modules/django_tailwind/templates/django_tailwind/base.html +4 -36
  689. django_cfg/modules/django_tailwind/templates/django_tailwind/components/navbar.html +1 -1
  690. django_cfg/modules/django_tasks/__init__.py +5 -5
  691. django_cfg/modules/django_tasks/dramatiq_setup.py +1 -1
  692. django_cfg/modules/django_tasks/factory.py +1 -1
  693. django_cfg/modules/django_tasks/management/commands/rundramatiq.py +39 -40
  694. django_cfg/modules/django_tasks/management/commands/rundramatiq_simulator.py +79 -80
  695. django_cfg/modules/django_tasks/management/commands/task_clear.py +34 -34
  696. django_cfg/modules/django_tasks/management/commands/task_status.py +34 -34
  697. django_cfg/modules/django_tasks/service.py +4 -3
  698. django_cfg/modules/django_tasks/settings.py +1 -1
  699. django_cfg/modules/django_telegram/__init__.py +4 -4
  700. django_cfg/modules/django_telegram/management/commands/test_telegram.py +4 -5
  701. django_cfg/modules/django_telegram/service.py +4 -3
  702. django_cfg/modules/django_telegram/utils.py +1 -1
  703. django_cfg/modules/django_twilio/__init__.py +15 -16
  704. django_cfg/modules/django_twilio/_imports.py +1 -1
  705. django_cfg/modules/django_twilio/base.py +9 -5
  706. django_cfg/modules/django_twilio/email_otp.py +4 -3
  707. django_cfg/modules/django_twilio/exceptions.py +36 -36
  708. django_cfg/modules/django_twilio/management/commands/test_twilio.py +6 -7
  709. django_cfg/modules/django_twilio/models.py +54 -53
  710. django_cfg/modules/django_twilio/sendgrid_service.py +70 -72
  711. django_cfg/modules/django_twilio/simple_service.py +42 -41
  712. django_cfg/modules/django_twilio/sms.py +1 -0
  713. django_cfg/modules/django_twilio/twilio_service.py +79 -83
  714. django_cfg/modules/django_twilio/unified.py +6 -5
  715. django_cfg/modules/django_twilio/utils.py +2 -3
  716. django_cfg/modules/django_twilio/whatsapp.py +3 -2
  717. django_cfg/modules/django_unfold/__init__.py +7 -6
  718. django_cfg/modules/django_unfold/callbacks/actions.py +6 -5
  719. django_cfg/modules/django_unfold/callbacks/apizones.py +122 -0
  720. django_cfg/modules/django_unfold/callbacks/base.py +9 -8
  721. django_cfg/modules/django_unfold/callbacks/charts.py +36 -37
  722. django_cfg/modules/django_unfold/callbacks/commands.py +2 -2
  723. django_cfg/modules/django_unfold/callbacks/main.py +27 -27
  724. django_cfg/modules/django_unfold/callbacks/statistics.py +12 -12
  725. django_cfg/modules/django_unfold/callbacks/system.py +5 -5
  726. django_cfg/modules/django_unfold/callbacks/users.py +4 -4
  727. django_cfg/modules/django_unfold/dashboard.py +29 -29
  728. django_cfg/modules/django_unfold/models/__init__.py +23 -8
  729. django_cfg/modules/django_unfold/models/config.py +84 -81
  730. django_cfg/modules/django_unfold/models/dashboard.py +20 -19
  731. django_cfg/modules/django_unfold/models/dropdown.py +6 -4
  732. django_cfg/modules/django_unfold/models/navigation.py +6 -4
  733. django_cfg/modules/django_unfold/models/tabs.py +4 -3
  734. django_cfg/modules/django_unfold/models.py +2 -3
  735. django_cfg/modules/django_unfold/system_monitor.py +27 -25
  736. django_cfg/modules/django_unfold/tailwind.py +12 -14
  737. django_cfg/modules/django_unfold/utils.py +7 -6
  738. django_cfg/pyproject.toml +1 -1
  739. django_cfg/registry/__init__.py +3 -3
  740. django_cfg/registry/core.py +8 -8
  741. django_cfg/registry/modules.py +2 -2
  742. django_cfg/registry/services.py +2 -2
  743. django_cfg/registry/third_party.py +3 -3
  744. django_cfg/routing/__init__.py +3 -3
  745. django_cfg/routing/callbacks.py +27 -26
  746. django_cfg/routing/routers.py +2 -2
  747. django_cfg/static/js/api/accounts/client.mjs +69 -0
  748. django_cfg/static/js/api/accounts/index.mjs +13 -0
  749. django_cfg/static/js/api/base.mjs +166 -0
  750. django_cfg/static/js/api/index.mjs +100 -0
  751. django_cfg/static/js/api/ipc/client.mjs +74 -0
  752. django_cfg/static/js/api/ipc/index.mjs +13 -0
  753. django_cfg/static/js/api/leads/client.mjs +71 -0
  754. django_cfg/static/js/api/leads/index.mjs +13 -0
  755. django_cfg/static/js/api/newsletter/client.mjs +109 -0
  756. django_cfg/static/js/api/newsletter/index.mjs +13 -0
  757. django_cfg/static/js/api/payments/client.mjs +1264 -0
  758. django_cfg/static/js/api/payments/index.mjs +13 -0
  759. django_cfg/static/js/api/support/client.mjs +84 -0
  760. django_cfg/static/js/api/support/index.mjs +13 -0
  761. django_cfg/static/js/api/tasks/client.mjs +74 -0
  762. django_cfg/static/js/api/tasks/index.mjs +13 -0
  763. django_cfg/static/js/api/types.mjs +729 -0
  764. django_cfg/static/js/api-loader.mjs +169 -0
  765. django_cfg/templates/admin/snippets/zones/zones_table.html +4 -3
  766. django_cfg/templatetags/django_cfg.py +4 -4
  767. django_cfg/utils/path_resolution.py +49 -50
  768. django_cfg/utils/smart_defaults.py +27 -29
  769. django_cfg/utils/version_check.py +14 -14
  770. {django_cfg-1.4.20.dist-info → django_cfg-1.4.23.dist-info}/METADATA +1 -1
  771. django_cfg-1.4.23.dist-info/RECORD +1137 -0
  772. django_cfg/apps/payments/static/payments/js/api-client.js +0 -408
  773. django_cfg/modules/django_ipc_client/dashboard/README.md +0 -517
  774. django_cfg/modules/django_ipc_client/dashboard/UNFOLD_INTEGRATION.md +0 -439
  775. django_cfg/modules/django_ipc_client/dashboard/__init__.py +0 -11
  776. django_cfg/modules/django_ipc_client/dashboard/apps.py +0 -22
  777. django_cfg/modules/django_ipc_client/dashboard/templates/django_ipc_dashboard/dashboard.html +0 -200
  778. django_cfg/modules/django_ipc_client/dashboard/urls.py +0 -22
  779. django_cfg/modules/django_ipc_client/dashboard/urls_admin.py +0 -9
  780. django_cfg/modules/django_ipc_client/dashboard/views.py +0 -251
  781. django_cfg/modules/django_rpc_old/POETRY.md +0 -344
  782. django_cfg/modules/django_rpc_old/README.md +0 -397
  783. django_cfg/modules/django_rpc_old/TESTING.md +0 -358
  784. django_cfg/modules/django_rpc_old/__init__.py +0 -39
  785. django_cfg/modules/django_rpc_old/client.py +0 -531
  786. django_cfg/modules/django_rpc_old/config.py +0 -279
  787. django_cfg/modules/django_rpc_old/exceptions.py +0 -172
  788. django_cfg/modules/django_unfold/callbacks/revolution.py +0 -81
  789. django_cfg-1.4.20.dist-info/RECORD +0 -1110
  790. /django_cfg/{modules/django_ipc_client → apps/ipc}/README.md +0 -0
  791. /django_cfg/{modules/django_ipc_client → apps/ipc/services/client}/config.py +0 -0
  792. {django_cfg-1.4.20.dist-info → django_cfg-1.4.23.dist-info}/WHEEL +0 -0
  793. {django_cfg-1.4.20.dist-info → django_cfg-1.4.23.dist-info}/entry_points.txt +0 -0
  794. {django_cfg-1.4.20.dist-info → django_cfg-1.4.23.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,729 @@
1
+ /**
2
+ * Type definitions for django-cfg API
3
+ * Auto-generated from OpenAPI schema
4
+ * @module types
5
+ */
6
+
7
+ // This file contains JSDoc type definitions generated from the OpenAPI schema
8
+ // These types can be used for better IDE support and documentation
9
+
10
+ /**
11
+ * @typedef {Object} APIKeyCreate * @description API key creation serializer with service integration.
12
+
13
+ Creates new API keys and returns the full key value (only once). * @property {string} name - Descriptive name for the API key * @property {number} [expires_in_days] - Expiration in days (optional, null for no expiration) */
14
+
15
+ /**
16
+ * @typedef {Object} APIKeyCreateRequest * @description API key creation serializer with service integration.
17
+
18
+ Creates new API keys and returns the full key value (only once). * @property {string} name - Descriptive name for the API key * @property {number} [expires_in_days] - Expiration in days (optional, null for no expiration) */
19
+
20
+ /**
21
+ * @typedef {Object} APIKeyDetail * @description Complete API key serializer with full details.
22
+
23
+ Used for API key detail views (no key value for security). * @property {string} id - Unique identifier for this record * @property {string} user * @property {string} name - Human-readable name for this API key * @property {string} key_preview * @property {boolean} is_active - Whether this API key is active * @property {boolean} is_expired * @property {boolean} is_valid * @property {number} days_until_expiry * @property {number} total_requests - Total number of requests made with this key * @property {string} last_used_at - When this API key was last used * @property {string} expires_at - When this API key expires (null = never expires) * @property {string} created_at - When this record was created * @property {string} updated_at - When this record was last updated */
24
+
25
+ /**
26
+ * @typedef {Object} APIKeyList * @description Lightweight API key serializer for lists.
27
+
28
+ Optimized for API key lists with minimal data (no key value). * @property {string} id - Unique identifier for this record * @property {string} user * @property {string} name - Human-readable name for this API key * @property {boolean} is_active - Whether this API key is active * @property {boolean} is_expired * @property {boolean} is_valid * @property {number} total_requests - Total number of requests made with this key * @property {string} last_used_at - When this API key was last used * @property {string} expires_at - When this API key expires (null = never expires) * @property {string} created_at - When this record was created */
29
+
30
+ /**
31
+ * @typedef {Object} APIKeyUpdate * @description API key update serializer for modifying API key properties.
32
+
33
+ Allows updating name and active status only. * @property {string} name - Human-readable name for this API key * @property {boolean} [is_active] - Whether this API key is active */
34
+
35
+ /**
36
+ * @typedef {Object} APIKeyUpdateRequest * @description API key update serializer for modifying API key properties.
37
+
38
+ Allows updating name and active status only. * @property {string} name - Human-readable name for this API key * @property {boolean} [is_active] - Whether this API key is active */
39
+
40
+ /**
41
+ * @typedef {Object} APIKeyValidationRequest * @description API key validation serializer.
42
+
43
+ Validates API key and returns key information. * @property {string} key - API key to validate */
44
+
45
+ /**
46
+ * @typedef {Object} APIKeyValidationResponse * @description API key validation response serializer.
47
+
48
+ Defines the structure of API key validation response for OpenAPI schema. * @property {boolean} success - Whether the validation was successful * @property {boolean} valid - Whether the API key is valid * @property {any} api_key - API key details if valid * @property {string} message - Validation message * @property {string} [error] - Error message if validation failed * @property {string} [error_code] - Error code if validation failed */
49
+
50
+ /**
51
+ * @typedef {Object} APIKeysOverview * @description API keys overview metrics * @property {number} total_keys - Total number of API keys * @property {number} active_keys - Number of active API keys * @property {number} expired_keys - Number of expired API keys * @property {number} total_requests - Total requests across all keys * @property {string} last_used_at - When any key was last used * @property {string} most_used_key_name - Name of most used API key * @property {number} most_used_key_requests - Requests count for most used key * @property {number} expiring_soon_count - Number of keys expiring within 7 days */
52
+
53
+ /**
54
+ * @typedef {Object} APIResponse * @description Standard API response serializer. * @property {boolean} success - Operation success status * @property {string} [message] - Success message * @property {string} [error] - Error message * @property {Record<string, any>} [data] - Response data */
55
+
56
+ /**
57
+ * @typedef {Object} APIResponseRequest * @description Standard API response serializer. * @property {boolean} success - Operation success status * @property {string} [message] - Success message * @property {string} [error] - Error message * @property {Record<string, any>} [data] - Response data */
58
+
59
+ /**
60
+ * @typedef {Object} AdminPaymentCreate * @description Serializer for creating payments in admin interface.
61
+ Uses UniversalPayment only for data creation. * @property {number} user * @property {number} amount_usd * @property {string} provider * @property {string} [description] * @property {string} [callback_url] * @property {string} [cancel_url] */
62
+
63
+ /**
64
+ * @typedef {Object} AdminPaymentCreateRequest * @description Serializer for creating payments in admin interface.
65
+ Uses UniversalPayment only for data creation. * @property {number} user * @property {number} amount_usd * @property {string} currency_code - Provider currency code (e.g., BTC, ZROERC20) * @property {string} provider * @property {string} [description] * @property {string} [callback_url] * @property {string} [cancel_url] */
66
+
67
+ /**
68
+ * @typedef {Object} AdminPaymentDetail * @description Detailed serializer for individual payment in admin interface.
69
+ Uses UniversalPayment only for data extraction. * @property {string} id * @property {any} user * @property {string} internal_payment_id * @property {number} amount_usd * @property {number} actual_amount_usd * @property {number} fee_amount_usd * @property {string} currency_code * @property {string} currency_name * @property {string} provider * @property {string} provider_display * @property {string} status * @property {string} status_display * @property {string} pay_amount * @property {string} pay_address * @property {string} payment_url * @property {string} transaction_hash * @property {number} confirmations_count * @property {string} security_nonce * @property {string} expires_at * @property {string} completed_at * @property {string} status_changed_at * @property {string} description * @property {string} callback_url * @property {string} cancel_url * @property {any} provider_data * @property {any} webhook_data * @property {string} created_at * @property {string} updated_at * @property {string} age */
70
+
71
+ /**
72
+ * @typedef {Object} AdminPaymentList * @description Serializer for payment list in admin interface.
73
+ Uses UniversalPayment only for data extraction. * @property {string} id * @property {string} internal_payment_id * @property {any} user * @property {number} amount_usd * @property {string} currency_code * @property {string} currency_name * @property {string} provider * @property {string} provider_display * @property {string} status * @property {string} status_display * @property {string} pay_amount * @property {string} pay_address * @property {string} transaction_hash * @property {string} created_at * @property {string} updated_at * @property {string} description * @property {string} age */
74
+
75
+ /**
76
+ * @typedef {Object} AdminPaymentStats * @description Serializer for payment statistics in admin interface. * @property {number} total_payments * @property {number} total_amount_usd * @property {number} successful_payments * @property {number} failed_payments * @property {number} pending_payments * @property {number} success_rate * @property {Record<string, Record<string, any>>} by_provider - Statistics by provider * @property {Record<string, Record<string, any>>} by_currency - Statistics by currency * @property {Record<string, number>} last_24h - Payments in last 24 hours * @property {Record<string, number>} last_7d - Payments in last 7 days * @property {Record<string, number>} last_30d - Payments in last 30 days */
77
+
78
+ /**
79
+ * @typedef {Object} AdminPaymentUpdate * @description Serializer for updating payments in admin interface. * @property {"pending" | "confirming" | "confirmed" | "completed" | "failed" | "expired" | "cancelled" | "refunded"} [status] - Current payment status
80
+
81
+ * `pending` - Pending
82
+ * `confirming` - Confirming
83
+ * `confirmed` - Confirmed
84
+ * `completed` - Completed
85
+ * `failed` - Failed
86
+ * `expired` - Expired
87
+ * `cancelled` - Cancelled
88
+ * `refunded` - Refunded * @property {string} [description] - Payment description * @property {string} [callback_url] - Success callback URL * @property {string} [cancel_url] - Cancellation URL * @property {any} [provider_data] - Provider-specific data (validated by Pydantic) * @property {any} [webhook_data] - Webhook data (validated by Pydantic) */
89
+
90
+ /**
91
+ * @typedef {Object} AdminPaymentUpdateRequest * @description Serializer for updating payments in admin interface. * @property {"pending" | "confirming" | "confirmed" | "completed" | "failed" | "expired" | "cancelled" | "refunded"} [status] - Current payment status
92
+
93
+ * `pending` - Pending
94
+ * `confirming` - Confirming
95
+ * `confirmed` - Confirmed
96
+ * `completed` - Completed
97
+ * `failed` - Failed
98
+ * `expired` - Expired
99
+ * `cancelled` - Cancelled
100
+ * `refunded` - Refunded * @property {string} [description] - Payment description * @property {string} [callback_url] - Success callback URL * @property {string} [cancel_url] - Cancellation URL * @property {any} [provider_data] - Provider-specific data (validated by Pydantic) * @property {any} [webhook_data] - Webhook data (validated by Pydantic) */
101
+
102
+ /**
103
+ * @typedef {Object} AdminUser * @description Simplified user serializer for admin interface. * @property {number} id * @property {string} username - Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. * @property {string} email * @property {string} first_name * @property {string} last_name * @property {boolean} is_active - Designates whether this user should be treated as active. Unselect this instead of deleting accounts. */
104
+
105
+ /**
106
+ * @typedef {Object} BalanceOverview * @description User balance overview metrics * @property {number} current_balance - Current balance in USD * @property {string} balance_display - Formatted balance display * @property {number} total_deposited - Total amount deposited (lifetime) * @property {number} total_spent - Total amount spent (lifetime) * @property {string} last_transaction_at - Last transaction timestamp * @property {boolean} has_transactions - Whether user has any transactions * @property {boolean} is_empty - Whether balance is zero */
107
+
108
+ /**
109
+ * @typedef {Object} BulkEmailRequest * @description Simple serializer for bulk email. * @property {string[]} recipients * @property {string} subject * @property {string} email_title * @property {string} main_text * @property {string} [main_html_content] * @property {string} [button_text] * @property {string} [button_url] * @property {string} [secondary_text] */
110
+
111
+ /**
112
+ * @typedef {Object} BulkEmailResponse * @description Response for bulk email sending. * @property {boolean} success * @property {number} sent_count * @property {number} failed_count * @property {number} total_recipients * @property {string} [error] */
113
+
114
+ /**
115
+ * @typedef {Object} ChartDataPoint * @description Chart data point for payments analytics * @property {string} x - X-axis value (date) * @property {number} y - Y-axis value (amount or count) */
116
+
117
+ /**
118
+ * @typedef {Object} ChartSeries * @description Chart series data for payments visualization * @property {string} name - Series name * @property {ChartDataPoint[]} data - Data points * @property {string} color - Series color */
119
+
120
+ /**
121
+ * @typedef {Object} Currency * @description Complete currency serializer with full details.
122
+
123
+ Used for currency information and management. * @property {number} id * @property {string} code - Currency code (e.g., BTC, USD, ETH) * @property {string} name - Full currency name (e.g., Bitcoin, US Dollar) * @property {string} symbol - Currency symbol (e.g., $, ₿, Ξ) * @property {"fiat" | "crypto"} currency_type - Type of currency
124
+
125
+ * `fiat` - Fiat Currency
126
+ * `crypto` - Cryptocurrency * @property {string} type_display * @property {number} decimal_places - Number of decimal places for this currency * @property {boolean} is_active - Whether this currency is available for payments * @property {boolean} is_crypto - Check if this is a cryptocurrency. * @property {boolean} is_fiat - Check if this is a fiat currency. * @property {string} created_at - When this record was created * @property {string} updated_at - When this record was last updated */
127
+
128
+ /**
129
+ * @typedef {Object} CurrencyAnalyticsItem * @description Analytics data for a single currency * @property {string} currency_code - Currency code (e.g., BTC) * @property {string} currency_name - Currency name (e.g., Bitcoin) * @property {number} total_payments - Total number of payments * @property {number} total_amount - Total amount in USD * @property {number} completed_payments - Number of completed payments * @property {number} average_amount - Average payment amount in USD * @property {number} success_rate - Success rate percentage */
130
+
131
+ /**
132
+ * @typedef {Object} CurrencyList * @description Lightweight currency serializer for lists.
133
+
134
+ Optimized for currency selection and lists. * @property {number} id * @property {string} code - Currency code (e.g., BTC, USD, ETH) * @property {string} name - Full currency name (e.g., Bitcoin, US Dollar) * @property {string} symbol - Currency symbol (e.g., $, ₿, Ξ) * @property {"fiat" | "crypto"} currency_type - Type of currency
135
+
136
+ * `fiat` - Fiat Currency
137
+ * `crypto` - Cryptocurrency * @property {string} type_display * @property {boolean} is_active - Whether this currency is available for payments */
138
+
139
+ /**
140
+ * @typedef {Object} EmailLog * @description Serializer for EmailLog model. * @property {string} id * @property {number} user * @property {string} user_email * @property {number} newsletter * @property {string} newsletter_title * @property {string} recipient - Comma-separated email addresses * @property {string} subject * @property {string} body * @property {"pending" | "sent" | "failed"} status - * `pending` - Pending
141
+ * `sent` - Sent
142
+ * `failed` - Failed * @property {string} created_at * @property {string} sent_at * @property {string} error_message */
143
+
144
+ /**
145
+ * @typedef {Object} Endpoint * @description Serializer for single endpoint status. * @property {string} url - Resolved URL (for parametrized URLs) or URL pattern * @property {string} [url_pattern] - Original URL pattern (for parametrized URLs) * @property {string} [url_name] - Django URL name (if available) * @property {string} [namespace] - URL namespace * @property {string} group - URL group (up to 3 depth) * @property {string} [view] - View function/class name * @property {string} status - Status: healthy, unhealthy, warning, error, skipped, pending * @property {number} [status_code] - HTTP status code * @property {number} [response_time_ms] - Response time in milliseconds * @property {boolean} [is_healthy] - Whether endpoint is healthy * @property {string} [error] - Error message if check failed * @property {string} [error_type] - Error type: database, general, etc. * @property {string} [reason] - Reason for warning/skip * @property {string} [last_checked] - Timestamp of last check * @property {boolean} [has_parameters] - Whether URL has parameters that were resolved with test values * @property {boolean} [required_auth] - Whether endpoint required JWT authentication * @property {boolean} [rate_limited] - Whether endpoint returned 429 (rate limited) */
146
+
147
+ /**
148
+ * @typedef {Object} EndpointGroup * @description Endpoint group serializer for API access management.
149
+
150
+ Used for subscription endpoint group configuration. * @property {number} id * @property {string} name - Endpoint group name (e.g., 'Payment API', 'Balance API') * @property {string} description - Description of what this endpoint group provides * @property {boolean} is_enabled - Whether this endpoint group is available * @property {string} created_at * @property {string} updated_at */
151
+
152
+ /**
153
+ * @typedef {Object} EndpointsStatus * @description Serializer for overall endpoints status response. * @property {string} status - Overall status: healthy, degraded, or unhealthy * @property {string} timestamp - Timestamp of the check * @property {number} total_endpoints - Total number of endpoints checked * @property {number} healthy - Number of healthy endpoints * @property {number} unhealthy - Number of unhealthy endpoints * @property {number} warnings - Number of endpoints with warnings * @property {number} errors - Number of endpoints with errors * @property {number} skipped - Number of skipped endpoints * @property {Endpoint[]} endpoints - List of all endpoints with their status */
154
+
155
+ /**
156
+ * @typedef {Object} ErrorResponse * @description Generic error response. * @property {boolean} [success] * @property {string} message */
157
+
158
+ /**
159
+ * @typedef {Object} HealthCheck * @description Serializer for health check response. * @property {string} status - Overall health status: healthy, degraded, or unhealthy * @property {string} timestamp - Timestamp of the health check * @property {string} service - Service name * @property {string} version - Django-CFG version * @property {Record<string, any>} checks - Detailed health checks for databases, cache, and system * @property {Record<string, any>} environment - Environment information */
160
+
161
+ /**
162
+ * @typedef {Object} LeadSubmission * @description Serializer for lead form submission from frontend. * @property {string} name * @property {string} email * @property {string} [company] * @property {string} [company_site] * @property {"email" | "whatsapp" | "telegram" | "phone" | "other"} [contact_type] - * `email` - Email
163
+ * `whatsapp` - WhatsApp
164
+ * `telegram` - Telegram
165
+ * `phone` - Phone
166
+ * `other` - Other * @property {string} [contact_value] * @property {string} [subject] * @property {string} message * @property {any} [extra] * @property {string} site_url - Frontend URL where form was submitted */
167
+
168
+ /**
169
+ * @typedef {Object} LeadSubmissionError * @description Response serializer for lead submission errors. * @property {boolean} success * @property {string} error * @property {Record<string, any>} [details] */
170
+
171
+ /**
172
+ * @typedef {Object} LeadSubmissionRequest * @description Serializer for lead form submission from frontend. * @property {string} name * @property {string} email * @property {string} [company] * @property {string} [company_site] * @property {"email" | "whatsapp" | "telegram" | "phone" | "other"} [contact_type] - * `email` - Email
173
+ * `whatsapp` - WhatsApp
174
+ * `telegram` - Telegram
175
+ * `phone` - Phone
176
+ * `other` - Other * @property {string} [contact_value] * @property {string} [subject] * @property {string} message * @property {any} [extra] * @property {string} site_url - Frontend URL where form was submitted */
177
+
178
+ /**
179
+ * @typedef {Object} LeadSubmissionResponse * @description Response serializer for successful lead submission. * @property {boolean} success * @property {string} message * @property {number} lead_id */
180
+
181
+ /**
182
+ * @typedef {Object} Message * @property {string} uuid * @property {string} ticket * @property {any} sender * @property {boolean} is_from_author - Check if this message is from the ticket author. * @property {string} text * @property {string} created_at */
183
+
184
+ /**
185
+ * @typedef {Object} MessageCreate * @property {string} text */
186
+
187
+ /**
188
+ * @typedef {Object} MessageCreateRequest * @property {string} text */
189
+
190
+ /**
191
+ * @typedef {Object} MessageRequest * @property {string} text */
192
+
193
+ /**
194
+ * @typedef {Object} MethodStat * @description Serializer for individual method statistics. * @property {string} method - RPC method name * @property {number} count - Number of calls * @property {number} percentage - Percentage of total calls * @property {number} [avg_time_ms] - Average execution time in milliseconds * @property {number} [avg_time] - Average execution time (alternative field) * @property {number} [success_rate] - Success rate percentage * @property {string} [last_called] - ISO timestamp of last call */
195
+
196
+ /**
197
+ * @typedef {Object} MethodStats * @description Serializer for method statistics response. * @property {MethodStat[]} methods - List of method statistics * @property {number} count - Total number of methods * @property {number} total_calls - Total calls across all methods */
198
+
199
+ /**
200
+ * @typedef {Object} Network * @description Network serializer for blockchain networks.
201
+
202
+ Used for network information and selection. * @property {number} id * @property {any} currency * @property {string} name - Network name (e.g., Ethereum, Bitcoin, Polygon) * @property {string} code - Network code (e.g., ETH, BTC, MATIC) * @property {boolean} is_active - Whether this network is available for payments * @property {string} created_at - When this record was created * @property {string} updated_at - When this record was last updated */
203
+
204
+ /**
205
+ * @typedef {Object} Newsletter * @description Serializer for Newsletter model. * @property {number} id * @property {string} title * @property {string} [description] * @property {boolean} [is_active] * @property {boolean} [auto_subscribe] - Automatically subscribe new users to this newsletter * @property {string} created_at * @property {string} updated_at * @property {number} subscribers_count */
206
+
207
+ /**
208
+ * @typedef {Object} NewsletterCampaign * @description Serializer for NewsletterCampaign model. * @property {number} id * @property {number} newsletter * @property {string} newsletter_title * @property {string} subject * @property {string} email_title * @property {string} main_text * @property {string} [main_html_content] * @property {string} [button_text] * @property {string} [button_url] * @property {string} [secondary_text] * @property {"draft" | "sending" | "sent" | "failed"} status - * `draft` - Draft
209
+ * `sending` - Sending
210
+ * `sent` - Sent
211
+ * `failed` - Failed * @property {string} created_at * @property {string} sent_at * @property {number} recipient_count */
212
+
213
+ /**
214
+ * @typedef {Object} NewsletterCampaignRequest * @description Serializer for NewsletterCampaign model. * @property {number} newsletter * @property {string} subject * @property {string} email_title * @property {string} main_text * @property {string} [main_html_content] * @property {string} [button_text] * @property {string} [button_url] * @property {string} [secondary_text] */
215
+
216
+ /**
217
+ * @typedef {Object} NewsletterSubscription * @description Serializer for NewsletterSubscription model. * @property {number} id * @property {number} newsletter * @property {string} newsletter_title * @property {number} [user] * @property {string} user_email * @property {string} email * @property {boolean} [is_active] * @property {string} subscribed_at * @property {string} unsubscribed_at */
218
+
219
+ /**
220
+ * @typedef {Object} NotificationStats * @description Serializer for notification statistics. * @property {number} total_sent - Total notifications sent * @property {number} delivery_rate - Delivery success rate percentage * @property {Record<string, any>} [by_type] - Breakdown by notification type * @property {any[]} [recent] - Recent notifications * @property {string} [last_sent] - ISO timestamp of last notification * @property {string} [timestamp] - ISO timestamp of the stats * @property {string} [error] - Error message if any */
221
+
222
+ /**
223
+ * @typedef {Object} OTPErrorResponse * @description Error response for OTP operations. * @property {string} error - Error message */
224
+
225
+ /**
226
+ * @typedef {Object} OTPRequestRequest * @description Serializer for OTP request. * @property {string} identifier - Email address or phone number for OTP delivery * @property {"email" | "phone"} [channel] - Delivery channel: 'email' or 'phone'. Auto-detected if not provided.
227
+
228
+ * `email` - Email
229
+ * `phone` - Phone * @property {string} [source_url] - Source URL for tracking registration (e.g., https://dashboard.unrealon.com) */
230
+
231
+ /**
232
+ * @typedef {Object} OTPRequestResponse * @description OTP request response. * @property {string} message - Success message */
233
+
234
+ /**
235
+ * @typedef {Object} OTPVerifyRequest * @description Serializer for OTP verification. * @property {string} identifier - Email address or phone number used for OTP request * @property {string} otp * @property {"email" | "phone"} [channel] - Delivery channel: 'email' or 'phone'. Auto-detected if not provided.
236
+
237
+ * `email` - Email
238
+ * `phone` - Phone * @property {string} [source_url] - Source URL for tracking login (e.g., https://dashboard.unrealon.com) */
239
+
240
+ /**
241
+ * @typedef {Object} OTPVerifyResponse * @description OTP verification response. * @property {string} refresh - JWT refresh token * @property {string} access - JWT access token * @property {any} user - User information */
242
+
243
+ /**
244
+ * @typedef {Object} OverviewStats * @description Serializer for overview statistics. * @property {boolean} [redis_connected] - Whether Redis is connected * @property {number} total_requests_today - Total requests processed today * @property {number} [total_requests_hour] - Total requests in the last hour * @property {string[]} active_methods - List of active RPC methods * @property {string} top_method - Most frequently called method * @property {Record<string, any>} [method_counts] - Count of requests per method * @property {number} avg_response_time_ms - Average response time in milliseconds * @property {number} success_rate - Success rate percentage * @property {number} [error_rate] - Error rate percentage * @property {string} [timestamp] - ISO timestamp of the stats * @property {string} [error] - Error message if any */
245
+
246
+ /**
247
+ * @typedef {Object} PaginatedAPIKeyListList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {APIKeyList[]} results - Array of items for current page */
248
+
249
+ /**
250
+ * @typedef {Object} PaginatedAdminPaymentListList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {AdminPaymentList[]} results - Array of items for current page */
251
+
252
+ /**
253
+ * @typedef {Object} PaginatedAdminPaymentStatsList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {AdminPaymentStats[]} results - Array of items for current page */
254
+
255
+ /**
256
+ * @typedef {Object} PaginatedAdminUserList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {AdminUser[]} results - Array of items for current page */
257
+
258
+ /**
259
+ * @typedef {Object} PaginatedCurrencyListList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {CurrencyList[]} results - Array of items for current page */
260
+
261
+ /**
262
+ * @typedef {Object} PaginatedEmailLogList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {EmailLog[]} results - Array of items for current page */
263
+
264
+ /**
265
+ * @typedef {Object} PaginatedEndpointGroupList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {EndpointGroup[]} results - Array of items for current page */
266
+
267
+ /**
268
+ * @typedef {Object} PaginatedLeadSubmissionList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {LeadSubmission[]} results - Array of items for current page */
269
+
270
+ /**
271
+ * @typedef {Object} PaginatedMessageList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {Message[]} results - Array of items for current page */
272
+
273
+ /**
274
+ * @typedef {Object} PaginatedNetworkList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {Network[]} results - Array of items for current page */
275
+
276
+ /**
277
+ * @typedef {Object} PaginatedNewsletterCampaignList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {NewsletterCampaign[]} results - Array of items for current page */
278
+
279
+ /**
280
+ * @typedef {Object} PaginatedNewsletterList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {Newsletter[]} results - Array of items for current page */
281
+
282
+ /**
283
+ * @typedef {Object} PaginatedNewsletterSubscriptionList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {NewsletterSubscription[]} results - Array of items for current page */
284
+
285
+ /**
286
+ * @typedef {Object} PaginatedPaymentListList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {PaymentList[]} results - Array of items for current page */
287
+
288
+ /**
289
+ * @typedef {Object} PaginatedProviderCurrencyList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {ProviderCurrency[]} results - Array of items for current page */
290
+
291
+ /**
292
+ * @typedef {Object} PaginatedRecentPaymentList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {RecentPayment[]} results - Array of items for current page */
293
+
294
+ /**
295
+ * @typedef {Object} PaginatedRecentTransactionList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {RecentTransaction[]} results - Array of items for current page */
296
+
297
+ /**
298
+ * @typedef {Object} PaginatedSubscriptionListList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {SubscriptionList[]} results - Array of items for current page */
299
+
300
+ /**
301
+ * @typedef {Object} PaginatedTariffList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {Tariff[]} results - Array of items for current page */
302
+
303
+ /**
304
+ * @typedef {Object} PaginatedTicketList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {Ticket[]} results - Array of items for current page */
305
+
306
+ /**
307
+ * @typedef {Object} PaginatedTransactionList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {Transaction[]} results - Array of items for current page */
308
+
309
+ /**
310
+ * @typedef {Object} PaginatedUserBalanceList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {UserBalance[]} results - Array of items for current page */
311
+
312
+ /**
313
+ * @typedef {Object} PaginatedWebhookEventListList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {WebhookEventList[]} results - Array of items for current page */
314
+
315
+ /**
316
+ * @typedef {Object} PaginatedWebhookStatsList * @property {number} count - Total number of items across all pages * @property {number} page - Current page number (1-based) * @property {number} pages - Total number of pages * @property {number} page_size - Number of items per page * @property {boolean} has_next - Whether there is a next page * @property {boolean} has_previous - Whether there is a previous page * @property {number} [next_page] - Next page number (null if no next page) * @property {number} [previous_page] - Previous page number (null if no previous page) * @property {WebhookStats[]} results - Array of items for current page */
317
+
318
+ /**
319
+ * @typedef {Object} PatchedAPIKeyUpdateRequest * @description API key update serializer for modifying API key properties.
320
+
321
+ Allows updating name and active status only. * @property {string} [name] - Human-readable name for this API key * @property {boolean} [is_active] - Whether this API key is active */
322
+
323
+ /**
324
+ * @typedef {Object} PatchedAdminPaymentUpdateRequest * @description Serializer for updating payments in admin interface. * @property {"pending" | "confirming" | "confirmed" | "completed" | "failed" | "expired" | "cancelled" | "refunded"} [status] - Current payment status
325
+
326
+ * `pending` - Pending
327
+ * `confirming` - Confirming
328
+ * `confirmed` - Confirmed
329
+ * `completed` - Completed
330
+ * `failed` - Failed
331
+ * `expired` - Expired
332
+ * `cancelled` - Cancelled
333
+ * `refunded` - Refunded * @property {string} [description] - Payment description * @property {string} [callback_url] - Success callback URL * @property {string} [cancel_url] - Cancellation URL * @property {any} [provider_data] - Provider-specific data (validated by Pydantic) * @property {any} [webhook_data] - Webhook data (validated by Pydantic) */
334
+
335
+ /**
336
+ * @typedef {Object} PatchedLeadSubmissionRequest * @description Serializer for lead form submission from frontend. * @property {string} [name] * @property {string} [email] * @property {string} [company] * @property {string} [company_site] * @property {"email" | "whatsapp" | "telegram" | "phone" | "other"} [contact_type] - * `email` - Email
337
+ * `whatsapp` - WhatsApp
338
+ * `telegram` - Telegram
339
+ * `phone` - Phone
340
+ * `other` - Other * @property {string} [contact_value] * @property {string} [subject] * @property {string} [message] * @property {any} [extra] * @property {string} [site_url] - Frontend URL where form was submitted */
341
+
342
+ /**
343
+ * @typedef {Object} PatchedMessageRequest * @property {string} [text] */
344
+
345
+ /**
346
+ * @typedef {Object} PatchedNewsletterCampaignRequest * @description Serializer for NewsletterCampaign model. * @property {number} [newsletter] * @property {string} [subject] * @property {string} [email_title] * @property {string} [main_text] * @property {string} [main_html_content] * @property {string} [button_text] * @property {string} [button_url] * @property {string} [secondary_text] */
347
+
348
+ /**
349
+ * @typedef {Object} PatchedPaymentRequest * @description Complete payment serializer with full details.
350
+
351
+ Used for detail views and updates. * @property {number} [amount_usd] - Payment amount in USD (float for performance) * @property {number} [currency] - Payment currency * @property {number} [network] - Blockchain network (for crypto payments) * @property {"nowpayments"} [provider] - Payment provider
352
+
353
+ * `nowpayments` - NowPayments * @property {"pending" | "confirming" | "confirmed" | "completed" | "failed" | "expired" | "cancelled" | "refunded"} [status] - Current payment status
354
+
355
+ * `pending` - Pending
356
+ * `confirming` - Confirming
357
+ * `confirmed` - Confirmed
358
+ * `completed` - Completed
359
+ * `failed` - Failed
360
+ * `expired` - Expired
361
+ * `cancelled` - Cancelled
362
+ * `refunded` - Refunded * @property {string} [callback_url] - Success callback URL * @property {string} [cancel_url] - Cancellation URL * @property {string} [description] - Payment description * @property {string} [expires_at] - When this payment expires */
363
+
364
+ /**
365
+ * @typedef {Object} PatchedSubscriptionRequest * @description Complete subscription serializer with full details.
366
+
367
+ Used for subscription detail views and updates. * @property {"active" | "inactive" | "suspended" | "cancelled" | "expired"} [status] - Subscription status
368
+
369
+ * `active` - Active
370
+ * `inactive` - Inactive
371
+ * `suspended` - Suspended
372
+ * `cancelled` - Cancelled
373
+ * `expired` - Expired * @property {"free" | "basic" | "pro" | "enterprise"} [tier] - Subscription tier
374
+
375
+ * `free` - Free Tier
376
+ * `basic` - Basic Tier
377
+ * `pro` - Pro Tier
378
+ * `enterprise` - Enterprise Tier * @property {string} [expires_at] - When this subscription expires */
379
+
380
+ /**
381
+ * @typedef {Object} PatchedTicketRequest * @property {number} [user] * @property {string} [subject] * @property {"open" | "waiting_for_user" | "waiting_for_admin" | "resolved" | "closed"} [status] - * `open` - Open
382
+ * `waiting_for_user` - Waiting for User
383
+ * `waiting_for_admin` - Waiting for Admin
384
+ * `resolved` - Resolved
385
+ * `closed` - Closed */
386
+
387
+ /**
388
+ * @typedef {Object} PatchedUnsubscribeRequest * @description Simple serializer for unsubscribe. * @property {number} [subscription_id] */
389
+
390
+ /**
391
+ * @typedef {Object} PatchedUserProfileUpdateRequest * @description Serializer for updating user profile. * @property {string} [first_name] * @property {string} [last_name] * @property {string} [company] * @property {string} [phone] * @property {string} [position] */
392
+
393
+ /**
394
+ * @typedef {Object} Payment * @description Complete payment serializer with full details.
395
+
396
+ Used for detail views and updates. * @property {string} id - Unique identifier for this record * @property {string} user * @property {number} amount_usd - Payment amount in USD (float for performance) * @property {number} currency - Payment currency * @property {number} [network] - Blockchain network (for crypto payments) * @property {"nowpayments"} [provider] - Payment provider
397
+
398
+ * `nowpayments` - NowPayments * @property {"pending" | "confirming" | "confirmed" | "completed" | "failed" | "expired" | "cancelled" | "refunded"} [status] - Current payment status
399
+
400
+ * `pending` - Pending
401
+ * `confirming` - Confirming
402
+ * `confirmed` - Confirmed
403
+ * `completed` - Completed
404
+ * `failed` - Failed
405
+ * `expired` - Expired
406
+ * `cancelled` - Cancelled
407
+ * `refunded` - Refunded * @property {string} status_display * @property {string} amount_display - Get formatted amount display. * @property {string} provider_payment_id - Provider's payment ID * @property {string} payment_url - Payment page URL * @property {string} pay_address - Cryptocurrency payment address * @property {string} [callback_url] - Success callback URL * @property {string} [cancel_url] - Cancellation URL * @property {string} [description] - Payment description * @property {string} transaction_hash - Blockchain transaction hash * @property {number} confirmations_count - Number of blockchain confirmations * @property {string} created_at - When this record was created * @property {string} updated_at - When this record was last updated * @property {string} [expires_at] - When this payment expires * @property {string} completed_at - When this payment was completed * @property {boolean} is_pending - Check if payment is pending. * @property {boolean} is_completed - Check if payment is completed. * @property {boolean} is_failed - Check if payment is failed. * @property {boolean} is_expired - Check if payment is expired. */
408
+
409
+ /**
410
+ * @typedef {Object} PaymentAnalyticsResponse * @description Payment analytics response with currency and provider breakdown * @property {CurrencyAnalyticsItem[]} currency_analytics - Analytics by currency * @property {ProviderAnalyticsItem[]} provider_analytics - Analytics by provider */
411
+
412
+ /**
413
+ * @typedef {Object} PaymentCreate * @description Payment creation serializer with Pydantic integration.
414
+
415
+ Validates input and delegates to PaymentService. * @property {number} amount_usd - Amount in USD (1.00 - 50,000.00) * @property {"BTC" | "ETH" | "LTC" | "XMR" | "USDT" | "USDC" | "ADA" | "DOT"} currency_code - Cryptocurrency to receive
416
+
417
+ * `BTC` - Bitcoin
418
+ * `ETH` - Ethereum
419
+ * `LTC` - Litecoin
420
+ * `XMR` - Monero
421
+ * `USDT` - Tether
422
+ * `USDC` - USD Coin
423
+ * `ADA` - Cardano
424
+ * `DOT` - Polkadot * @property {"nowpayments"} [provider] - Payment provider
425
+
426
+ * `nowpayments` - NowPayments * @property {string} [callback_url] - Success callback URL * @property {string} [cancel_url] - Cancellation URL * @property {string} [description] - Payment description * @property {any} [metadata] - Additional metadata */
427
+
428
+ /**
429
+ * @typedef {Object} PaymentCreateRequest * @description Payment creation serializer with Pydantic integration.
430
+
431
+ Validates input and delegates to PaymentService. * @property {number} amount_usd - Amount in USD (1.00 - 50,000.00) * @property {"BTC" | "ETH" | "LTC" | "XMR" | "USDT" | "USDC" | "ADA" | "DOT"} currency_code - Cryptocurrency to receive
432
+
433
+ * `BTC` - Bitcoin
434
+ * `ETH` - Ethereum
435
+ * `LTC` - Litecoin
436
+ * `XMR` - Monero
437
+ * `USDT` - Tether
438
+ * `USDC` - USD Coin
439
+ * `ADA` - Cardano
440
+ * `DOT` - Polkadot * @property {"nowpayments"} [provider] - Payment provider
441
+
442
+ * `nowpayments` - NowPayments * @property {string} [callback_url] - Success callback URL * @property {string} [cancel_url] - Cancellation URL * @property {string} [description] - Payment description * @property {any} [metadata] - Additional metadata */
443
+
444
+ /**
445
+ * @typedef {Object} PaymentList * @description Lightweight serializer for payment lists.
446
+
447
+ Optimized for list views with minimal data. * @property {string} id - Unique identifier for this record * @property {number} amount_usd - Payment amount in USD (float for performance) * @property {number} currency - Payment currency * @property {"nowpayments"} provider - Payment provider
448
+
449
+ * `nowpayments` - NowPayments * @property {"pending" | "confirming" | "confirmed" | "completed" | "failed" | "expired" | "cancelled" | "refunded"} status - Current payment status
450
+
451
+ * `pending` - Pending
452
+ * `confirming` - Confirming
453
+ * `confirmed` - Confirmed
454
+ * `completed` - Completed
455
+ * `failed` - Failed
456
+ * `expired` - Expired
457
+ * `cancelled` - Cancelled
458
+ * `refunded` - Refunded * @property {string} status_display * @property {string} amount_display - Get formatted amount display. * @property {string} created_at - When this record was created * @property {string} expires_at - When this payment expires */
459
+
460
+ /**
461
+ * @typedef {Object} PaymentOverview * @description Payments overview metrics * @property {number} total_payments - Total number of payments * @property {number} completed_payments - Number of completed payments * @property {number} pending_payments - Number of pending payments * @property {number} failed_payments - Number of failed payments * @property {number} total_amount_usd - Total payment amount in USD * @property {number} completed_amount_usd - Total completed amount in USD * @property {number} average_payment_usd - Average payment amount in USD * @property {number} success_rate - Payment success rate percentage * @property {string} last_payment_at - Last payment timestamp * @property {number} payments_this_month - Number of payments this month * @property {number} amount_this_month - Total amount this month * @property {string} top_currency - Most used currency * @property {number} top_currency_count - Usage count for top currency */
462
+
463
+ /**
464
+ * @typedef {Object} PaymentRequest * @description Complete payment serializer with full details.
465
+
466
+ Used for detail views and updates. * @property {number} amount_usd - Payment amount in USD (float for performance) * @property {number} currency - Payment currency * @property {number} [network] - Blockchain network (for crypto payments) * @property {"nowpayments"} [provider] - Payment provider
467
+
468
+ * `nowpayments` - NowPayments * @property {"pending" | "confirming" | "confirmed" | "completed" | "failed" | "expired" | "cancelled" | "refunded"} [status] - Current payment status
469
+
470
+ * `pending` - Pending
471
+ * `confirming` - Confirming
472
+ * `confirmed` - Confirmed
473
+ * `completed` - Completed
474
+ * `failed` - Failed
475
+ * `expired` - Expired
476
+ * `cancelled` - Cancelled
477
+ * `refunded` - Refunded * @property {string} [callback_url] - Success callback URL * @property {string} [cancel_url] - Cancellation URL * @property {string} [description] - Payment description * @property {string} [expires_at] - When this payment expires */
478
+
479
+ /**
480
+ * @typedef {Object} PaymentsChartResponse * @description Complete chart response for payments analytics * @property {ChartSeries[]} series - Chart series data * @property {string} period - Time period * @property {number} total_amount - Total amount for period * @property {number} total_payments - Total payments for period * @property {number} success_rate - Success rate for period */
481
+
482
+ /**
483
+ * @typedef {Object} PaymentsDashboardOverview * @description Complete payments dashboard overview response * @property {any} metrics - Dashboard metrics * @property {RecentPayment[]} recent_payments - Recent payments * @property {RecentTransaction[]} recent_transactions - Recent transactions * @property {any} chart_data - Chart data for analytics */
484
+
485
+ /**
486
+ * @typedef {Object} PaymentsMetrics * @description Complete payments dashboard metrics * @property {any} balance - Balance overview * @property {any} subscription - Subscription overview * @property {any} api_keys - API keys overview * @property {any} payments - Payments overview */
487
+
488
+ /**
489
+ * @typedef {Object} ProviderAnalyticsItem * @description Analytics data for a single payment provider * @property {string} provider - Provider code * @property {string} provider_display - Provider display name * @property {number} total_payments - Total number of payments * @property {number} total_amount - Total amount in USD * @property {number} completed_payments - Number of completed payments * @property {number} success_rate - Success rate percentage */
490
+
491
+ /**
492
+ * @typedef {Object} ProviderCurrency * @description Provider currency serializer for provider-specific currency info.
493
+
494
+ Used for provider currency management and rates. * @property {number} id * @property {any} currency * @property {any} network * @property {string} provider - Payment provider name (e.g., nowpayments) * @property {string} provider_currency_code - Currency code as used by the provider * @property {number} provider_min_amount_usd - Get minimum amount from provider configuration. * @property {number} provider_max_amount_usd - Get maximum amount from provider configuration. * @property {number} provider_fee_percentage - Get fee percentage from provider configuration. * @property {number} provider_fixed_fee_usd - Get fixed fee from provider configuration. * @property {boolean} is_enabled - Whether this currency is enabled for this provider * @property {string} created_at - When this record was created * @property {string} updated_at - When this record was last updated */
495
+
496
+ /**
497
+ * @typedef {Object} QueueAction * @description Serializer for queue management actions. * @property {"clear" | "clear_all" | "purge" | "purge_failed" | "flush"} action - Action to perform on queues
498
+
499
+ * `clear` - clear
500
+ * `clear_all` - clear_all
501
+ * `purge` - purge
502
+ * `purge_failed` - purge_failed
503
+ * `flush` - flush * @property {string[]} [queue_names] - Specific queues to target (empty = all queues) */
504
+
505
+ /**
506
+ * @typedef {Object} QueueActionRequest * @description Serializer for queue management actions. * @property {"clear" | "clear_all" | "purge" | "purge_failed" | "flush"} action - Action to perform on queues
507
+
508
+ * `clear` - clear
509
+ * `clear_all` - clear_all
510
+ * `purge` - purge
511
+ * `purge_failed` - purge_failed
512
+ * `flush` - flush * @property {string[]} [queue_names] - Specific queues to target (empty = all queues) */
513
+
514
+ /**
515
+ * @typedef {Object} QueueStatus * @description Serializer for queue status data. * @property {Record<string, Record<string, number>>} queues - Queue information with pending/failed counts * @property {number} workers - Number of active workers * @property {boolean} redis_connected - Redis connection status * @property {string} timestamp - Current timestamp * @property {string} [error] - Error message if any */
516
+
517
+ /**
518
+ * @typedef {Object} QuickHealth * @description Serializer for quick health check response. * @property {string} status - Quick health status: ok or error * @property {string} timestamp - Timestamp of the health check * @property {string} [error] - Error message if health check failed */
519
+
520
+ /**
521
+ * @typedef {Object} RPCRequest * @description Serializer for individual RPC request. * @property {string} [id] - Stream entry ID * @property {string} [request_id] - Unique request ID * @property {string} timestamp - ISO timestamp of the request * @property {string} method - RPC method name * @property {Record<string, any>} [params] - Request parameters * @property {string} [correlation_id] - Correlation ID for tracking * @property {string} [source] - Source of the request */
522
+
523
+ /**
524
+ * @typedef {Object} RecentPayment * @description Recent payment item * @property {string} id - Payment ID * @property {string} internal_payment_id - Internal payment ID * @property {number} amount_usd - Payment amount in USD * @property {string} amount_display - Formatted amount display * @property {string} currency_code - Currency code * @property {string} status - Payment status * @property {string} status_display - Human-readable status * @property {string} status_color - Color for status display * @property {string} provider - Payment provider * @property {string} created_at - Payment creation timestamp * @property {string} completed_at - Payment completion timestamp * @property {boolean} is_pending - Whether payment is pending * @property {boolean} is_completed - Whether payment is completed * @property {boolean} is_failed - Whether payment failed */
525
+
526
+ /**
527
+ * @typedef {Object} RecentRequests * @description Serializer for recent requests response. * @property {RPCRequest[]} requests - List of recent RPC requests * @property {number} count - Number of requests returned * @property {number} total_available - Total number of requests available */
528
+
529
+ /**
530
+ * @typedef {Object} RecentTransaction * @description Recent transaction item * @property {string} id - Transaction ID * @property {string} transaction_type - Transaction type * @property {number} amount_usd - Transaction amount in USD * @property {string} amount_display - Formatted amount display * @property {number} balance_after - Balance after transaction * @property {string} description - Transaction description * @property {string} created_at - Transaction timestamp * @property {string} payment_id - Related payment ID * @property {boolean} is_credit - Whether this is a credit transaction * @property {boolean} is_debit - Whether this is a debit transaction * @property {string} type_color - Color for transaction type display */
531
+
532
+ /**
533
+ * @typedef {Object} SendCampaignRequest * @description Simple serializer for sending campaign. * @property {number} campaign_id */
534
+
535
+ /**
536
+ * @typedef {Object} SendCampaignResponse * @description Response for sending campaign. * @property {boolean} success * @property {string} [message] * @property {number} [sent_count] * @property {string} [error] */
537
+
538
+ /**
539
+ * @typedef {Object} Sender * @property {number} id * @property {string} display_username - Get formatted username for display. * @property {string} email * @property {string} avatar * @property {string} initials - Get user's initials for avatar fallback. * @property {boolean} is_staff - Designates whether the user can log into this admin site. * @property {boolean} is_superuser - Designates that this user has all permissions without explicitly assigning them. */
540
+
541
+ /**
542
+ * @typedef {Object} SubscribeRequest * @description Simple serializer for newsletter subscription. * @property {number} newsletter_id * @property {string} email */
543
+
544
+ /**
545
+ * @typedef {Object} SubscribeResponse * @description Response for subscription. * @property {boolean} success * @property {string} message * @property {number} [subscription_id] */
546
+
547
+ /**
548
+ * @typedef {Object} Subscription * @description Complete subscription serializer with full details.
549
+
550
+ Used for subscription detail views and updates. * @property {string} id - Unique identifier for this record * @property {string} user * @property {any} tariff * @property {any} endpoint_group * @property {"active" | "inactive" | "suspended" | "cancelled" | "expired"} [status] - Subscription status
551
+
552
+ * `active` - Active
553
+ * `inactive` - Inactive
554
+ * `suspended` - Suspended
555
+ * `cancelled` - Cancelled
556
+ * `expired` - Expired * @property {string} status_display * @property {string} status_color - Get color for status display. * @property {"free" | "basic" | "pro" | "enterprise"} [tier] - Subscription tier
557
+
558
+ * `free` - Free Tier
559
+ * `basic` - Basic Tier
560
+ * `pro` - Pro Tier
561
+ * `enterprise` - Enterprise Tier * @property {number} total_requests - Total API requests made with this subscription * @property {number} usage_percentage - Get usage percentage for current period. * @property {string} last_request_at - When the last API request was made * @property {string} expires_at - When this subscription expires * @property {boolean} is_active - Check if subscription is active and not expired. * @property {boolean} is_expired - Check if subscription is expired. * @property {string} created_at - When this record was created * @property {string} updated_at - When this record was last updated */
562
+
563
+ /**
564
+ * @typedef {Object} SubscriptionCreate * @description Subscription creation serializer with service integration.
565
+
566
+ Validates input and delegates to SubscriptionService. * @property {number} tariff_id - Tariff ID for the subscription * @property {number} [endpoint_group_id] - Endpoint group ID (optional) * @property {number} [duration_days] - Subscription duration in days */
567
+
568
+ /**
569
+ * @typedef {Object} SubscriptionCreateRequest * @description Subscription creation serializer with service integration.
570
+
571
+ Validates input and delegates to SubscriptionService. * @property {number} tariff_id - Tariff ID for the subscription * @property {number} [endpoint_group_id] - Endpoint group ID (optional) * @property {number} [duration_days] - Subscription duration in days */
572
+
573
+ /**
574
+ * @typedef {Object} SubscriptionList * @description Lightweight subscription serializer for lists.
575
+
576
+ Optimized for subscription lists with minimal data. * @property {string} id - Unique identifier for this record * @property {string} user * @property {string} tariff_name * @property {"active" | "inactive" | "suspended" | "cancelled" | "expired"} status - Subscription status
577
+
578
+ * `active` - Active
579
+ * `inactive` - Inactive
580
+ * `suspended` - Suspended
581
+ * `cancelled` - Cancelled
582
+ * `expired` - Expired * @property {string} status_display * @property {boolean} is_active - Check if subscription is active and not expired. * @property {boolean} is_expired - Check if subscription is expired. * @property {string} expires_at - When this subscription expires * @property {string} created_at - When this record was created */
583
+
584
+ /**
585
+ * @typedef {Object} SubscriptionOverview * @description Current subscription overview * @property {string} tier - Subscription tier * @property {string} tier_display - Human-readable tier name * @property {string} status - Subscription status * @property {string} status_display - Human-readable status * @property {string} status_color - Color for status display * @property {boolean} is_active - Whether subscription is active * @property {boolean} is_expired - Whether subscription is expired * @property {number} days_remaining - Days until expiration * @property {number} requests_per_hour - Hourly request limit * @property {number} requests_per_day - Daily request limit * @property {number} total_requests - Total requests made * @property {number} usage_percentage - Usage percentage for current period * @property {number} monthly_cost_usd - Monthly cost in USD * @property {string} cost_display - Formatted cost display * @property {string} starts_at - Subscription start date * @property {string} expires_at - Subscription expiration date * @property {string} last_request_at - Last API request timestamp * @property {number} endpoint_groups_count - Number of accessible endpoint groups * @property {string[]} endpoint_groups - List of accessible endpoint group names */
586
+
587
+ /**
588
+ * @typedef {Object} SubscriptionRequest * @description Complete subscription serializer with full details.
589
+
590
+ Used for subscription detail views and updates. * @property {"active" | "inactive" | "suspended" | "cancelled" | "expired"} [status] - Subscription status
591
+
592
+ * `active` - Active
593
+ * `inactive` - Inactive
594
+ * `suspended` - Suspended
595
+ * `cancelled` - Cancelled
596
+ * `expired` - Expired * @property {"free" | "basic" | "pro" | "enterprise"} [tier] - Subscription tier
597
+
598
+ * `free` - Free Tier
599
+ * `basic` - Basic Tier
600
+ * `pro` - Pro Tier
601
+ * `enterprise` - Enterprise Tier * @property {string} expires_at - When this subscription expires */
602
+
603
+ /**
604
+ * @typedef {Object} SuccessResponse * @description Generic success response. * @property {boolean} success * @property {string} message */
605
+
606
+ /**
607
+ * @typedef {Object} SupportedProviders * @description Serializer for supported providers response. * @property {boolean} success - Request success status * @property {any} providers - List of supported providers * @property {number} total_count - Total number of providers * @property {string} timestamp - Response timestamp */
608
+
609
+ /**
610
+ * @typedef {Object} Tariff * @description Tariff serializer for subscription pricing.
611
+
612
+ Used for tariff information and selection. * @property {number} id * @property {string} name - Tariff name (e.g., 'Free', 'Basic', 'Pro') * @property {string} description - Detailed description of what this tariff includes * @property {number} monthly_price_usd - Monthly price in USD * @property {number} requests_per_month - API requests allowed per month * @property {number} requests_per_hour - API requests allowed per hour * @property {boolean} is_active - Whether this tariff is available for new subscriptions * @property {EndpointGroup[]} endpoint_groups * @property {number} endpoint_groups_count * @property {string} created_at - When this record was created * @property {string} updated_at - When this record was last updated */
613
+
614
+ /**
615
+ * @typedef {Object} TaskStatistics * @description Serializer for task statistics data. * @property {Record<string, number>} statistics - Task count statistics * @property {Record<string, any>[]} recent_tasks - List of recent tasks * @property {string} timestamp - Current timestamp * @property {string} [error] - Error message if any */
616
+
617
+ /**
618
+ * @typedef {Object} TestEmailRequest * @description Simple serializer for test email. * @property {string} email * @property {string} [subject] * @property {string} [message] */
619
+
620
+ /**
621
+ * @typedef {Object} Ticket * @property {string} uuid * @property {number} user * @property {string} subject * @property {"open" | "waiting_for_user" | "waiting_for_admin" | "resolved" | "closed"} [status] - * `open` - Open
622
+ * `waiting_for_user` - Waiting for User
623
+ * `waiting_for_admin` - Waiting for Admin
624
+ * `resolved` - Resolved
625
+ * `closed` - Closed * @property {string} created_at * @property {number} unanswered_messages_count - Get count of unanswered messages for this specific ticket. */
626
+
627
+ /**
628
+ * @typedef {Object} TicketRequest * @property {number} user * @property {string} subject * @property {"open" | "waiting_for_user" | "waiting_for_admin" | "resolved" | "closed"} [status] - * `open` - Open
629
+ * `waiting_for_user` - Waiting for User
630
+ * `waiting_for_admin` - Waiting for Admin
631
+ * `resolved` - Resolved
632
+ * `closed` - Closed */
633
+
634
+ /**
635
+ * @typedef {Object} TokenRefresh * @property {string} access * @property {string} refresh */
636
+
637
+ /**
638
+ * @typedef {Object} TokenRefreshRequest * @property {string} refresh */
639
+
640
+ /**
641
+ * @typedef {Object} Transaction * @description Transaction serializer with full details.
642
+
643
+ Used for transaction history and details. * @property {string} id - Unique identifier for this record * @property {string} user * @property {number} amount_usd - Transaction amount in USD (positive=credit, negative=debit) * @property {string} amount_display * @property {"deposit" | "withdrawal" | "payment" | "refund" | "fee" | "bonus" | "adjustment"} transaction_type - Type of transaction
644
+
645
+ * `deposit` - Deposit
646
+ * `withdrawal` - Withdrawal
647
+ * `payment` - Payment
648
+ * `refund` - Refund
649
+ * `fee` - Fee
650
+ * `bonus` - Bonus
651
+ * `adjustment` - Adjustment * @property {string} type_color * @property {string} description - Transaction description * @property {string} payment_id - Related payment ID (if applicable) * @property {any} metadata - Additional transaction metadata * @property {boolean} is_credit * @property {boolean} is_debit * @property {string} created_at - When this record was created */
652
+
653
+ /**
654
+ * @typedef {Object} Unsubscribe * @description Simple serializer for unsubscribe. * @property {number} subscription_id */
655
+
656
+ /**
657
+ * @typedef {Object} UnsubscribeRequest * @description Simple serializer for unsubscribe. * @property {number} subscription_id */
658
+
659
+ /**
660
+ * @typedef {Object} User * @description Serializer for user details. * @property {number} id * @property {string} email * @property {string} [first_name] * @property {string} [last_name] * @property {string} full_name - Get user's full name. * @property {string} initials - Get user's initials for avatar fallback. * @property {string} display_username - Get formatted username for display. * @property {string} [company] * @property {string} [phone] * @property {string} [position] * @property {string} [avatar] * @property {boolean} is_staff - Designates whether the user can log into this admin site. * @property {boolean} is_superuser - Designates that this user has all permissions without explicitly assigning them. * @property {string} date_joined * @property {string} last_login * @property {number} unanswered_messages_count - Get count of unanswered messages for the user. */
661
+
662
+ /**
663
+ * @typedef {Object} UserBalance * @description User balance serializer with computed fields.
664
+
665
+ Provides balance information with display helpers. * @property {string} user * @property {number} balance_usd - Current balance in USD (float for performance) * @property {string} balance_display - Formatted balance display. * @property {boolean} is_empty - Check if balance is zero. * @property {boolean} has_transactions - Check if user has any transactions. * @property {string} created_at * @property {string} updated_at */
666
+
667
+ /**
668
+ * @typedef {Object} UserProfileUpdateRequest * @description Serializer for updating user profile. * @property {string} [first_name] * @property {string} [last_name] * @property {string} [company] * @property {string} [phone] * @property {string} [position] */
669
+
670
+ /**
671
+ * @typedef {Object} WebhookEvent * @description Serializer for individual webhook event. * @property {number} id * @property {string} provider * @property {string} event_type * @property {"success" | "failed" | "pending" | "retry"} status - * `success` - Success
672
+ * `failed` - Failed
673
+ * `pending` - Pending
674
+ * `retry` - Retry * @property {string} timestamp * @property {number} payload_size - Size in bytes * @property {number} response_time - Response time in ms * @property {number} [retry_count] * @property {string} [error_message] * @property {string} [payload_preview] * @property {number} [response_status_code] * @property {string} [webhook_url] */
675
+
676
+ /**
677
+ * @typedef {Object} WebhookEventList * @description Serializer for paginated webhook events list. * @property {WebhookEvent[]} events * @property {number} total * @property {number} page * @property {number} per_page * @property {boolean} has_next * @property {boolean} has_previous */
678
+
679
+ /**
680
+ * @typedef {Object} WebhookEventListRequest * @description Serializer for paginated webhook events list. * @property {WebhookEventRequest[]} events * @property {number} total * @property {number} page * @property {number} per_page * @property {boolean} has_next * @property {boolean} has_previous */
681
+
682
+ /**
683
+ * @typedef {Object} WebhookEventRequest * @description Serializer for individual webhook event. * @property {string} provider * @property {string} event_type * @property {"success" | "failed" | "pending" | "retry"} status - * `success` - Success
684
+ * `failed` - Failed
685
+ * `pending` - Pending
686
+ * `retry` - Retry * @property {string} timestamp * @property {number} payload_size - Size in bytes * @property {number} response_time - Response time in ms * @property {number} [retry_count] * @property {string} [error_message] * @property {string} [payload_preview] * @property {number} [response_status_code] * @property {string} [webhook_url] */
687
+
688
+ /**
689
+ * @typedef {Object} WebhookHealth * @description Serializer for webhook health check response. * @property {string} status - Health status * @property {string} timestamp - Check timestamp * @property {any} providers - Provider health status */
690
+
691
+ /**
692
+ * @typedef {Object} WebhookProviderStats * @description Serializer for provider-specific webhook statistics. * @property {number} total * @property {number} successful * @property {number} failed * @property {number} [pending] * @property {number} success_rate */
693
+
694
+ /**
695
+ * @typedef {Object} WebhookProviderStatsRequest * @description Serializer for provider-specific webhook statistics. * @property {number} total * @property {number} successful * @property {number} failed * @property {number} [pending] * @property {number} success_rate */
696
+
697
+ /**
698
+ * @typedef {Object} WebhookResponse * @description Serializer for webhook processing response.
699
+
700
+ Standard response format for all webhook endpoints. * @property {boolean} success - Whether webhook was processed successfully * @property {string} message - Processing result message * @property {string} [payment_id] - Internal payment ID * @property {string} [provider_payment_id] - Provider payment ID * @property {string} [processed_at] - Processing timestamp */
701
+
702
+ /**
703
+ * @typedef {Object} WebhookResponseRequest * @description Serializer for webhook processing response.
704
+
705
+ Standard response format for all webhook endpoints. * @property {boolean} success - Whether webhook was processed successfully * @property {string} message - Processing result message * @property {string} [payment_id] - Internal payment ID * @property {string} [provider_payment_id] - Provider payment ID * @property {string} [processed_at] - Processing timestamp */
706
+
707
+ /**
708
+ * @typedef {Object} WebhookStats * @description Serializer for comprehensive webhook statistics. * @property {number} total * @property {number} successful * @property {number} failed * @property {number} pending * @property {number} success_rate * @property {Record<string, WebhookProviderStats>} providers - Statistics by provider * @property {Record<string, number>} last_24h - Events in last 24 hours * @property {number} avg_response_time * @property {number} max_response_time */
709
+
710
+ /**
711
+ * @typedef {Object} WebhookStatsRequest * @description Serializer for comprehensive webhook statistics. * @property {number} total * @property {number} successful * @property {number} failed * @property {number} pending * @property {number} success_rate * @property {Record<string, WebhookProviderStatsRequest>} providers - Statistics by provider * @property {Record<string, number>} last_24h - Events in last 24 hours * @property {number} avg_response_time * @property {number} max_response_time */
712
+
713
+ /**
714
+ * @typedef {Object} WorkerAction * @description Serializer for worker management actions. * @property {"start" | "stop" | "restart"} action - Action to perform on workers
715
+
716
+ * `start` - start
717
+ * `stop` - stop
718
+ * `restart` - restart * @property {number} [processes] - Number of worker processes * @property {number} [threads] - Number of threads per process */
719
+
720
+ /**
721
+ * @typedef {Object} WorkerActionRequest * @description Serializer for worker management actions. * @property {"start" | "stop" | "restart"} action - Action to perform on workers
722
+
723
+ * `start` - start
724
+ * `stop` - stop
725
+ * `restart` - restart * @property {number} [processes] - Number of worker processes * @property {number} [threads] - Number of threads per process */
726
+
727
+
728
+ // Export empty object to make this a module
729
+ export {};