from __future__ import annotations from app.core.logging_config import get_logger from app.workers.celery_app import celery_app from app.core.database import get_db_context logger = get_logger(__name__) @celery_app.task( name="app.tasks.maintenance_tasks.cleanup_expired_tokens", bind=True, ) def cleanup_expired_tokens(self) -> dict: # noqa: ANN001 """Cleanup expired and revoked refresh tokens.""" logger.info("cleanup_tokens_started", task_id=self.request.id) try: with get_db_context() as db: from app.repositories.user_repository import RefreshTokenRepository repo = RefreshTokenRepository(db) count = repo.cleanup_expired_tokens() logger.info("cleanup_tokens_completed", removed=count) return {"removed_tokens": count} except Exception as exc: logger.exception("cleanup_tokens_failed", error=str(exc)) return {"error": str(exc)} @celery_app.task( name="app.tasks.maintenance_tasks.cleanup_temp_storage", bind=True, ) def cleanup_temp_storage(self) -> dict: # noqa: ANN001 """Cleanup temporary storage files.""" logger.info("cleanup_temp_started", task_id=self.request.id) try: from app.storage.provider import get_storage_provider storage = get_storage_provider() count = storage.cleanup_temp() logger.info("cleanup_temp_completed", removed=count) return {"removed_files": count} except Exception as exc: logger.exception("cleanup_temp_failed", error=str(exc)) return {"error": str(exc)}