/**
 * Static fallback content for when the Gemini API is unavailable.
 * All texts are in simple German suitable for a 7-year-old.
 * No performance praise. Max 25 words per text.
 */

export type TimeOfDay = "morgen" | "mittag" | "abend";

export interface FallbackGreeting {
	text: string;
	timeOfDay: TimeOfDay | "any";
}

export interface LetterIntro {
	letter: string;
	finger: string;
	text: string;
}

// --- Fallback Greetings (10 entries) ---

export const fallbackGreetings: FallbackGreeting[] = [
	// Morning (3)
	{
		text: "Guten Morgen! Der Wald hat auf dich gewartet.",
		timeOfDay: "morgen",
	},
	{
		text: "Frueh am Morgen ist der Wald am schoensten. Schoen, dass du da bist!",
		timeOfDay: "morgen",
	},
	{
		text: "Die Voegel singen schon. Ein neuer Tag im Zauberwald beginnt!",
		timeOfDay: "morgen",
	},
	// Any time (4)
	{
		text: "Schoen, dass du wieder da bist! Der Wald freut sich.",
		timeOfDay: "any",
	},
	{
		text: "Willkommen zurück! Lass uns den Wald ein bisschen wachsen lassen.",
		timeOfDay: "any",
	},
	{
		text: "Hallo! Ich glaube, heute entdecken wir etwas Neues im Wald.",
		timeOfDay: "any",
	},
	{
		text: "Da bist du ja! Komm, lass uns zusammen in den Wald schauen.",
		timeOfDay: "any",
	},
	// Evening (3)
	{
		text: "Guten Abend! Der Wald leuchtet im Abendlicht ganz besonders.",
		timeOfDay: "abend",
	},
	{
		text: "Die Gluehwuermchen sind schon unterwegs. Schoen, dass du da bist!",
		timeOfDay: "abend",
	},
	{
		text: "Am Abend wird der Wald ganz still. Lass uns leise üben.",
		timeOfDay: "abend",
	},
];

// --- Fallback Forest Comments (10 entries) ---

export const fallbackForestComments: string[] = [
	"Oh schau mal! Ein neuer Bewohner ist in unseren Wald gezogen!",
	"Der Wald waechst und waechst! Was wird wohl als naechstes erscheinen?",
	"Siehst du das? Etwas Neues hat sich zwischen den Baeumen versteckt!",
	"Unser Wald wird immer bunter. Was für eine Überraschung!",
	"Ein neues Stueck Wald ist dazugekommen. Wie schoen das aussieht!",
	"Hast du das gesehen? Der Wald hat sich veraendert!",
	"Es raschelt im Unterholz. Etwas Neues ist da!",
	"Die Waldlichtung hat Zuwachs bekommen. Kannst du es entdecken?",
	"Jedes Mal passiert etwas Neues im Wald. Schau genau hin!",
	"Der Zauberwald hat ein Geschenk für dich bereit. Schau mal!",
];

// --- Fallback Letter Introductions (13 entries, levels 1-6) ---

export const fallbackLetterIntros: LetterIntro[] = [
	// Level 1: F, J, Space
	{
		letter: "f",
		finger: "linker Zeigefinger",
		text: "Das F ist da, wo dein linker Zeigefinger zu Hause ist. Spuerst du den kleinen Huegel?",
	},
	{
		letter: "j",
		finger: "rechter Zeigefinger",
		text: "Das J hat einen kleinen Strich unten. Dein rechter Zeigefinger findet ihn sofort!",
	},
	{
		letter: " ",
		finger: "Daumen",
		text: "Die grosse Leertaste ganz unten drueckst du mit dem Daumen. Einfach druecken!",
	},
	// Level 2: D, K
	{
		letter: "d",
		finger: "linker Mittelfinger",
		text: "Das D liegt direkt neben dem F. Dein Mittelfinger wohnt dort wie ein Vogel im Nest.",
	},
	{
		letter: "k",
		finger: "rechter Mittelfinger",
		text: "Das K ist der Nachbar vom J. Dein rechter Mittelfinger hüpft einfach hinüber.",
	},
	// Level 3: S, L
	{
		letter: "s",
		finger: "linker Ringfinger",
		text: "Das S ist wie eine Schlange. Dein Ringfinger gleitet sanft dorthin.",
	},
	{
		letter: "l",
		finger: "rechter Ringfinger",
		text: "Das L klingt wie das Lied der Lerche. Dein rechter Ringfinger kennt den Weg.",
	},
	// Level 4: A, Oe
	{
		letter: "a",
		finger: "linker kleiner Finger",
		text: "Das A ist ganz am Rand. Dein kleiner Finger streckt sich wie ein Ast nach links.",
	},
	{
		letter: "ö",
		finger: "rechter kleiner Finger",
		text: "Das Oe mit den zwei Punkten oben. Dein kleiner Finger rechts tippt es ganz leicht.",
	},
	// Level 5: G, H
	{
		letter: "g",
		finger: "linker Zeigefinger",
		text: "Das G liegt neben dem F zur Mitte hin. Dein Zeigefinger macht einen kleinen Ausflug.",
	},
	{
		letter: "h",
		finger: "rechter Zeigefinger",
		text: "Das H ist der Nachbar vom J zur Mitte hin. Ein kurzer Sprung für deinen Zeigefinger!",
	},
	// Level 6: E, I
	{
		letter: "e",
		finger: "linker Mittelfinger",
		text: "Das E wohnt eine Reihe höher über dem D. Dein Mittelfinger klettert wie ein Eichhörnchen hoch.",
	},
	{
		letter: "i",
		finger: "rechter Mittelfinger",
		text: "Das I sitzt über dem K. Dein rechter Mittelfinger springt hoch wie ein Igel hüpft.",
	},
];

// --- Helper functions ---

export function getRandomFallbackGreeting(timeOfDay: TimeOfDay): string {
	const matching = fallbackGreetings.filter(
		(g) => g.timeOfDay === timeOfDay || g.timeOfDay === "any",
	);
	const index = Math.floor(Math.random() * matching.length);
	return matching[index]?.text ?? "Willkommen im Zauberwald!";
}

export function getRandomFallbackForestComment(): string {
	const index = Math.floor(Math.random() * fallbackForestComments.length);
	return fallbackForestComments[index] ?? "Schau mal, was im Wald passiert!";
}

export function getFallbackLetterIntro(
	letter: string,
): LetterIntro | undefined {
	return fallbackLetterIntros.find((intro) => intro.letter === letter);
}
