초기 커밋

This commit is contained in:
2026-03-01 07:44:19 +09:00
commit 09359f30be
146 changed files with 6120 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
from __future__ import annotations
from datetime import datetime
from app.models.mongodb.analytics_result import AnalyticsResult
class AnalyticsRepository:
async def create(self, result: AnalyticsResult) -> AnalyticsResult:
return await result.insert()
async def get_by_type(
self,
analysis_type: str,
device_id: str | None = None,
skip: int = 0,
limit: int = 20,
) -> list[AnalyticsResult]:
query: dict = {"analysis_type": analysis_type}
if device_id:
query["device_id"] = device_id
return await (
AnalyticsResult.find(query)
.sort("-created_at")
.skip(skip)
.limit(limit)
.to_list()
)
async def get_by_period(
self,
analysis_type: str,
start: datetime,
end: datetime,
device_id: str | None = None,
) -> list[AnalyticsResult]:
query: dict = {
"analysis_type": analysis_type,
"period_start": {"$gte": start},
"period_end": {"$lte": end},
}
if device_id:
query["device_id"] = device_id
return await AnalyticsResult.find(query).sort("-created_at").to_list()