/** * dashboard-client/src/tabs/MaintenanceTab/SchemaHealthCard.tsx — Schema Health card. * * Extracted from MaintenanceTab.tsx (delegate-shell split). Renders schema * version, integrity check, column audit, and FK check from * GET /api/maintenance/schema-health. */ import type React from "react"; import type { SchemaHealthResponse } from "@contracts"; import { Badge } from "../../components/ui/badge"; import { Card, CardHeader, CardTitle, CardContent, } from "../../components/ui/card"; // --------------------------------------------------------------------------- // Schema Health card // --------------------------------------------------------------------------- function ColumnAuditCard({ columns, }: { columns: SchemaHealthResponse["columns"]; }): React.ReactElement { const missing = columns.filter((c) => !c.present); return (
| Table | Column | Decl | Status |
|---|---|---|---|
| {c.table} | {c.column} | {c.expectedDecl} | {c.present ? "✓" : "MISSING"} |