# ============================================================================= # QWHPI — Quebec Weekly Housing Price Index # Author : Simon-Pierre Boucher # Contact : contact@spboucher.ai # File : api/app/routers/meta.py # Purpose : /v1/meta and /health endpoints. # ============================================================================= """Metadata and health endpoints.""" from __future__ import annotations import polars as pl from fastapi import APIRouter from app.schemas import MetaResponse from app.services import data router = APIRouter() @router.get("/v1/meta", response_model=MetaResponse) def meta(): c = data.canonical() return MetaResponse( model_version=data.model_version(), data_vintage=data.data_vintage(), series_count=c.select("geography_id", "property_type").unique().height, periods=c["period"].n_unique(), latest_complete_period=str( c.filter(~pl.col("is_partial_month"))["period"].max()), ) @router.get("/health") def health(): try: rows = data.canonical().height return {"status": "ok", "canonical_rows": rows, "data_vintage": data.data_vintage()} except Exception as exc: # pragma: no cover return {"status": "degraded", "error": str(exc)}