""" سفارش‌های pendingِ زرین‌پال را دوباره verify می‌کند. همین کار برای هر کاربر خودکار هم انجام می‌شود (وقتی اپ وضعیتِ اشتراک یا سفارش را می‌پرسد)؛ این فرمان برای وقتی است که بخواهید همه را یک‌جا ببینید: python manage.py payment_reconcile --days 3 """ from django.core.management.base import BaseCommand from django.utils import timezone from payment.models import Order from payment.services import reconcile_pending_order class Command(BaseCommand): help = 'verifyِ دوباره‌ی سفارش‌های pendingِ زرین‌پال' def add_arguments(self, parser): parser.add_argument('--days', type=int, default=3) def handle(self, *args, **opts): since = timezone.now() - timezone.timedelta(days=opts['days']) orders = list(Order.objects.filter( status='pending', provider='gateway', created_at__gte=since, ).exclude(gateway_authority='')) fixed = sum(1 for order in orders if reconcile_pending_order(order)) self.stdout.write(f'{len(orders)} سفارشِ pending بررسی شد؛ {fixed} سفارش paid شد.')