from datetime import date

from fastapi import APIRouter, Depends, Query
from sqlmodel import Session

from app.core.config import get_settings
from app.db.session import get_session
from app.services.dashboard import build_dashboard

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


@router.get("")
def get_dashboard(
    target_date: date | None = Query(default=None, alias="date"),
    session: Session = Depends(get_session),
) -> dict:
    settings = get_settings()
    return build_dashboard(session, target_date or date.today(), settings.timezone)
