T0X1N's picture
chore: codebase audit and fixes (ruff, mypy, pytest)
9659593
"""
MediGuard AI — Analysis repository (data-access layer).
"""
from __future__ import annotations
from sqlalchemy.orm import Session
from src.models.analysis import PatientAnalysis
class AnalysisRepository:
"""CRUD operations for patient analyses."""
def __init__(self, db: Session):
self.db = db
def create(self, analysis: PatientAnalysis) -> PatientAnalysis:
self.db.add(analysis)
self.db.flush()
return analysis
def get_by_request_id(self, request_id: str) -> PatientAnalysis | None:
return self.db.query(PatientAnalysis).filter(PatientAnalysis.request_id == request_id).first()
def list_recent(self, limit: int = 20) -> list[PatientAnalysis]:
return self.db.query(PatientAnalysis).order_by(PatientAnalysis.created_at.desc()).limit(limit).all()
def count(self) -> int:
return self.db.query(PatientAnalysis).count()