"""
escrow/management/commands/process_escrow_auto_release.py

Run periodically (cron or Celery beat) to auto-release overdue escrows.

Example crontab (every 30 minutes):
    */30 * * * * /path/to/venv/bin/python /path/to/manage.py process_escrow_auto_release

Example Celery beat (celery.py):
    app.conf.beat_schedule = {
        'escrow-auto-release': {
            'task': 'escrow.tasks.auto_release_task',
            'schedule': crontab(minute='*/30'),
        },
    }
"""
from django.core.management.base import BaseCommand
from escrow.services.escrow_service import auto_release_overdue


class Command(BaseCommand):
    help = "Auto-release escrow payments where buyer has not responded within 48 hours."

    def handle(self, *args, **options):
        released = auto_release_overdue()
        if released:
            self.stdout.write(self.style.SUCCESS(f"Auto-released {released} escrow(s)."))
        else:
            self.stdout.write("No escrows due for auto-release.")