from fastapi import APIRouter, Depends
from sqlmodel import Session

from app.db import get_session
from app.models import FieldInputEvent
from app.schemas import FieldInputEventCreate, StatsSummary
from app.services.statistics import compute_stats_summary

router = APIRouter(prefix="/stats", tags=["stats"])


@router.post("/field-events")
def create_field_input_event(payload: FieldInputEventCreate, session: Session = Depends(get_session)):
    event = FieldInputEvent(**payload.model_dump())
    session.add(event)
    session.commit()
    session.refresh(event)
    return {"id": event.id}


@router.get("/summary", response_model=StatsSummary)
def get_stats_summary(session: Session = Depends(get_session)):
    return compute_stats_summary(session)
