"""CLI: python -m app.jobs.retention""" from __future__ import annotations import logging import sys from app.config import get_settings from app.database import SessionLocal from app.services.retention import purge_old_data logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") logger = logging.getLogger("sac.retention") def main() -> int: settings = get_settings() db = SessionLocal() try: stats = purge_old_data(db, settings) logger.info( "retention done events_deleted=%s problems_deleted=%s", stats["events_deleted"], stats["problems_deleted"], ) return 0 except Exception: db.rollback() logger.exception("retention failed") return 1 finally: db.close() if __name__ == "__main__": sys.exit(main())