mirror of
https://github.com/complexcaresolutions/dak.c2s.git
synced 2026-03-17 20:43:41 +00:00
Adds report_type support across the full stack: - Backend: REPORT_TYPES mapping, fallgruppen filter in all 5 sheet calculations, dynamic Excel columns, report_type DB column with Alembic migration 007 - Frontend: report type dropdown in generation form, type column in reports table, dynamic fallgruppen in ReportViewer Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
"""Pydantic schemas for dashboard KPIs, weekly data points, and report metadata."""
|
|
|
|
from datetime import date, datetime
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class DashboardKPIs(BaseModel):
|
|
"""Top-level KPI summary for the dashboard."""
|
|
|
|
total_cases: int
|
|
pending_icd: int
|
|
pending_coding: int
|
|
total_gutachten: int
|
|
fallgruppen: dict[str, int] # e.g. {"onko": 123, "kardio": 45, ...}
|
|
|
|
|
|
class WeeklyDataPoint(BaseModel):
|
|
"""A single calendar-week row for the dashboard chart / table."""
|
|
|
|
kw: int
|
|
erstberatungen: int = 0
|
|
unterlagen: int = 0
|
|
ablehnungen: int = 0
|
|
keine_rm: int = 0
|
|
gutachten: int = 0
|
|
|
|
|
|
class DashboardResponse(BaseModel):
|
|
"""Combined dashboard payload: KPIs + weekly time-series."""
|
|
|
|
kpis: DashboardKPIs
|
|
weekly: list[WeeklyDataPoint]
|
|
|
|
|
|
class ReportMeta(BaseModel):
|
|
"""Metadata for a generated weekly report (no file content)."""
|
|
|
|
id: int
|
|
jahr: int
|
|
kw: int
|
|
report_type: str = "gesamt"
|
|
report_date: date
|
|
generated_at: datetime
|
|
generated_by: Optional[int] = None
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class ReportListResponse(BaseModel):
|
|
"""Paginated list of report metadata."""
|
|
|
|
items: list[ReportMeta]
|
|
total: int
|