promotions/apps/promotions
Ali Asadi 1d77303f00 REFACTOR(promotions): split admin panel into views/serializers/urls subpackages
Restructures the admin promotions/referrals endpoints to match the
admin/users folder split used by the sibling advertising service
(apps/crm, apps/escrow, apps/stores there): views/admin/, serializers/admin/,
and a shared urls/router.py with the two resources as GenericViewSets
registered on one DefaultRouter, instead of flat _admin-suffixed modules
with separate ListAPIView/RetrieveAPIView classes.

Scoped to the admin slice only -- the pre-existing user-token/
application-token views, urls, and serializers keep their original
_user/_application file layout and URL namespaces, since converting
those too would rename routes tests.py and external callers depend on.
filters.py stays a single flat file, matching how advertising's own
filters.py is not split into subfolders either.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 17:27:15 +03:30
..
migrations FEATURE(promotions): restrict recipients to allowed users 2026-08-03 16:11:33 +03:30
serializers REFACTOR(promotions): split admin panel into views/serializers/urls subpackages 2026-08-23 17:27:15 +03:30
urls REFACTOR(promotions): split admin panel into views/serializers/urls subpackages 2026-08-23 17:27:15 +03:30
views REFACTOR(promotions): split admin panel into views/serializers/urls subpackages 2026-08-23 17:27:15 +03:30
__init__.py basic promotion handler 2025-08-03 13:28:40 +03:30
admin.py FEATURE(promotions): restrict recipients to allowed users 2026-08-03 16:11:33 +03:30
apps.py basic promotion handler 2025-08-03 13:28:40 +03:30
filters.py basic promotion handler 2025-08-03 13:28:40 +03:30
forms.py basic promotion handler 2025-08-03 13:28:40 +03:30
handlers.py delme 2025-11-02 18:08:47 +03:30
models.py PERF(promotions): collapse allowed-user check into a single query 2026-08-03 18:21:23 +03:30
tasks.py 3 type of promotion test pass 2025-11-08 13:49:56 +03:30
tests.py FIX(promotions): resolve user UUID before saving application events 2026-08-18 14:26:14 +03:30
urls_application.py get user from accounts 2026-07-07 16:42:34 +03:30
urls_user.py FEATURE(promotions): adding promotion is used status for user 2026-07-26 15:25:49 +03:30
views_application.py FIX(promotions): resolve user UUID before saving application events 2026-08-18 14:26:14 +03:30
views_user.py FEATURE(promotions): adding promotion is used status for user 2026-07-26 15:25:49 +03:30