from django import forms from django.contrib import admin from .models import Plan, Subscription class PlanAdminForm(forms.ModelForm): class Meta: model = Plan fields = '__all__' def clean_currency(self): # فرانت هر قیمتی را «تومان» نشان می‌دهد (src/lib/format.ts) و currency بی‌تغییر به زرین‌پال می‌رود؛ # پلنی با «IRR» در اپ ۴۵٬۰۰۰ تومان دیده می‌شد و درگاه ۴۵٬۰۰۰ ریال (یک‌دهم) می‌گرفت (بازتولید شد). value = self.cleaned_data['currency'] if value != 'IRT': raise forms.ValidationError('فقط IRT (تومان)؛ اپ قیمت را تومان نشان می‌دهد.') return value @admin.register(Plan) class PlanAdmin(admin.ModelAdmin): form = PlanAdminForm list_display = ('id', 'title', 'price', 'currency', 'duration_days', 'ai_daily_quota', 'discount_percent', 'popular', 'bazaar_sku') list_editable = ('ai_daily_quota',) @admin.register(Subscription) class SubscriptionAdmin(admin.ModelAdmin): list_display = ('id', 'user_id', 'plan', 'status', 'started_at', 'expires_at', 'order_id') list_filter = ('status',)