"""Targets router (spec ยง3.4).""" from fastapi import APIRouter, Depends, HTTPException from sqlalchemy import select from sqlalchemy.orm import Session from database import get_db from models import Target from schemas import TargetRead router = APIRouter(prefix="/api/targets", tags=["targets"]) @router.get("", response_model=list[TargetRead]) def list_targets(db: Session = Depends(get_db)): return db.scalars(select(Target).order_by(Target.start_date)).all() @router.get("/current", response_model=TargetRead) def current_target(db: Session = Depends(get_db)): target = db.scalar(select(Target).where(Target.end_date.is_(None))) if target is None: raise HTTPException(status_code=404, detail="No active target") return target