from datetime import datetime from typing import Optional from db.repository.base import BaseRepository from db.models.conveer import DBConveer from sqlalchemy import ( select, func ) class AnalyticsRepository(BaseRepository): async def get_analytic(self, start_date: Optional[datetime], end_date: Optional[datetime]) -> list[DBConveer]: query = ( select(DBConveer) .select_from(DBConveer) ) if start_date is not None: query = query.filter(DBConveer.created_at >= func.timezone('UTC', start_date)) if end_date is not None: query = query.filter(DBConveer.created_at <= func.timezone('UTC', end_date)) return await self.all_ones(query)