from typing import List from sqlmodel import select from sqlalchemy.ext.asyncio import AsyncSession from entity.frame_analysis_result import FrameAnalysisResultCreate, FrameAnalysisResult class FrameAnalysisResultService: def __init__(self, db: AsyncSession): self.db = db async def add_frame_analysis_results(self, results: List[FrameAnalysisResultCreate]): new_results = [FrameAnalysisResult.model_validate(result) for result in results] for result in new_results: self.db.add(result) await self.db.commit() for result in new_results: await self.db.refresh(result) return new_results async def get_results_by_frame(self, frame_id): statement = select(FrameAnalysisResult).where(FrameAnalysisResult.frame_id == frame_id) results = await self.db.execute(statement) return results.scalars().all()