This commit is contained in:
2026-09-04 13:05:54 +03:30
parent 463b812e3e
commit 17082a5ea9
43 changed files with 5663 additions and 285 deletions
+13 -3
View File
@@ -1,8 +1,9 @@
from django.db import transaction
from django.db.models import Q
from django.utils import timezone
from rest_framework import generics, status
from rest_framework.exceptions import NotFound
from rest_framework.permissions import IsAuthenticated
from rest_framework.permissions import AllowAny, IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
@@ -38,9 +39,18 @@ class WalletView(APIView):
class FeatureListView(generics.ListAPIView):
"""فهرستِ ابزارها — عمدا AllowAny: کاربرِ مهمان (بدون حساب) هم باید
بتواند بفهمد کدام ابزار رایگان است. این پاسخ هیچ داده‌ی شخصی ندارد؛
فقط کاتالوگِ ابزارها و قیمت‌هاست."""
serializer_class = FeaturePlanSerializer
permission_classes = [IsAuthenticated]
queryset = FeaturePlan.objects.filter(is_purchasable=True).prefetch_related("tiers")
permission_classes = [AllowAny]
# ابزارهای رایگان is_purchasable=False دارند (فروختنی نیستند) ولی باید
# حتما در لیست بیایند — وگرنه اپ آن‌ها را نمی‌شناسد و قفل نشانشان می‌دهد.
queryset = (
FeaturePlan.objects.filter(Q(is_purchasable=True) | Q(is_free=True))
.prefetch_related("tiers")
)
class ActivateFeatureView(APIView):