from __future__ import annotations from typing import Optional from sqlalchemy import select from sqlmodel import Session, col from infrastructure.postgres.uploaded_file_table import FileTypeEnum, UploadedFile class UploadedFilePostgresRepository: def __init__(self, session: Session) -> None: self._session = session def get_latest_by_hubspot_deal_id( self, hubspot_deal_id: str, file_type: FileTypeEnum ) -> Optional[UploadedFile]: stmt = ( select(UploadedFile) .where(col(UploadedFile.hubspot_deal_id) == hubspot_deal_id) .where(col(UploadedFile.file_type) == file_type.value) .order_by(col(UploadedFile.s3_upload_timestamp).desc()) .limit(1) ) return self._session.execute(stmt).scalars().one_or_none() # pyright: ignore[reportDeprecated] def insert(self, uploaded_file: UploadedFile) -> None: self._session.add(uploaded_file)