people-reading/backend/app/services/cleanup_service.py
2026-05-11 23:26:11 +08:00

19 lines
588 B
Python

from datetime import datetime
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app.models.uploaded_image import UploadedImage
from app.services.image_service import ImageService
async def cleanup_expired_images(db: AsyncSession) -> int:
service = ImageService()
result = await db.execute(select(UploadedImage).where(UploadedImage.expires_at < datetime.utcnow()))
images = result.scalars().all()
for image in images:
service.delete(image.storage_key)
await db.delete(image)
await db.commit()
return len(images)