diff --git a/backend/repositories/price.py b/backend/repositories/price.py index 40b9b16..bf6a566 100644 --- a/backend/repositories/price.py +++ b/backend/repositories/price.py @@ -56,3 +56,18 @@ class PriceRepository: ) ) return result.scalar_one_or_none() + + async def create(self, record: PriceHistory) -> PriceHistory: + """ + Create a new price history record. + + Args: + record: PriceHistory instance to persist + + Returns: + Created PriceHistory record (refreshed from database) + """ + self.db.add(record) + await self.db.commit() + await self.db.refresh(record) + return record diff --git a/backend/services/price.py b/backend/services/price.py index 69901c7..4d1864e 100644 --- a/backend/services/price.py +++ b/backend/services/price.py @@ -52,12 +52,9 @@ class PriceService: price=price_value, timestamp=timestamp, ) - self.db.add(record) try: - await self.db.commit() - await self.db.refresh(record) - return record + return await self.price_repo.create(record) except IntegrityError: # Duplicate timestamp - return the existing record await self.db.rollback()