import sys

from app.workers.celery_app import celery_app

expected_beat = {
    "daily-universe-ingestion": "app.workers.ingest.ingest_universe_task",
    "daily-peer-universe-recompute": "app.workers.peer_groups.recompute_universe_task",
    "daily-global-scan": "app.workers.discovery.daily_global_scan_task",
    "prune-expired-revoked-tokens": "app.workers.token_cleanup.prune_expired_revoked_tokens_task",
}

schedule = celery_app.conf.beat_schedule

print("Beat entries:", len(schedule))

for key, task in expected_beat.items():
    actual = schedule.get(key, {}).get("task")
    print(key, "=>", actual)

    if actual != task:
        print("FAIL beat entry:", key)
        sys.exit(1)

required_settings = {
    "worker_concurrency": 2,
    "worker_prefetch_multiplier": 1,
    "task_acks_late": True,
    "task_time_limit": 900,
    "task_soft_time_limit": 780,
}

for key, expected in required_settings.items():
    actual = celery_app.conf.get(key)
    print(key, "=", actual)

    if actual != expected:
        print("FAIL setting:", key, "expected", expected, "got", actual)
        sys.exit(1)

print("BEAT + SAFETY SETTINGS: PASS")
