19 lines
588 B
Python
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)
|