from fastapi import APIRouter from backend.database import db from backend.schemas import DashboardResponse, RecommendationRequest router = APIRouter(prefix='/api/v1/stats', tags=['stats']) @router.get('/summary', response_model=DashboardResponse) def stats_summary() -> dict: return db.stats() @router.get('/heatmap') def stats_heatmap() -> dict: return {'items': db.heatmap()} @router.post('/recommendation') def stats_recommendation(payload: RecommendationRequest) -> dict: score = 0 if payload.age is not None and payload.age < 12: score += 20 if payload.elapsed_hours is not None and payload.elapsed_hours >= 12: score += 20 if payload.terrain_primary in {'лес', 'болото', 'вода'}: score += 15 if payload.weather in {'дождь', 'туман', 'снег', 'ночь'}: score += 15 if len(payload.health_flags) >= 2: score += 15 return { 'recommendation': 'Высокий приоритет на прочёс и дрон' if score >= 40 else 'Стандартный приоритет поиска', 'score': score, }