diff --git a/services/device_frame_service.py b/services/device_frame_service.py index 929e39a..4ddec1f 100644 --- a/services/device_frame_service.py +++ b/services/device_frame_service.py @@ -134,3 +134,17 @@ else: return frame_image return None + + async def delete_frame(self, max_frame_id: int): + statement = delete(DeviceFrame).where(DeviceFrame.id <= max_frame_id) + await self.db.execute(statement) + await self.db.commit() + + frame_analysis_result_service = FrameAnalysisResultService(self.db) + await frame_analysis_result_service.delete_by_frame_id(max_frame_id) + return max_frame_id + + async def select_max_frame_id(self, latest_time): + statement = select(func.max(DeviceFrame.id)).where(DeviceFrame.time < latest_time) + result = await self.db.execute(statement) + return result.scalar_one() or 0