django-cfg 1.3.3__py3-none-any.whl → 1.3.7__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 (100) hide show
  1. django_cfg/__init__.py +1 -1
  2. django_cfg/apps/payments/admin_interface/old/payments/base.html +175 -0
  3. django_cfg/apps/payments/admin_interface/old/payments/components/dev_tool_card.html +125 -0
  4. django_cfg/apps/payments/admin_interface/old/payments/components/ngrok_status_card.html +113 -0
  5. django_cfg/apps/payments/admin_interface/old/payments/components/status_card.html +35 -0
  6. django_cfg/apps/payments/admin_interface/old/payments/payment_dashboard.html +309 -0
  7. django_cfg/apps/payments/admin_interface/old/payments/payment_form.html +303 -0
  8. django_cfg/apps/payments/admin_interface/old/payments/payment_list.html +382 -0
  9. django_cfg/apps/payments/admin_interface/old/payments/webhook_dashboard.html +518 -0
  10. django_cfg/apps/payments/{static → admin_interface/old/static}/payments/css/components.css +248 -9
  11. django_cfg/apps/payments/admin_interface/old/static/payments/js/ngrok-status.js +163 -0
  12. django_cfg/apps/payments/admin_interface/serializers/__init__.py +39 -0
  13. django_cfg/apps/payments/admin_interface/serializers/payment_serializers.py +149 -0
  14. django_cfg/apps/payments/admin_interface/serializers/webhook_serializers.py +114 -0
  15. django_cfg/apps/payments/admin_interface/templates/payments/base.html +55 -90
  16. django_cfg/apps/payments/admin_interface/templates/payments/components/dialog.html +81 -0
  17. django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_help_dialog.html +112 -0
  18. django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_status.html +175 -0
  19. django_cfg/apps/payments/admin_interface/templates/payments/components/status_card.html +21 -17
  20. django_cfg/apps/payments/admin_interface/templates/payments/payment_dashboard.html +123 -250
  21. django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html +170 -269
  22. django_cfg/apps/payments/admin_interface/templates/payments/payment_list.html +152 -355
  23. django_cfg/apps/payments/admin_interface/templates/payments/webhook_dashboard.html +202 -551
  24. django_cfg/apps/payments/admin_interface/views/__init__.py +25 -14
  25. django_cfg/apps/payments/admin_interface/views/api/__init__.py +20 -0
  26. django_cfg/apps/payments/admin_interface/views/api/payments.py +191 -0
  27. django_cfg/apps/payments/admin_interface/views/api/stats.py +206 -0
  28. django_cfg/apps/payments/admin_interface/views/api/users.py +60 -0
  29. django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +257 -0
  30. django_cfg/apps/payments/admin_interface/views/api/webhook_public.py +70 -0
  31. django_cfg/apps/payments/admin_interface/views/base.py +114 -0
  32. django_cfg/apps/payments/admin_interface/views/dashboard.py +60 -0
  33. django_cfg/apps/payments/admin_interface/views/forms.py +94 -0
  34. django_cfg/apps/payments/config/helpers.py +2 -2
  35. django_cfg/apps/payments/management/commands/cleanup_expired_data.py +16 -6
  36. django_cfg/apps/payments/management/commands/currency_stats.py +72 -5
  37. django_cfg/apps/payments/management/commands/manage_currencies.py +9 -20
  38. django_cfg/apps/payments/management/commands/manage_providers.py +5 -5
  39. django_cfg/apps/payments/middleware/api_access.py +35 -34
  40. django_cfg/apps/payments/migrations/0001_initial.py +1 -1
  41. django_cfg/apps/payments/models/managers/api_key_managers.py +4 -0
  42. django_cfg/apps/payments/models/managers/payment_managers.py +5 -0
  43. django_cfg/apps/payments/models/subscriptions.py +0 -24
  44. django_cfg/apps/payments/services/cache/__init__.py +1 -1
  45. django_cfg/apps/payments/services/core/balance_service.py +13 -2
  46. django_cfg/apps/payments/services/integrations/ngrok_service.py +3 -3
  47. django_cfg/apps/payments/services/providers/registry.py +20 -0
  48. django_cfg/apps/payments/signals/balance_signals.py +7 -4
  49. django_cfg/apps/payments/static/payments/js/api-client.js +385 -0
  50. django_cfg/apps/payments/static/payments/js/ngrok-status.js +58 -0
  51. django_cfg/apps/payments/static/payments/js/payment-dashboard.js +50 -0
  52. django_cfg/apps/payments/static/payments/js/payment-form.js +175 -0
  53. django_cfg/apps/payments/static/payments/js/payment-list.js +95 -0
  54. django_cfg/apps/payments/static/payments/js/webhook-dashboard.js +154 -0
  55. django_cfg/apps/payments/urls.py +4 -0
  56. django_cfg/apps/payments/urls_admin.py +37 -18
  57. django_cfg/apps/payments/views/api/api_keys.py +14 -0
  58. django_cfg/apps/payments/views/api/base.py +1 -0
  59. django_cfg/apps/payments/views/api/currencies.py +2 -2
  60. django_cfg/apps/payments/views/api/payments.py +11 -5
  61. django_cfg/apps/payments/views/api/subscriptions.py +36 -31
  62. django_cfg/apps/payments/views/overview/__init__.py +40 -0
  63. django_cfg/apps/payments/views/overview/serializers.py +205 -0
  64. django_cfg/apps/payments/views/overview/services.py +439 -0
  65. django_cfg/apps/payments/views/overview/urls.py +27 -0
  66. django_cfg/apps/payments/views/overview/views.py +231 -0
  67. django_cfg/apps/payments/views/serializers/api_keys.py +20 -6
  68. django_cfg/apps/payments/views/serializers/balances.py +5 -8
  69. django_cfg/apps/payments/views/serializers/currencies.py +2 -6
  70. django_cfg/apps/payments/views/serializers/payments.py +37 -32
  71. django_cfg/apps/payments/views/serializers/subscriptions.py +4 -26
  72. django_cfg/core/config.py +25 -15
  73. django_cfg/core/generation.py +12 -12
  74. django_cfg/core/integration/display/startup.py +1 -1
  75. django_cfg/core/validation.py +4 -4
  76. django_cfg/management/commands/show_config.py +2 -2
  77. django_cfg/management/commands/tree.py +1 -3
  78. django_cfg/middleware/__init__.py +2 -0
  79. django_cfg/middleware/static_nocache.py +55 -0
  80. django_cfg/models/payments.py +13 -15
  81. django_cfg/models/security.py +15 -0
  82. django_cfg/modules/django_ngrok.py +6 -0
  83. django_cfg/modules/django_unfold/dashboard.py +1 -3
  84. django_cfg/utils/smart_defaults.py +41 -1
  85. {django_cfg-1.3.3.dist-info → django_cfg-1.3.7.dist-info}/METADATA +1 -1
  86. {django_cfg-1.3.3.dist-info → django_cfg-1.3.7.dist-info}/RECORD +97 -64
  87. django_cfg/apps/payments/admin_interface/templates/payments/components/dev_tool_card.html +0 -38
  88. django_cfg/apps/payments/admin_interface/views/payment_views.py +0 -259
  89. django_cfg/apps/payments/admin_interface/views/webhook_dashboard.py +0 -37
  90. /django_cfg/apps/payments/admin_interface/{templates → old}/payments/components/loading_spinner.html +0 -0
  91. /django_cfg/apps/payments/admin_interface/{templates → old}/payments/components/notification.html +0 -0
  92. /django_cfg/apps/payments/admin_interface/{templates → old}/payments/components/provider_card.html +0 -0
  93. /django_cfg/apps/payments/admin_interface/{templates → old}/payments/currency_converter.html +0 -0
  94. /django_cfg/apps/payments/admin_interface/{templates → old}/payments/payment_status.html +0 -0
  95. /django_cfg/apps/payments/{static → admin_interface/old/static}/payments/css/dashboard.css +0 -0
  96. /django_cfg/apps/payments/{static → admin_interface/old/static}/payments/js/components.js +0 -0
  97. /django_cfg/apps/payments/{static → admin_interface/old/static}/payments/js/utils.js +0 -0
  98. {django_cfg-1.3.3.dist-info → django_cfg-1.3.7.dist-info}/WHEEL +0 -0
  99. {django_cfg-1.3.3.dist-info → django_cfg-1.3.7.dist-info}/entry_points.txt +0 -0
  100. {django_cfg-1.3.3.dist-info → django_cfg-1.3.7.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,5 @@
1
1
  django_cfg/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- django_cfg/__init__.py,sha256=tA-lxGDQpDFg-AcpBhuyA2sNdleuJjI4TbNJwxuQTWk,1630
2
+ django_cfg/__init__.py,sha256=Azt7QjjTSvsTyow43YKBWLYwVT6qawwnsoXsPA44HOU,1630
3
3
  django_cfg/apps.py,sha256=k84brkeXJI7EgKZLEpTkM9YFZofKI4PzhFOn1cl9Msc,1656
4
4
  django_cfg/config.py,sha256=cbrtZxfXbI5p-qfdK5eR86OGxIbm4827zYdGIr6LmNg,1399
5
5
  django_cfg/apps/__init__.py,sha256=JtDmEYt1OcleWM2ZaeX0LKDnRQzPOavfaXBWG4ECB5Q,26
@@ -263,8 +263,8 @@ django_cfg/apps/newsletter/views/subscriptions.py,sha256=marHLbRT6a6e8tMjKVtKG_0
263
263
  django_cfg/apps/newsletter/views/tracking.py,sha256=EJlAltpASzc_0nslVPJt-6mnIqI_QCEmz3MQEGPKzmU,2481
264
264
  django_cfg/apps/payments/README.md,sha256=FlyMSGyFnHkUudn99RvQwT0Y77Y-WJgd025wdi5ZB1Y,8290
265
265
  django_cfg/apps/payments/apps.py,sha256=K0y6dYj9VAm-AovX6_3RHt1Iti7ZrgAqB_zui_2_wKU,1736
266
- django_cfg/apps/payments/urls.py,sha256=p_GcCsid8oVIpW1yKPnrrLKnbVTQgMQL4OYZtf7pY_I,3803
267
- django_cfg/apps/payments/urls_admin.py,sha256=qufCSHPX0g8HcAsGcB3icFcImwokGIN5Wd60MeH6ZsM,1815
266
+ django_cfg/apps/payments/urls.py,sha256=9ld9UlKr32_dGkkl-r6N04uYF7TeK3Sf2f1s2yXaumc,3940
267
+ django_cfg/apps/payments/urls_admin.py,sha256=TexZtNHwaCjTKd_AvjbwlCvv0P3ayXujnJ9LCG0VwmU,2653
268
268
  django_cfg/apps/payments/admin/__init__.py,sha256=GYeKIzUR2ibzOq_Zl0_rjILkkLt5Jz3gRY9Pps-oN28,887
269
269
  django_cfg/apps/payments/admin/api_keys_admin.py,sha256=p10fESfcGRuwDht_ptB9_siWSVADneEhe5lHppsBHnc,22201
270
270
  django_cfg/apps/payments/admin/balance_admin.py,sha256=EdlngRKYHNEZ-Wa3eM5GGSBnUgtuKh5NK7LDup92Jsg,26354
@@ -273,41 +273,66 @@ django_cfg/apps/payments/admin/filters.py,sha256=lH9FYafujLDtAqfpyytwsHxVhRJLo_C
273
273
  django_cfg/apps/payments/admin/payments_admin.py,sha256=orSha0A1h3u8gM6mlVLP15k4DlY9sAhc_oic_kh-g9c,19271
274
274
  django_cfg/apps/payments/admin/subscriptions_admin.py,sha256=JH3yk9G--78G3ddRFOuL2-krLeKV8huIiNqla1OgO5c,23255
275
275
  django_cfg/apps/payments/admin_interface/__init__.py,sha256=PNJRbl02SeAOVgqSVNLXa5TcldpG7FvyuVvv-5MmFns,533
276
- django_cfg/apps/payments/admin_interface/templates/payments/base.html,sha256=UkcPMaN4hc6V9oRdJ123Ty4Y6OlI3OVbNZ9g6y8g7xY,7190
277
- django_cfg/apps/payments/admin_interface/templates/payments/currency_converter.html,sha256=3uZMFnoGTh-dGsk6WTLpRFABi0Vilj1La-cna1CvUZI,18428
278
- django_cfg/apps/payments/admin_interface/templates/payments/payment_dashboard.html,sha256=x2LG6cNy10ait8VwObsOGnjLMqm06YJBjUsazSJr5zM,16413
279
- django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html,sha256=HeqFmb_yZ3Uan-eYvPpMcW8cB-5eE1qkpe8Qf9J21u0,14558
280
- django_cfg/apps/payments/admin_interface/templates/payments/payment_list.html,sha256=OyxXX_AYTAbVNnce_lbABPfP9LmyfXmI7bJnwbFqprc,19401
281
- django_cfg/apps/payments/admin_interface/templates/payments/payment_status.html,sha256=wJkL-dw_GVF9ttsYwuoSt5wdm0_zq_VINdC5EPZPuJM,22781
282
- django_cfg/apps/payments/admin_interface/templates/payments/webhook_dashboard.html,sha256=a9uaytK4Wm07Xq58PHdkJHjsVgdo3n8SvqeHT9E6g54,27775
283
- django_cfg/apps/payments/admin_interface/templates/payments/components/dev_tool_card.html,sha256=X6m6geItXB0gK5W5V56p6zstVWEAo2HGHCTLTXXYLwY,1483
284
- django_cfg/apps/payments/admin_interface/templates/payments/components/loading_spinner.html,sha256=PYBzMBdNMfoQDwC-4pLiygS4aXn_DiImv7FsDP8NLjk,704
285
- django_cfg/apps/payments/admin_interface/templates/payments/components/notification.html,sha256=Vq3oIgknbvnyD0V6fy8d1FcQG5n01rASeF6lUXp1hEU,912
286
- django_cfg/apps/payments/admin_interface/templates/payments/components/provider_card.html,sha256=dIlOuWdknSVH5zimBsIWiammeKtqmMMN69_ECm-EFoU,4297
287
- django_cfg/apps/payments/admin_interface/templates/payments/components/status_card.html,sha256=4tTNDDLn-6nkfzYoY_0cTEVeV9CMX3oxC1l_Q43b_ZE,1843
288
- django_cfg/apps/payments/admin_interface/views/__init__.py,sha256=rs5gxExi0PuTwSlnLJEPF07FP5S_1aKexK4oFbBHIpU,499
289
- django_cfg/apps/payments/admin_interface/views/payment_views.py,sha256=Z3HUpHdkzbF0JhkHoPZzgEsi8ThinqkRzYxUUfPkWH0,9341
290
- django_cfg/apps/payments/admin_interface/views/webhook_dashboard.py,sha256=A1VHW5Aqra6TN1y7SuaE62FfBB5jfaJBST-qKqtrYZc,1121
276
+ django_cfg/apps/payments/admin_interface/old/payments/base.html,sha256=qOecB7B9wA4htviUTqzCHeeiKNz1rJOwYzNcvdO8bes,8142
277
+ django_cfg/apps/payments/admin_interface/old/payments/currency_converter.html,sha256=3uZMFnoGTh-dGsk6WTLpRFABi0Vilj1La-cna1CvUZI,18428
278
+ django_cfg/apps/payments/admin_interface/old/payments/payment_dashboard.html,sha256=IPg9aJWihrmPA95OBGJz_z36-hfL54yLq1a7xo-upfg,16738
279
+ django_cfg/apps/payments/admin_interface/old/payments/payment_form.html,sha256=HeqFmb_yZ3Uan-eYvPpMcW8cB-5eE1qkpe8Qf9J21u0,14558
280
+ django_cfg/apps/payments/admin_interface/old/payments/payment_list.html,sha256=OyxXX_AYTAbVNnce_lbABPfP9LmyfXmI7bJnwbFqprc,19401
281
+ django_cfg/apps/payments/admin_interface/old/payments/payment_status.html,sha256=wJkL-dw_GVF9ttsYwuoSt5wdm0_zq_VINdC5EPZPuJM,22781
282
+ django_cfg/apps/payments/admin_interface/old/payments/webhook_dashboard.html,sha256=Dp7sIdKfIIO6gsCARZ-d4Q5igIVdXAvDpN4Jvxc5gLY,23177
283
+ django_cfg/apps/payments/admin_interface/old/payments/components/dev_tool_card.html,sha256=N7xLp6ztsr4DgkhBlnhEth0K0Risg7ZfcGObn_8f0v0,6637
284
+ django_cfg/apps/payments/admin_interface/old/payments/components/loading_spinner.html,sha256=PYBzMBdNMfoQDwC-4pLiygS4aXn_DiImv7FsDP8NLjk,704
285
+ django_cfg/apps/payments/admin_interface/old/payments/components/ngrok_status_card.html,sha256=DK5V_DydX359F6rr_I6amnQrJJwwzf1rl72WT_YYk4g,5463
286
+ django_cfg/apps/payments/admin_interface/old/payments/components/notification.html,sha256=Vq3oIgknbvnyD0V6fy8d1FcQG5n01rASeF6lUXp1hEU,912
287
+ django_cfg/apps/payments/admin_interface/old/payments/components/provider_card.html,sha256=dIlOuWdknSVH5zimBsIWiammeKtqmMMN69_ECm-EFoU,4297
288
+ django_cfg/apps/payments/admin_interface/old/payments/components/status_card.html,sha256=d3xtdOP8qlK-zSYB3g8QGG_FXCPGX1J-blSQJNKtqgw,1411
289
+ django_cfg/apps/payments/admin_interface/old/static/payments/css/components.css,sha256=EpFf6s_6_QoOj7gxaKHfuiFtZ14Isve9u-q8VvydoGo,12248
290
+ django_cfg/apps/payments/admin_interface/old/static/payments/css/dashboard.css,sha256=s1Uupb_ixnIFQKljetlcBP-r7_HkeanbNMul_zdrWOo,4539
291
+ django_cfg/apps/payments/admin_interface/old/static/payments/js/components.js,sha256=3z85iEdT1ZQt9tf4_yJzf20gLaBHvieQ-5f_0di4lGY,19320
292
+ django_cfg/apps/payments/admin_interface/old/static/payments/js/ngrok-status.js,sha256=QuIb8CGS9MN6dQlPYzq_hran-Wzub-o3nPtPr6hfzrs,5834
293
+ django_cfg/apps/payments/admin_interface/old/static/payments/js/utils.js,sha256=NgHkyU9mS5GW7CWBDIKmIUjilkD8KdnzaWWC-GtUzss,13256
294
+ django_cfg/apps/payments/admin_interface/serializers/__init__.py,sha256=NvP8MeCqXvsR7ghQehtjXlIS5hOpTI9aMhBMk8ab3lA,981
295
+ django_cfg/apps/payments/admin_interface/serializers/payment_serializers.py,sha256=_Q1lrqBjuF09Dpo5Jy-jrB-cYFEYwl54b1jVdeqiAMo,5089
296
+ django_cfg/apps/payments/admin_interface/serializers/webhook_serializers.py,sha256=3jF9TP873oe0J1GS7udeD5B7GQ6LlhXXMaxBSIV50U0,3727
297
+ django_cfg/apps/payments/admin_interface/templates/payments/base.html,sha256=xNU-E1D6FFgK2v6T8GY0oFD0gPjdCCIj2HeinjQaSVU,5799
298
+ django_cfg/apps/payments/admin_interface/templates/payments/payment_dashboard.html,sha256=-cntOiZIQA_mXssk5gSoR5q-GbX1FnhyhlQg0o9lslY,9902
299
+ django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html,sha256=fDH1tCRBQXWDGYuGFJA-j31p6qXsIKi3ZhWcnsfvtbo,12414
300
+ django_cfg/apps/payments/admin_interface/templates/payments/payment_list.html,sha256=b6-QEyQSaUz1Il7nHnNFydYdi3qfqKlMgvy1Wy7LO_E,10962
301
+ django_cfg/apps/payments/admin_interface/templates/payments/webhook_dashboard.html,sha256=xNzRsh_3SWGt6haziAFABDbkhEPngqIsTLXqlkprWuY,15143
302
+ django_cfg/apps/payments/admin_interface/templates/payments/components/dialog.html,sha256=wM7LBdDGBNSH9-Cz4l6rKzZ3h-Auwt2cv5prK2V9RsU,3641
303
+ django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_help_dialog.html,sha256=_jCmEupz-tsz6_8tmg0SlYJpRPW0HuUdO7IQfIr7RGc,5828
304
+ django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_status.html,sha256=ZQlWm6jUUEsIBih0GWmA-H0NHkohK4AgpTkEAvOdkNg,7535
305
+ django_cfg/apps/payments/admin_interface/templates/payments/components/status_card.html,sha256=vQlDjsA72HmrewkELUABGL72eWtvs4PAM4T5-wo58PQ,2006
306
+ django_cfg/apps/payments/admin_interface/views/__init__.py,sha256=Wv8wDjbSXi3Jv2qHa680hZvv4Qm6DAx1aIQ7fDcjoos,784
307
+ django_cfg/apps/payments/admin_interface/views/base.py,sha256=sMkoPf9m2GIttb2Y9KIgHM4HJxj1VI-44gin7KGEtCA,3495
308
+ django_cfg/apps/payments/admin_interface/views/dashboard.py,sha256=VMgjHvA83o1WXJH99ZJOXI92cYWHmXJ7bnQj6FNHcwE,1830
309
+ django_cfg/apps/payments/admin_interface/views/forms.py,sha256=1kMIRd3BoKFFJe1ssfWWsi1e-bdFeRSmdCrm90rFfWg,2976
310
+ django_cfg/apps/payments/admin_interface/views/api/__init__.py,sha256=0lwYw-BO_jHZrlwWZbJAVQUCkIMzSDg7KkBxjo1bu8c,506
311
+ django_cfg/apps/payments/admin_interface/views/api/payments.py,sha256=PYzAryU00MI5VPCtoX77D7E4MzIeuIVOfSuwaJYI86A,7141
312
+ django_cfg/apps/payments/admin_interface/views/api/stats.py,sha256=0kUT2GrfDiZ4DF6tSpRSDnb7pAsvk40psE_xdna0Hsg,8019
313
+ django_cfg/apps/payments/admin_interface/views/api/users.py,sha256=QW3lO5EfmecCh6sVxHGuH_v6VHOh-jGcpny6JaJvEio,2244
314
+ django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py,sha256=j-iLPP76EH_7-54MNLS_Z0TVY_Tt5xzFTRLSkZhr8YU,10295
315
+ django_cfg/apps/payments/admin_interface/views/api/webhook_public.py,sha256=w-_62BHPetd5C93b9VnPpojBJNEufdBgw1_0IYjReYw,2466
291
316
  django_cfg/apps/payments/config/__init__.py,sha256=4soiOM2ELb72zzGAR4C0eC5kkJ5KX2y6N5Ezf-aqqSA,946
292
317
  django_cfg/apps/payments/config/django_cfg_integration.py,sha256=Hg5N4Wbu6XoqTABysLmfqhH1ekKP6Zy3wpI8yEiP9Ys,6553
293
- django_cfg/apps/payments/config/helpers.py,sha256=CI-GD5RIONUiXULah_k88BDFdf_61QaZiJCtdxmPPPg,4796
318
+ django_cfg/apps/payments/config/helpers.py,sha256=vA9AcdtwUhtdb-4Gtc6H8c5iuqgvKjkuBocllTilBEI,4814
294
319
  django_cfg/apps/payments/config/constance/__init__.py,sha256=CPDUPosm_gLetrr6uAVFl_ofOF7ILVPje0MKKAd0RS4,658
295
320
  django_cfg/apps/payments/config/constance/config_service.py,sha256=utfq4ifNRxRuuZHLVtTkGj9bqKvyDDeWvvGsgyacu-k,4139
296
321
  django_cfg/apps/payments/config/constance/fields.py,sha256=v45-3ulrrxUesj9r3WEuXbAZIu4uZE0N4Tn-0VaoGfY,2473
297
322
  django_cfg/apps/payments/config/constance/settings.py,sha256=PTzAPwbTV9FX8LwYY0OYkuvbWcIVU47XEeDqTbbbwv0,6854
298
323
  django_cfg/apps/payments/management/__init__.py,sha256=1qi5wv2KVLIKoGVzItrB78D8xrbf3ruwO3_kGZ7bLh4,30
299
324
  django_cfg/apps/payments/management/commands/__init__.py,sha256=1pri3qN5PLFIRSwxLkZJ7Bc4W4UyiKBZCcJjqy1IUr0,22
300
- django_cfg/apps/payments/management/commands/cleanup_expired_data.py,sha256=fKvpSlCwaCiJorlN2vhnid-iUHAwsM3fHJfVB9uKKag,15168
301
- django_cfg/apps/payments/management/commands/currency_stats.py,sha256=yftYm7edz1oxbP1xYR6CO0lR61YUSliOpJlw7tGMi7g,14974
302
- django_cfg/apps/payments/management/commands/manage_currencies.py,sha256=yQjOl25wT3UUmA8uLKI-p4PE0adpxMAhy81TVid7ZDs,15339
303
- django_cfg/apps/payments/management/commands/manage_providers.py,sha256=ojSvGOtjSLnZ8M0-WziC6qNd-sDrXnIzgm7YId7OnuU,15745
325
+ django_cfg/apps/payments/management/commands/cleanup_expired_data.py,sha256=BLk7n5yKXo13lpOyqFH6ZqYTyvmXV7Z4Bg-Kr2oP8Dk,15566
326
+ django_cfg/apps/payments/management/commands/currency_stats.py,sha256=Z2TAtT3r22VRzqI5VnVg0b-B7HVE-hfQ0iAd56YrWl0,17852
327
+ django_cfg/apps/payments/management/commands/manage_currencies.py,sha256=1s9z5PIWuVDcqixyD4gtmfo0CshqlO8FDPS3QLBgcr4,14725
328
+ django_cfg/apps/payments/management/commands/manage_providers.py,sha256=67NDKE2yI5oOvXbHpWuJmRPwAkMqZf1bV2zjZ-kfqQ0,15724
304
329
  django_cfg/apps/payments/management/commands/process_pending_payments.py,sha256=yfmO9sRulGfZQi-tIdf2qWniCU1HhqtGxBY-j_N4UkM,13308
305
330
  django_cfg/apps/payments/management/commands/test_providers.py,sha256=qpXTiKoErZBIXz2KtiWqa4IwWbK8c5WuABE2tDR_eGY,18475
306
331
  django_cfg/apps/payments/middleware/__init__.py,sha256=eL5TmlCKmpW53Ift5rtwS8ss1wUqp4j2gzjGhcAQUQY,380
307
- django_cfg/apps/payments/middleware/api_access.py,sha256=0UEHUNKjNKsewBNDMMNtOdywrj0w84fh0wbw-jjrvn4,15312
332
+ django_cfg/apps/payments/middleware/api_access.py,sha256=bXKKJwxp_mh9HjGrqNeYJKGOuAGYYq7VmgM7f1UA8sc,15513
308
333
  django_cfg/apps/payments/middleware/rate_limiting.py,sha256=U6mEyonU3JAK0LZjZqp-q4KgHnXdWpUJT4LJ1jCeQRQ,14813
309
334
  django_cfg/apps/payments/middleware/usage_tracking.py,sha256=ZDoftaOlV8OfUs05HkQZiE_WWAYeTzDbsiuWKI9pfAg,11814
310
- django_cfg/apps/payments/migrations/0001_initial.py,sha256=DYi5gAC-4U7Mijrj_wKGuAMp9F6nsz1Ov9WyjaXHzK4,48741
335
+ django_cfg/apps/payments/migrations/0001_initial.py,sha256=sjSu5JCT9P3bVB3YrYmAMIUnYVTE7Avyl_t9jhk843g,48741
311
336
  django_cfg/apps/payments/migrations/__init__.py,sha256=OHlzxEGDJYKZz82orZXnh77xy-Okv6FcG3EKMfg9LzU,21
312
337
  django_cfg/apps/payments/models/__init__.py,sha256=7x38zrZjYxH3tV079SthGZeIjuyNB5hbqirT03-ZxuE,1443
313
338
  django_cfg/apps/payments/models/api_keys.py,sha256=dAS9XSOwAOBK40qnjrElz04Up9sqNGNg_0k13pnUjbs,5344
@@ -315,16 +340,16 @@ django_cfg/apps/payments/models/balance.py,sha256=esjkt-VIdWBu09eqxTwP5WmcGdI4aC
315
340
  django_cfg/apps/payments/models/base.py,sha256=XXMxqHe7OYmzVBW7g8nXgE41wJMigkRtgkPYGTx53oA,2212
316
341
  django_cfg/apps/payments/models/currencies.py,sha256=6ONWpBoZUOFVIHGzj_j1LZsI0yRRhk1x9sNn6kINAA8,8458
317
342
  django_cfg/apps/payments/models/payments.py,sha256=qvSBAl5YSqttZCAgaYCIyP23KiCJafzt0HZEJoAkNpg,11321
318
- django_cfg/apps/payments/models/subscriptions.py,sha256=w2zUrybgsKGfQ2QO0QbWHPp5ZZshVrf013CyfKoxdVA,11037
343
+ django_cfg/apps/payments/models/subscriptions.py,sha256=o3C3CIupcz3lyvg_hszvHQaiWR7RJQ-pP1eebIDJfBE,10332
319
344
  django_cfg/apps/payments/models/tariffs.py,sha256=b2iDC7hBdZR8TX8aEskM5nTEa5_f0H6-j6wZdcbHdyk,6471
320
345
  django_cfg/apps/payments/models/managers/__init__.py,sha256=56kdXtRJOLHhtnY4arYi15fEAmWWrWJP0F8kn8okpzU,1090
321
- django_cfg/apps/payments/models/managers/api_key_managers.py,sha256=LuSugGdivQ_3Cb_6feJKa2AHTKdH-vFD68mWKM3Kgb8,10428
346
+ django_cfg/apps/payments/models/managers/api_key_managers.py,sha256=TuJqB6zaHnR1Um6l-tZfUtc9Wit3iB7aaDUEF4vnCbY,10547
322
347
  django_cfg/apps/payments/models/managers/balance_managers.py,sha256=84iV5cfSWiETyfLXoSK_s6A1lRv_dsOxu_n6V57gbEY,20298
323
348
  django_cfg/apps/payments/models/managers/currency_managers.py,sha256=ybLPx24rdnXo8jhCybq_3p5_si9BAhOSwIYib3tey-g,13061
324
- django_cfg/apps/payments/models/managers/payment_managers.py,sha256=Hrkpk6N2bm8uxqNKFy7MTXg8W6-GVw5KMVNj4WYJ-9k,17547
349
+ django_cfg/apps/payments/models/managers/payment_managers.py,sha256=Bb782Z9MCNlawitUdAa_97WXBfqQtqHzl9pG1l7-fCc,17691
325
350
  django_cfg/apps/payments/models/managers/subscription_managers.py,sha256=_hDmneMMTtvo2htNDDZOxuoYyxNKP46JC0MrXLwv5f8,21688
326
351
  django_cfg/apps/payments/services/__init__.py,sha256=QUFVfTwliUvQWtaw0JqDss_LDamgNZwaej8fzL6Qzco,6147
327
- django_cfg/apps/payments/services/cache/__init__.py,sha256=xIeDSSelNoS2eiWlIn-qsK9tYDizPJtVmBH1Ghc7wxk,353
352
+ django_cfg/apps/payments/services/cache/__init__.py,sha256=eUUtnNU1gPyJOAHaUeaDD5WOnPb0aSI7klvTGbgccOE,354
328
353
  django_cfg/apps/payments/services/cache_service/__init__.py,sha256=Lp29sQUzuW7tKfrT6JBQYZgQ_ko4hqm2XozQ0XkC5Gc,4291
329
354
  django_cfg/apps/payments/services/cache_service/api_key_cache.py,sha256=kVLUC5WbRpxXNGiKfcgnR7j4kBH861KpMTuGZJo8ADY,1292
330
355
  django_cfg/apps/payments/services/cache_service/interfaces.py,sha256=7sqTRBSX4BPZ_Oxw6RJTyoLLHTLB5__adyNFZeAzjBI,758
@@ -332,19 +357,19 @@ django_cfg/apps/payments/services/cache_service/keys.py,sha256=U37Dwkboxn0E_B5Mp
332
357
  django_cfg/apps/payments/services/cache_service/rate_limit_cache.py,sha256=MjFn5q23WjupNI2wZ9KpUJZR5TxX1zkYp6Cu1okZIfQ,1785
333
358
  django_cfg/apps/payments/services/cache_service/simple_cache.py,sha256=aoAVHLfDUpAF0DP7UQYywGKjg8KzPjzu5xxMqRmN8zU,3258
334
359
  django_cfg/apps/payments/services/core/__init__.py,sha256=CY2M4ID3rqcdpbokQSdO_fxtdCfHjsGgBsTznyGPw3k,526
335
- django_cfg/apps/payments/services/core/balance_service.py,sha256=vNYJfRS_nsAzxq8aGmwp96Tj5UUgXBoNlMRwP45n9Jc,18212
360
+ django_cfg/apps/payments/services/core/balance_service.py,sha256=WjXYfTGlSSiX047IZSoeHvagSnID9qpSrjVueQUabIA,18636
336
361
  django_cfg/apps/payments/services/core/base.py,sha256=BBOUWPx3dS7u7Ix7KaAyuacCTfXM9jympUuaRSGP4-M,5448
337
362
  django_cfg/apps/payments/services/core/currency_service.py,sha256=1E6uX9rhJyycfktxunkHPD3nhCLWLchXZoVXiwjGiOM,18174
338
363
  django_cfg/apps/payments/services/core/payment_service.py,sha256=X8-yXpBFnvfSVEidMrj42RRvQRZFSKu0cTTrRTtCU0s,18727
339
364
  django_cfg/apps/payments/services/core/subscription_service.py,sha256=1kfxaW-BybIwQkbEpizxNJG_Egz6aF1qCVF2mX4v7Q4,21125
340
365
  django_cfg/apps/payments/services/core/webhook_service.py,sha256=5Ly44QDUQJYm7V5xkOoKaPzobwf5MkLjFI6uamrpTY0,16222
341
366
  django_cfg/apps/payments/services/integrations/__init__.py,sha256=sD48dDem1rqR8jALgrShBfm0-VMhvbK32q4_ufGElq8,663
342
- django_cfg/apps/payments/services/integrations/ngrok_service.py,sha256=QK7aCgm6tVvEZML3LVrfNvXD225pFB5jQD2qLajt42o,1312
367
+ django_cfg/apps/payments/services/integrations/ngrok_service.py,sha256=dxK6dwC2IPknwu6-RlX9v8KK-D6WK922LtVxHtxxxik,1310
343
368
  django_cfg/apps/payments/services/integrations/providers_config.py,sha256=Uuzg8RQAs28csjiDKuk_dnx5ThyB71BJYZmy4ZNCnKs,3264
344
369
  django_cfg/apps/payments/services/providers/__init__.py,sha256=KyBHEiYmIXgWDMDmODSI0dqLBY4Sl3bsBH0Hebx8I4U,443
345
370
  django_cfg/apps/payments/services/providers/base.py,sha256=LT1ypvXQgvDZNZYkPav5QxkeOsdtz2NzWUj-Pae1Fi0,9929
346
371
  django_cfg/apps/payments/services/providers/nowpayments.py,sha256=bfOZZN0HRb3WiwWqm6Aq2ImAqkDnwvhKlKCxsvawWmA,17525
347
- django_cfg/apps/payments/services/providers/registry.py,sha256=futGBBI7KB25eyJ_iszu4l6QMXipKaNWBMBKsI3qSYQ,15849
372
+ django_cfg/apps/payments/services/providers/registry.py,sha256=K0v7chazH3MHDNpVPyWayq8EBgO7yTiV5Upfw1W9gVU,16573
348
373
  django_cfg/apps/payments/services/types/__init__.py,sha256=TCx_laKqtUbe2o3Eu_v73TMkbL7fIJ__VYvE_U3xrvw,1634
349
374
  django_cfg/apps/payments/services/types/data.py,sha256=rjXSsjBqDMVQyx5vRynIbCWWO7A37A7G0iVgohpj4qs,9582
350
375
  django_cfg/apps/payments/services/types/requests.py,sha256=0s-5kPdtInnXJE_0lVUlIIGHDM1Ua4bLoG84qxze_i4,6786
@@ -352,29 +377,36 @@ django_cfg/apps/payments/services/types/responses.py,sha256=3FdyNOGQEoI8uZNjBPhh
352
377
  django_cfg/apps/payments/services/types/webhooks.py,sha256=y7R1CoAZBRn71y9Mc8k6VVj5rjpbQ1ZHJkNHD1ZyK3M,10095
353
378
  django_cfg/apps/payments/signals/__init__.py,sha256=rSso5kyUszEtlbYiw6A72XU2mK1gmB7O9n2lQb2GPWQ,933
354
379
  django_cfg/apps/payments/signals/api_key_signals.py,sha256=fR61t2mOAORD-ugWl4u6ZSP5nuykahnyIqh1uWjRnbY,8587
355
- django_cfg/apps/payments/signals/balance_signals.py,sha256=ByPFzeMpNwo1vGmkeTg0bzLyAhaRPqVdgEvGayUN43Q,6002
380
+ django_cfg/apps/payments/signals/balance_signals.py,sha256=yoWCse6vZfaPkfQVnOIag2aGB23IAb91pzqe29IuFyI,6257
356
381
  django_cfg/apps/payments/signals/payment_signals.py,sha256=uV5v1HlHKxP4A_bpIC1TkTHkj28nEsP3gbRJx3ca0iI,5449
357
382
  django_cfg/apps/payments/signals/subscription_signals.py,sha256=erzd3UczXGKamUecq2r2DeLm-0ycpFANy0nO948qmwg,9061
358
- django_cfg/apps/payments/static/payments/css/components.css,sha256=CE9HL-pqlq1gvmluNIXh5-GvRvHLSYHRm-MVxURZO-I,8395
359
- django_cfg/apps/payments/static/payments/css/dashboard.css,sha256=s1Uupb_ixnIFQKljetlcBP-r7_HkeanbNMul_zdrWOo,4539
360
- django_cfg/apps/payments/static/payments/js/components.js,sha256=3z85iEdT1ZQt9tf4_yJzf20gLaBHvieQ-5f_0di4lGY,19320
361
- django_cfg/apps/payments/static/payments/js/utils.js,sha256=NgHkyU9mS5GW7CWBDIKmIUjilkD8KdnzaWWC-GtUzss,13256
383
+ django_cfg/apps/payments/static/payments/js/api-client.js,sha256=p4No-Fl86ww8XepNMGAa0MaPbGknAoDqqiJILVszc1Y,14059
384
+ django_cfg/apps/payments/static/payments/js/ngrok-status.js,sha256=icSv2FB_zFgOFGNZftklgWO_oH9Ryw7bXs-hyqXyThY,1531
385
+ django_cfg/apps/payments/static/payments/js/payment-dashboard.js,sha256=4KDzaU1mTBgk7Xj5Pxy6FUG4HnLWa9G6PeUvUv9jnqs,1601
386
+ django_cfg/apps/payments/static/payments/js/payment-form.js,sha256=Q8mm4Uj3Q9ctjZYQ44cuPdfAaiRdTyaWLMIsQQafYsE,6649
387
+ django_cfg/apps/payments/static/payments/js/payment-list.js,sha256=Dz_2Bn0JQ9N7biv_Sd92vXIU-IZHKn1_lFA8AFm_amc,3269
388
+ django_cfg/apps/payments/static/payments/js/webhook-dashboard.js,sha256=kpmoks7t_Lf0jIEHtnRoWBLX4rU5OL8e1AFBDlxwlUU,5271
362
389
  django_cfg/apps/payments/templatetags/__init__.py,sha256=K8PcAAZu-q6LgCbrH29BSxwsWH0GQx-PhT7J-hBATMM,24
363
390
  django_cfg/apps/payments/templatetags/payment_tags.py,sha256=hSeWW8Q8ASHrAd6eISxa1LsusVN6Z4IH-sGAhFwd3lo,11902
364
391
  django_cfg/apps/payments/views/api/__init__.py,sha256=gKd8dE4i-ebCxjquFHI6UaW6KKgV0RE3RlH22c8O4pU,2005
365
- django_cfg/apps/payments/views/api/api_keys.py,sha256=b0VH_HNXRl6W7nED23qcxXS9w7NvbyNLfChxlFwMKQg,13219
392
+ django_cfg/apps/payments/views/api/api_keys.py,sha256=yN7DljcQZKNvKzk7MwjJHM6LnmRHwBXfr2KEShC2RYA,13835
366
393
  django_cfg/apps/payments/views/api/balances.py,sha256=a9FsmNjopy8702xXu1gFjWNc6XHkqIoc62HfTG65IdI,13089
367
- django_cfg/apps/payments/views/api/base.py,sha256=HfrOS7n672frW_noseIb5leF5lIXLpDuNfAWAnxC3mQ,10321
368
- django_cfg/apps/payments/views/api/currencies.py,sha256=GrP3FIyxeaiKPjl5uhpw-xv-Gq9tYM75uGDqSSd_vLU,13765
369
- django_cfg/apps/payments/views/api/payments.py,sha256=YybntwsLCxNeTobcQeHRcbr0Ah6IXUVW-1FKoPuznUg,14411
370
- django_cfg/apps/payments/views/api/subscriptions.py,sha256=9SKZIGMOVy4cqawZfBWIGflYKhI4Ahh3yqOuCJyBfpE,16719
394
+ django_cfg/apps/payments/views/api/base.py,sha256=XarvJUnifIB40-gxpLWhQt8WS50EISj6ZNtbw4j_1u0,10388
395
+ django_cfg/apps/payments/views/api/currencies.py,sha256=so7QiFNw5ixtfZc4PsKXteXW7WwwANTs50hTXlRaU2I,13790
396
+ django_cfg/apps/payments/views/api/payments.py,sha256=_CvDbmGDR7vwn0BrkVJ_KIjItSMVmTLdfVEeOwQn__o,14624
397
+ django_cfg/apps/payments/views/api/subscriptions.py,sha256=-0l80BH-csD482EFjgrXREJMZ6ongOiJQevjnBuiV48,16642
371
398
  django_cfg/apps/payments/views/api/webhooks.py,sha256=FrSYuz07r2M0HE9QcG71T8WlqDMX9gKT_XqRXLd71DE,17288
399
+ django_cfg/apps/payments/views/overview/__init__.py,sha256=2SbWIJzExZFsOiBWnaIMURUhXnJDJ8mBcueuKFkBhJw,987
400
+ django_cfg/apps/payments/views/overview/serializers.py,sha256=uxDlzMIrn7hhS0aNExuR2YHZ5Tl1LgeFBfwZwLEu4lo,9654
401
+ django_cfg/apps/payments/views/overview/services.py,sha256=w2SO1UBmNZlXERjJZYIRteGPTwj8AiwUQCBWsTpCAcY,16173
402
+ django_cfg/apps/payments/views/overview/urls.py,sha256=6Ldh8-hrkUakZDkZ7eMXpcYrdAnR8xs2UpmyDUOk4z8,1212
403
+ django_cfg/apps/payments/views/overview/views.py,sha256=F1chPhhQYeey1Wpg7z7fKvlzqT5Nxr2dKIc5PioLc-U,7991
372
404
  django_cfg/apps/payments/views/serializers/__init__.py,sha256=mPY55D6bhRLyPHw6ORrEqtIdgyU2Uezg00EhgD5HK40,2310
373
- django_cfg/apps/payments/views/serializers/api_keys.py,sha256=KDN5g6uRcOaK4ZiFSGMwtoQR3ha09WbLd9udGP_06DM,14272
374
- django_cfg/apps/payments/views/serializers/balances.py,sha256=BncXogOYVpngJfa6qiu07q3X1CbVsr4FXEMIdsInzvU,9747
375
- django_cfg/apps/payments/views/serializers/currencies.py,sha256=EmpJeA94z29_N75nfpC9EvOhQi9aMhMrmvXVuAsMBdM,10784
376
- django_cfg/apps/payments/views/serializers/payments.py,sha256=rX30I6PQxUh0BpNCaWEp1Vq9lktPwx1jJoqAJcLlHM0,12713
377
- django_cfg/apps/payments/views/serializers/subscriptions.py,sha256=iFd8NKsnIYcrAU7imDp6dikV79JuKYuzakljk4PMFc0,14742
405
+ django_cfg/apps/payments/views/serializers/api_keys.py,sha256=PjJJJPMX6b1PD2ppJ6vWSPLLGbEhE1_e3E8Rx5U0bJ0,14873
406
+ django_cfg/apps/payments/views/serializers/balances.py,sha256=-8TnPFH-Am2xYclvK19kZenXTp7AjaE6tetyDaSREW0,9414
407
+ django_cfg/apps/payments/views/serializers/currencies.py,sha256=OzPU8BipZGG7I8PLm1IQOAuPwe9WZDMGNFpM784-YWc,10539
408
+ django_cfg/apps/payments/views/serializers/payments.py,sha256=WvFlTyjIG-HIecYD4320AMKhkCp4J_eQ8erQdL3kIqQ,12542
409
+ django_cfg/apps/payments/views/serializers/subscriptions.py,sha256=b5hrFUjqKOxnpWd8nrOzNCwQkBxNyZPNw9gGxVpTbFc,13620
378
410
  django_cfg/apps/payments/views/serializers/webhooks.py,sha256=u6YUQoCiTXYWlPkaov7fNwJMopG5uGc7QAE6OQLP3zc,6000
379
411
  django_cfg/apps/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
380
412
  django_cfg/apps/support/admin.py,sha256=-fcegtqoCcwPiBXwyNLMftcYCTTbTRRBpWItyeNNkDY,8827
@@ -434,11 +466,11 @@ django_cfg/cli/commands/__init__.py,sha256=EKLXDAx-QttnGmdjsmVANAfhxWplxl2V_2I0S
434
466
  django_cfg/cli/commands/create_project.py,sha256=8Jg4rfnGCINTd6ebBqx-WXG57AIB5C2yY5D3JQAtpyI,21029
435
467
  django_cfg/cli/commands/info.py,sha256=AaLbFFOjHwqiIzZChPxfD3ASZZs1IAD-0RJQaLo2PC0,4925
436
468
  django_cfg/core/__init__.py,sha256=eVK57qFOok9kTeHoNEMQ1BplkUOaQ7NB9kP9eQK1vg0,358
437
- django_cfg/core/config.py,sha256=juDmGqxWl5TTHoueFtCvcja3DGRCzd1ccYDWJQ_edKI,31368
469
+ django_cfg/core/config.py,sha256=u1g6mdUb4hHdUo8lkj3Z102E15lef3q87q2jWv4HdbE,31743
438
470
  django_cfg/core/environment.py,sha256=MAoEPqIPsLVhSANT2Bz4nnus2wmbMW0RCOQxhQfDrDc,9106
439
471
  django_cfg/core/exceptions.py,sha256=RTQEoU3PfR8lqqNNv5ayd_HY2yJLs3eioqUy8VM6AG4,10378
440
- django_cfg/core/generation.py,sha256=s4-vLCfVqa0LjtGLCFTtTqgjs383JLzhNNDAwkb6FjA,26416
441
- django_cfg/core/validation.py,sha256=PhwDBTs24nuM3xqfIT3hXmN88VrhMT-Bk8Yb8FxjmPk,6590
472
+ django_cfg/core/generation.py,sha256=TVRm_s9NaajekkfmIbk2sTlN2je39OALzzqePBxniyA,26427
473
+ django_cfg/core/validation.py,sha256=QeM1k6jjlFp4Sc9FAfK3SS_3jyP6orXRqA7XBt24Q6w,6574
442
474
  django_cfg/core/integration/README.md,sha256=3V27xNWoGQkauixJGW8TAE8p0FB8iCdt6zI4G4Nnssw,10699
443
475
  django_cfg/core/integration/__init__.py,sha256=Il-UZ1dR2cn1Ev_CBMUVfoOxFTCoi__0Z3kmhkx_Na8,1505
444
476
  django_cfg/core/integration/commands_collector.py,sha256=-9ppg2jYSrTC35Ijm5vAHUcNZM6AkayuPkfw715Ca2Q,8325
@@ -447,7 +479,7 @@ django_cfg/core/integration/version_checker.py,sha256=NrrbyTAtIkZdNPQHO2PMQjrp8D
447
479
  django_cfg/core/integration/display/__init__.py,sha256=YwU9nmXOcDJL3q0wW5Q_59gLh_BXPsOfDlT3sZqHWZU,315
448
480
  django_cfg/core/integration/display/base.py,sha256=67ABqa1WErBcFTROFy8fBzwvYYmHiloBk7-Hpexd2rE,5720
449
481
  django_cfg/core/integration/display/ngrok.py,sha256=QdsIGTA6S_3shIYaxMRtcUibb5L4nMUrFMFg7q9OWA0,6242
450
- django_cfg/core/integration/display/startup.py,sha256=ZDxTGuGt4CMdQ0aOu8NuDulrObwiVgfRUBU1kIhKzGc,34589
482
+ django_cfg/core/integration/display/startup.py,sha256=E0xs0aR8g1eraptverRS8k6BoErWZcbZeJESr6PG5uI,34585
451
483
  django_cfg/management/__init__.py,sha256=NrLAhiS59hqjy-bipOC1abNuRiNm5BpKXmjN05VzKbM,28
452
484
  django_cfg/management/commands/__init__.py,sha256=wc5DFEklUo-wB-6VAAmsV5UTbo5s3t936Lu61z4lojs,29
453
485
  django_cfg/management/commands/auto_generate.py,sha256=wjqS2dq8B5fuftHjtsXTc-vk3CkOYVGUESMSw4MCWHw,14343
@@ -461,7 +493,7 @@ django_cfg/management/commands/migrator.py,sha256=Etdhl1EKSMWSxyQ70dX48bhYeQiIib
461
493
  django_cfg/management/commands/rundramatiq.py,sha256=zYKg6U8PRx09NsW0tK0po9fYkmvNiEzGzwYtramH_gc,9126
462
494
  django_cfg/management/commands/runserver_ngrok.py,sha256=8S711fS0pMasp8F8yigraDJLNnyfqFnrUnDzH2s8Gpk,6560
463
495
  django_cfg/management/commands/script.py,sha256=aXyum1mdoPPOh-4YySRhianjbuAfe19Dyry72E6IQU4,17110
464
- django_cfg/management/commands/show_config.py,sha256=BKr3-1chQday-74xuwtWglh3eHt8uDPmgqZm_TkcDWQ,8902
496
+ django_cfg/management/commands/show_config.py,sha256=6Yf-hAnN4rl_fbaidqzDhhH1kVYwfKKcaf_KtrAE4hY,8894
465
497
  django_cfg/management/commands/show_urls.py,sha256=dqqJg2wwSoKTWGsyacXsFotaI9KahZVfYDGRIJa2riw,12342
466
498
  django_cfg/management/commands/superuser.py,sha256=EpcaOkGMHoBRz2wuy4tAHi7YgEdUMGlTZMRIGXbUhcg,11194
467
499
  django_cfg/management/commands/task_clear.py,sha256=4frvB97yKbGQMiFfYPPlxI4RudFogQOGzTRXbTeDXXY,8018
@@ -469,12 +501,13 @@ django_cfg/management/commands/task_status.py,sha256=hhZ0LyiOLoG9luT0hOEA12mpJxr
469
501
  django_cfg/management/commands/test_email.py,sha256=nBaQLQz-yQx0xgwRJKuxAdChpotLILJm4FKqNOR3qes,3263
470
502
  django_cfg/management/commands/test_telegram.py,sha256=M7wEhOgtAGnhn6y7NlbPsGw1uvVW0PcZWaGdTffaZ-k,2139
471
503
  django_cfg/management/commands/test_twilio.py,sha256=ukSecCOohO98suVk5Qt5Fd7DlefVkx9sT_U2JykQZA4,4226
472
- django_cfg/management/commands/tree.py,sha256=PAJCv8GFU3kwTox-B5kKwznhsOkuNNnLBvgP-pDaQFs,13372
504
+ django_cfg/management/commands/tree.py,sha256=Gu9H6YJogX7Z9vnGWDY4jCh7GOr381P5qzHKmALzJUY,13253
473
505
  django_cfg/management/commands/validate_config.py,sha256=KNW1hGGGmNNdpMxwLfsTRIcko-HhfTp06qq8JazJvxk,7475
474
506
  django_cfg/middleware/README.md,sha256=7XukH2HREqEnNJ9KDXhAcSw6lfpZ3gvKKAqGYvSivo4,3886
475
- django_cfg/middleware/__init__.py,sha256=IdcooCQLd8rNt-_8PXa2qXLMBnhsvkfdfuhI9CmgABA,195
507
+ django_cfg/middleware/__init__.py,sha256=FxYcAAVh8z-WM-MkipWAwfOwQx2b1rSPyi3Mt9xTUP0,278
476
508
  django_cfg/middleware/pagination.py,sha256=RfLka1DbmLD-zznSAqayGD08x95ikcnkzp9LT5Jj5Bs,8655
477
509
  django_cfg/middleware/public_endpoints.py,sha256=EHJKzlYwakeU3hSPBJ53FZn8Ub-jwENCVSfFDJt3kAk,6915
510
+ django_cfg/middleware/static_nocache.py,sha256=drpwoKN8zGH1-p4ltMZozL5fUyByzumqLJ7MkJBENnA,1888
478
511
  django_cfg/middleware/user_activity.py,sha256=7XVSnnIVfz-Hucx-YWRODcXd3qDH8Y8E__-6zYWLxqI,6153
479
512
  django_cfg/models/__init__.py,sha256=du24ZdqKdvc3VNXjgufEz_6B6gxdHtlqVHG4PJWaOQM,419
480
513
  django_cfg/models/api.py,sha256=bCsQR3CVsAUs78m1Q1aFpPTNbvGtr1cq-fuxdCK2-JI,4596
@@ -491,9 +524,9 @@ django_cfg/models/jwt.py,sha256=3R_dpLmVZIcH4zdtwA4qKnuCB8RZQACrgsbbgWY2q4c,9025
491
524
  django_cfg/models/limits.py,sha256=nUfvyPykwKR38ZOlIFqlNGRmfV8RO5hiUrhDH6FCHJw,7449
492
525
  django_cfg/models/logging.py,sha256=4vZF-G9rPmXMxxtUx_ad7Esvgbe8a_5Dl692Yg0fL4A,10636
493
526
  django_cfg/models/ngrok.py,sha256=MVgcKWx0DRSW0QcwhiSx2vVwTSG49vbVrzPkZqDK-zw,3575
494
- django_cfg/models/payments.py,sha256=PcDVHVoqLYxE2fXInr8_cx29o28Bx29Q4NckChOtx6I,7089
527
+ django_cfg/models/payments.py,sha256=i4E1dGygp6mE8_yCPJPp-GsQm3D7qmTHKn91LdBCDx8,7214
495
528
  django_cfg/models/revolution.py,sha256=16fQ09iovrmlepNcTr2J0hZ-ShdMnMSQ2rTXa60yrus,8134
496
- django_cfg/models/security.py,sha256=Xv19ZVOIenB_-f0wB6fm-Ap4j9kA43bSFaT2XenpSqc,4685
529
+ django_cfg/models/security.py,sha256=pJSgxKTINEY5vZR9IbaXhxkW2hh2lk8-E1tqMJNGqWM,5158
497
530
  django_cfg/models/services.py,sha256=fj9JjrJFrlL4DMnMbx_D8JiiZpz4E5uBqmhquAxau7c,13159
498
531
  django_cfg/models/tasks.py,sha256=zFvQaikXi-W-iN7eqR6ZGNiKJnPgOL3yl9RRis-5qZs,17160
499
532
  django_cfg/modules/__init__.py,sha256=Ip9WMpzImEwIAywpFwU056_v0O9oIGG7nCT1YSArxkw,316
@@ -501,7 +534,7 @@ django_cfg/modules/base.py,sha256=A7fAp3eEBbs9zxVq96k9FotWnqHqZA5b-kH9-hOJ1zo,59
501
534
  django_cfg/modules/django_email.py,sha256=Kk2B1Y73xlbpNKCDkU2uBT01iVANjKpmVlKbRScVCs4,18059
502
535
  django_cfg/modules/django_health.py,sha256=7QzuQ6WyjWYj6lecd4auwRvEyrMUL7N6hiAp-tLyoY4,8923
503
536
  django_cfg/modules/django_logger.py,sha256=ulODtdRnjCTM6OaF4QR-GUzXouHdQCrqDMjPwRUUuX8,8910
504
- django_cfg/modules/django_ngrok.py,sha256=LjlAIJprbFhFYwDG93acas8XaB6iFQGu4fWvZiDNhyQ,10482
537
+ django_cfg/modules/django_ngrok.py,sha256=IHR4MsmHGA1s7VaTkcBKhkfA7mcIUBr1gWxO5NQGhYc,10642
505
538
  django_cfg/modules/django_tasks.py,sha256=SBas2juL6RfDL7ttm4xAxJ7bvS052WmUzixNHPlzJVo,17328
506
539
  django_cfg/modules/django_telegram.py,sha256=qz3EOJnCR_YTJVIu2-Iq8--cla6mU-WPohquQ26eHDQ,16367
507
540
  django_cfg/modules/dramatiq_setup.py,sha256=Jke4aO_L1t6F3OAc4pl12zppKzL0gb1p6ilfQ3zUIZ8,454
@@ -547,7 +580,7 @@ django_cfg/modules/django_twilio/templates/guide.md,sha256=nZfwx-sgWyK5NApm93zOe
547
580
  django_cfg/modules/django_twilio/templates/sendgrid_otp_email.html,sha256=sXR6_D9hmOFfk9CrfPizpLddVhkRirBWpZd_ioEsxVk,6671
548
581
  django_cfg/modules/django_twilio/templates/sendgrid_test_data.json,sha256=fh1VyuSiDELHsS_CIz9gp7tlsMAEjaDOoqbAPSZ3yyo,339
549
582
  django_cfg/modules/django_unfold/__init__.py,sha256=Z91x1iGmkzlRbEb2L9OCFmYDKNAV9C4G3i15j5S0esc,1898
550
- django_cfg/modules/django_unfold/dashboard.py,sha256=x2rlTWihTPEjBX83nIqzY-YhlAvY5blLnAKW63jAOvY,17606
583
+ django_cfg/modules/django_unfold/dashboard.py,sha256=OBeU7X47ssZxhX7r9MBf-nXzVSBLLUGk04U47n6zqrE,17516
551
584
  django_cfg/modules/django_unfold/models.py,sha256=bY6QSSaH_-r9vOTkSQjxeIkl5RaED7XkxXkT8-W5stk,4014
552
585
  django_cfg/modules/django_unfold/system_monitor.py,sha256=cznZqldRJqiSLSJbs4U7R2rX8ClzoIpqdfXdXqI2iQw,6955
553
586
  django_cfg/modules/django_unfold/tailwind.py,sha256=X9o1K3QL0VwUISgJ26sLb6zkdK-00qiDuekqTw-fydc,10846
@@ -628,11 +661,11 @@ django_cfg/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
628
661
  django_cfg/templatetags/django_cfg.py,sha256=11_3YX0jAVuOd_fVcDixAxyDMG4V7A98SPqv8Lbfpxc,1308
629
662
  django_cfg/utils/__init__.py,sha256=64wwXJuXytvwt8Ze_erSR2HmV07nGWJ6DV5wloRBvYE,435
630
663
  django_cfg/utils/path_resolution.py,sha256=C9As6p4Q9l3VeoVkFDRPQWGrzAWf8O8UxLVkaI3ToVM,13899
631
- django_cfg/utils/smart_defaults.py,sha256=Otmho1DGvuC8eaYgY3X6VA0okf8srYRyW6OQBonpEjE,9214
664
+ django_cfg/utils/smart_defaults.py,sha256=M7KEqGfBiwXV-Hk-kS5YGZK8kEc8K2EGqli0hvjBwCQ,10972
632
665
  django_cfg/utils/toolkit.py,sha256=MfnjfGl2_VZo2o5aWIJaOYz2w45HQfOjO6X6nm5BJ8k,25312
633
666
  django_cfg/utils/version_check.py,sha256=jI4v3YMdQriUEeb_TvRl511sDghy6I75iKRDUaNpucs,4800
634
- django_cfg-1.3.3.dist-info/METADATA,sha256=ItziNnmUhaCQo35YUTrSoZ9nSJDk6MN9ZsehpFqbhNs,38740
635
- django_cfg-1.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
636
- django_cfg-1.3.3.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
637
- django_cfg-1.3.3.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
638
- django_cfg-1.3.3.dist-info/RECORD,,
667
+ django_cfg-1.3.7.dist-info/METADATA,sha256=DMyBu8T73w5MwzhZHTRp0x3dqnYpOMuXf2yEG1kI8o8,38740
668
+ django_cfg-1.3.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
669
+ django_cfg-1.3.7.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
670
+ django_cfg-1.3.7.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
671
+ django_cfg-1.3.7.dist-info/RECORD,,
@@ -1,38 +0,0 @@
1
- {% comment %}
2
- Development Tool Card Component
3
-
4
- Usage:
5
- {% include 'payments/components/dev_tool_card.html' with title="Ngrok Tunnel" status="Active" status_color="text-green-600" details=details_dict button_text="Check Status" button_class="bg-gray-100" %}
6
-
7
- Expected details structure:
8
- {
9
- 'Status': 'Active',
10
- 'URL': 'https://abc123.ngrok.io'
11
- }
12
- {% endcomment %}
13
-
14
- <div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
15
- <h4 class="font-medium text-gray-900 dark:text-white mb-2">{{ title }}</h4>
16
-
17
- <div class="space-y-2 text-sm">
18
- {% for label, value in details.items %}
19
- <div class="flex justify-between">
20
- <span class="text-gray-600 dark:text-gray-400">{{ label }}:</span>
21
- {% if label == 'Status' %}
22
- <span class="{{ status_color|default:'text-gray-600' }}" >{{ value }}</span>
23
- {% elif label == 'URL' and value %}
24
- <code class="text-xs break-all">{{ value }}</code>
25
- {% else %}
26
- <span class="text-xs">{{ value|default:'N/A' }}</span>
27
- {% endif %}
28
- </div>
29
- {% endfor %}
30
- </div>
31
-
32
- {% if button_text %}
33
- <button onclick="{{ button_onclick|default:'' }}"
34
- class="mt-3 w-full px-3 py-1 text-sm {{ button_class|default:'bg-gray-100 dark:bg-gray-700' }} text-gray-700 dark:text-gray-300 rounded hover:bg-gray-200 dark:hover:bg-gray-600">
35
- {{ button_text }}
36
- </button>
37
- {% endif %}
38
- </div>
@@ -1,259 +0,0 @@
1
- """
2
- Payment Template Views for Universal Payment System v2.0.
3
-
4
- Django template views for payment forms and status pages.
5
- """
6
-
7
- from django.views.generic import TemplateView, DetailView
8
- from django.contrib.auth.mixins import LoginRequiredMixin
9
- from django.shortcuts import get_object_or_404
10
- from django.http import JsonResponse
11
- from django.utils import timezone
12
-
13
- from ...models import UniversalPayment
14
- from ...services.core.payment_service import PaymentService
15
- from ...services.core.currency_service import CurrencyService
16
- from ...services.integrations.providers_config import get_all_providers_info
17
-
18
-
19
- class PaymentFormView(LoginRequiredMixin, TemplateView):
20
- """
21
- Payment creation form view.
22
-
23
- Displays a form for creating new payments with provider selection
24
- and real-time currency conversion.
25
- """
26
- template_name = 'payments/payment_form.html'
27
-
28
- def get_context_data(self, **kwargs):
29
- context = super().get_context_data(**kwargs)
30
-
31
- # Add form data
32
- context.update({
33
- 'page_title': 'Create Payment',
34
- 'page_subtitle': 'Process a payment through our universal payment system',
35
- })
36
-
37
- return context
38
-
39
- def post(self, request, *args, **kwargs):
40
- """Handle AJAX payment creation."""
41
- if not request.headers.get('Content-Type', '').startswith('application/json'):
42
- return super().get(request, *args, **kwargs)
43
-
44
- try:
45
- import json
46
- data = json.loads(request.body)
47
-
48
- # Create payment using service
49
- payment_service = PaymentService()
50
- result = payment_service.create_payment(
51
- user_id=request.user.id,
52
- amount_usd=float(data.get('amount', 0)),
53
- currency_code=data.get('currency', 'USD'),
54
- provider=data.get('provider'),
55
- callback_url=data.get('callback_url')
56
- )
57
-
58
- if result.success:
59
- return JsonResponse({
60
- 'success': True,
61
- 'payment': {
62
- 'id': str(result.data.id),
63
- 'external_id': result.data.external_id,
64
- 'status': result.data.status,
65
- 'amount_usd': result.data.amount_usd,
66
- 'currency_code': result.data.currency_code,
67
- 'provider': result.data.provider,
68
- 'payment_url': result.data.payment_url,
69
- 'qr_code_url': result.data.qr_code_url,
70
- }
71
- })
72
- else:
73
- return JsonResponse({
74
- 'success': False,
75
- 'error': result.error_message
76
- }, status=400)
77
-
78
- except Exception as e:
79
- return JsonResponse({
80
- 'success': False,
81
- 'error': str(e)
82
- }, status=500)
83
-
84
-
85
- class PaymentStatusView(DetailView):
86
- """
87
- Payment status tracking view.
88
-
89
- Displays payment status with real-time updates and timeline.
90
- """
91
- model = UniversalPayment
92
- template_name = 'payments/payment_status.html'
93
- context_object_name = 'payment'
94
-
95
- def get_object(self, queryset=None):
96
- """Get payment by ID with optimized query."""
97
- if queryset is None:
98
- queryset = self.get_queryset()
99
-
100
- # Get payment ID from URL
101
- payment_id = self.kwargs.get('pk')
102
-
103
- return get_object_or_404(
104
- queryset.select_related('currency', 'user')
105
- .prefetch_related('transactions'),
106
- id=payment_id
107
- )
108
-
109
- def get_context_data(self, **kwargs):
110
- context = super().get_context_data(**kwargs)
111
- payment = self.object
112
-
113
- # Add page metadata
114
- context.update({
115
- 'page_title': f'Payment #{payment.external_id or str(payment.id)[:8]}',
116
- 'page_subtitle': 'Track your payment progress in real-time',
117
- })
118
-
119
- return context
120
-
121
- def get(self, request, *args, **kwargs):
122
- """Handle both template and AJAX requests."""
123
- self.object = self.get_object()
124
-
125
- # Handle AJAX requests for status updates
126
- if request.headers.get('Accept') == 'application/json':
127
- payment = self.object
128
-
129
- return JsonResponse({
130
- 'id': str(payment.id),
131
- 'external_id': payment.external_id,
132
- 'status': payment.status,
133
- 'status_display': payment.get_status_display(),
134
- 'amount_usd': payment.amount_usd,
135
- 'amount_crypto': str(payment.amount_crypto) if payment.amount_crypto else None,
136
- 'currency_code': payment.currency.code,
137
- 'provider': payment.provider,
138
- 'network': payment.network,
139
- 'created_at': payment.created_at.isoformat(),
140
- 'updated_at': payment.updated_at.isoformat(),
141
- 'confirmed_at': payment.confirmed_at.isoformat() if payment.confirmed_at else None,
142
- 'payment_url': payment.payment_url,
143
- 'qr_code_url': payment.qr_code_url,
144
- 'exchange_rate': str(payment.exchange_rate) if payment.exchange_rate else None,
145
- })
146
-
147
- # Regular template response
148
- return super().get(request, *args, **kwargs)
149
-
150
-
151
- class PaymentListView(LoginRequiredMixin, TemplateView):
152
- """
153
- Payment list view with filtering and search.
154
-
155
- Displays a paginated list of payments with advanced filtering options.
156
- """
157
- template_name = 'payments/payment_list.html'
158
-
159
- def get_context_data(self, **kwargs):
160
- context = super().get_context_data(**kwargs)
161
-
162
- # Add page metadata
163
- context.update({
164
- 'page_title': 'Payment History',
165
- 'page_subtitle': 'View and manage your payment transactions',
166
- })
167
-
168
- return context
169
-
170
-
171
- class PaymentDashboardView(LoginRequiredMixin, TemplateView):
172
- """
173
- Main payment dashboard view.
174
-
175
- Displays payment statistics, recent activity, and quick actions.
176
- """
177
- template_name = 'payments/payment_dashboard.html'
178
-
179
- def get_context_data(self, **kwargs):
180
- context = super().get_context_data(**kwargs)
181
-
182
- # Get payment statistics
183
- user_payments = UniversalPayment.objects.filter(user=self.request.user)
184
-
185
- stats = {
186
- 'total_payments': user_payments.count(),
187
- 'completed_payments': user_payments.filter(status='completed').count(),
188
- 'pending_payments': user_payments.filter(status__in=['pending', 'processing']).count(),
189
- 'failed_payments': user_payments.filter(status__in=['failed', 'cancelled']).count(),
190
- 'total_amount': sum(p.amount_usd for p in user_payments.filter(status='completed')),
191
- 'recent_payments': user_payments.order_by('-created_at')[:5],
192
- }
193
-
194
- # Add page metadata
195
- context.update({
196
- 'page_title': 'Payment Dashboard',
197
- 'page_subtitle': 'Overview of your payment activity',
198
- 'stats': stats,
199
- })
200
-
201
- return context
202
-
203
-
204
- class CurrencyConverterView(TemplateView):
205
- """
206
- Currency conversion tool view.
207
-
208
- Provides real-time currency conversion rates and calculator.
209
- """
210
- template_name = 'payments/currency_converter.html'
211
-
212
- def get_context_data(self, **kwargs):
213
- context = super().get_context_data(**kwargs)
214
-
215
- # Add page metadata
216
- context.update({
217
- 'page_title': 'Currency Converter',
218
- 'page_subtitle': 'Real-time currency conversion rates',
219
- })
220
-
221
- return context
222
-
223
- def post(self, request, *args, **kwargs):
224
- """Handle AJAX conversion requests."""
225
- if not request.headers.get('Content-Type', '').startswith('application/json'):
226
- return super().get(request, *args, **kwargs)
227
-
228
- try:
229
- import json
230
- data = json.loads(request.body)
231
-
232
- # Use currency service for conversion
233
- currency_service = CurrencyService()
234
- result = currency_service.convert_currency(
235
- amount=float(data.get('amount', 0)),
236
- from_currency=data.get('from_currency', 'USD'),
237
- to_currency=data.get('to_currency', 'BTC')
238
- )
239
-
240
- if result.success:
241
- return JsonResponse({
242
- 'success': True,
243
- 'converted_amount': result.data.converted_amount,
244
- 'exchange_rate': result.data.exchange_rate,
245
- 'from_currency': result.data.from_currency,
246
- 'to_currency': result.data.to_currency,
247
- 'timestamp': timezone.now().isoformat(),
248
- })
249
- else:
250
- return JsonResponse({
251
- 'success': False,
252
- 'error': result.error_message
253
- }, status=400)
254
-
255
- except Exception as e:
256
- return JsonResponse({
257
- 'success': False,
258
- 'error': str(e)
259
- }, status=500)