import {
  DASHBOARD_SCHEMA_VERSION,
  type DashboardDocument,
} from "../schema";

export const genericDashboardFixture: DashboardDocument = {
  schemaVersion: DASHBOARD_SCHEMA_VERSION,
  metadata: {
    title: "Operations Console",
    subtitle: "Generic environment",
    description: "Portable fixture for component and renderer tests.",
    timezone: "UTC",
    refreshIntervalSeconds: 30,
  },
  layout: {
    density: "dense",
    telemetry: ["service-uptime", "queue-depth"],
    serviceGroups: ["core-services"],
    statusStrips: ["runtime"],
    modules: ["ambient"],
  },
  telemetry: [
    {
      id: "service-uptime",
      label: "Service Uptime",
      value: { kind: "percent", value: 99.9, precision: 1 },
      detail: "last 30 days",
      severity: "ok",
      datasource: { type: "static", label: "fixture" },
      sparkline: [99.7, 99.8, 99.9, 99.9],
    },
    {
      id: "queue-depth",
      label: "Queue Depth",
      value: { kind: "number", value: 18 },
      detail: "pending jobs",
      severity: "warning",
      thresholds: { warning: 15, danger: 50 },
      datasource: { type: "placeholder", reason: "adapter pending" },
      sparkline: [6, 11, 13, 18],
    },
  ],
  serviceGroups: [
    {
      id: "core-services",
      title: "Core Services",
      layout: "list",
      services: [
        {
          id: "identity",
          label: "Identity",
          description: "Authentication and profile service",
          icon: "mdi:account-key-outline",
          severity: "ok",
          detail: "ready",
          datasource: { type: "static", label: "fixture" },
        },
        {
          id: "scheduler",
          label: "Scheduler",
          description: "Background task coordinator",
          icon: "mdi:calendar-clock",
          severity: "warning",
          detail: "delayed",
          datasource: { type: "placeholder", reason: "health adapter pending" },
        },
      ],
    },
  ],
  statusStrips: [
    {
      id: "runtime",
      items: [
        { id: "status", label: "System Status", value: "Degraded", severity: "warning" },
        { id: "sync", label: "Last Sync", value: "2 minutes ago", severity: "stale" },
      ],
    },
  ],
  modules: [
    {
      id: "ambient",
      kind: "summary",
      title: "Environment",
      value: "Nominal",
      detail: "static fixture",
      icon: "mdi:radar",
      severity: "ok",
      datasource: { type: "static", label: "fixture" },
    },
  ],
};
