// paliadin-starters.ts — per-route starter-prompt registry for the
// Paliadin inline widget (t-paliad-161).
//
// The drawer's empty state renders the matching starter list. Click →
// the prompt populates the textarea; if the prompt ends with `: ` it
// stays in the textarea so the user finishes the sentence.
//
// Static registry by design. LLM-generated starters were considered and
// rejected (latency, determinism, translatability — see design doc §5.2).

export interface Starter {
  label_de: string;
  label_en: string;
  prompt_de: string;
  prompt_en: string;
}

export const paliadinStarters: Record<string, Starter[]> = {
  "dashboard": [
    {
      label_de: "Heute",
      label_en: "Today",
      prompt_de: "Was steht heute an?",
      prompt_en: "What's on my plate today?",
    },
    {
      label_de: "Diese Woche",
      label_en: "This week",
      prompt_de: "Welche Fristen sind diese Woche?",
      prompt_en: "Which deadlines are this week?",
    },
    {
      label_de: "Nächste Schritte",
      label_en: "Next steps",
      prompt_de: "Was sollte ich als nächstes erledigen?",
      prompt_en: "What should I tackle next?",
    },
  ],
  "projects.detail": [
    {
      label_de: "Status der Akte",
      label_en: "Project status",
      prompt_de: "Was ist der aktuelle Status dieser Akte?",
      prompt_en: "What's the status of this project?",
    },
    {
      label_de: "Diese Woche",
      label_en: "This week",
      prompt_de: "Was steht für diese Akte diese Woche an?",
      prompt_en: "What's on for this project this week?",
    },
    {
      label_de: "Frist anlegen",
      label_en: "Add a deadline",
      prompt_de: "Lege eine Frist für diese Akte an: ",
      prompt_en: "Add a deadline for this project: ",
    },
  ],
  "projects.list": [
    {
      label_de: "Aktive Akten",
      label_en: "Active projects",
      prompt_de: "Welche Akten sind aktuell aktiv?",
      prompt_en: "Which projects are currently active?",
    },
    {
      label_de: "UPC-Akten",
      label_en: "UPC projects",
      prompt_de: "Zeige mir alle UPC-Akten.",
      prompt_en: "Show me all UPC projects.",
    },
  ],
  "deadlines.detail": [
    {
      label_de: "Erkläre die Frist",
      label_en: "Explain this deadline",
      prompt_de: "Erkläre mir die Frist auf dieser Seite.",
      prompt_en: "Explain this deadline.",
    },
    {
      label_de: "Rechtsgrundlage",
      label_en: "Legal basis",
      prompt_de: "Welche Norm ist hier einschlägig?",
      prompt_en: "What's the relevant rule?",
    },
    {
      label_de: "Folgefristen",
      label_en: "Follow-on deadlines",
      prompt_de: "Welche Fristen ergeben sich aus dieser?",
      prompt_en: "What follow-on deadlines flow from this?",
    },
  ],
  "deadlines.list": [
    {
      label_de: "Überfällige",
      label_en: "Overdue",
      prompt_de: "Welche Fristen sind überfällig?",
      prompt_en: "Which deadlines are overdue?",
    },
    {
      label_de: "Diese Woche",
      label_en: "This week",
      prompt_de: "Was steht diese Woche an?",
      prompt_en: "What's due this week?",
    },
    {
      label_de: "Frist anlegen",
      label_en: "Add a deadline",
      prompt_de: "Lege eine Frist an: ",
      prompt_en: "Add a deadline: ",
    },
  ],
  "appointments.list": [
    {
      label_de: "Heute",
      label_en: "Today",
      prompt_de: "Welche Termine habe ich heute?",
      prompt_en: "What appointments do I have today?",
    },
    {
      label_de: "Termin anlegen",
      label_en: "Add an appointment",
      prompt_de: "Lege einen Termin an: ",
      prompt_en: "Add an appointment: ",
    },
  ],
  "appointments.detail": [
    {
      label_de: "Erkläre den Termin",
      label_en: "Explain this appointment",
      prompt_de: "Was ist auf diesem Termin zu klären?",
      prompt_en: "What needs to be addressed at this appointment?",
    },
  ],
  "agenda": [
    {
      label_de: "Diese Woche",
      label_en: "This week",
      prompt_de: "Welche Termine und Fristen habe ich diese Woche?",
      prompt_en: "What appointments and deadlines do I have this week?",
    },
    {
      label_de: "Konflikte prüfen",
      label_en: "Check conflicts",
      prompt_de: "Gibt es Terminkonflikte in dieser Ansicht?",
      prompt_en: "Are there scheduling conflicts in this view?",
    },
  ],
  "events": [
    {
      label_de: "Diese Woche",
      label_en: "This week",
      prompt_de: "Was steht diese Woche an?",
      prompt_en: "What's on for this week?",
    },
    {
      label_de: "Überfällige",
      label_en: "Overdue",
      prompt_de: "Was ist überfällig?",
      prompt_en: "What's overdue?",
    },
  ],
  "inbox": [
    {
      label_de: "Was wartet",
      label_en: "What's waiting",
      prompt_de: "Was wartet auf meine Genehmigung?",
      prompt_en: "What's waiting for my approval?",
    },
  ],
  "tools.fristenrechner": [
    {
      label_de: "Erkläre den Rechner",
      label_en: "Explain the calculator",
      prompt_de: "Wie funktioniert der Fristenrechner?",
      prompt_en: "How does the deadline calculator work?",
    },
    {
      label_de: "Verfahrensablauf",
      label_en: "Proceeding flow",
      prompt_de: "Welche Folgefristen kommen typischerweise nach einer Klage?",
      prompt_en: "What deadlines typically follow a complaint?",
    },
  ],
  "tools.kostenrechner": [
    {
      label_de: "Erkläre die Berechnung",
      label_en: "Explain the calculation",
      prompt_de: "Wie wird der Streitwert berechnet?",
      prompt_en: "How is the matter value calculated?",
    },
  ],
  "glossary": [
    {
      label_de: "Begriff erklären",
      label_en: "Explain a term",
      prompt_de: "Erkläre mir den Begriff: ",
      prompt_en: "Explain the term: ",
    },
  ],
  "courts": [
    {
      label_de: "UPC-Divisionen",
      label_en: "UPC divisions",
      prompt_de: "Zeige mir alle UPC Local Divisions.",
      prompt_en: "Show me all UPC Local Divisions.",
    },
  ],
  // Fallback for unmapped routes — the textarea stays empty, the user
  // types from scratch.
  "_default": [
    {
      label_de: "Was kann ich für dich tun?",
      label_en: "What can I help with?",
      prompt_de: "",
      prompt_en: "",
    },
  ],
};

export function startersFor(routeName: string): Starter[] {
  return paliadinStarters[routeName] || paliadinStarters["_default"];
}
