mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
28 lines
963 B
Python
28 lines
963 B
Python
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)
|