/**
 * 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: "Früh am Morgen ist der Wald am schönsten. Schön, dass du da bist!",
		timeOfDay: "morgen",
	},
	{
		text: "Die Voegel singen schon. Ein neuer Tag im Zauberwald beginnt!",
		timeOfDay: "morgen",
	},
	// Any time (4)
	{
		text: "Schön, 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 Glühwürmchen sind schon unterwegs. Schön, 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 wächst und wächst! Was wird wohl als nächstes erscheinen?",
	"Siehst du das? Etwas Neues hat sich zwischen den Bäumen versteckt!",
	"Unser Wald wird immer bunter. Was für eine Überraschung!",
	"Ein neues Stück Wald ist dazugekommen. Wie schön das aussieht!",
	"Hast du das gesehen? Der Wald hat sich verändert!",
	"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 (32 entries, levels 1-16) ---

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. Spürst du den kleinen Hügel?",
	},
	{
		letter: "j",
		finger: "rechter Zeigefinger",
		text: "Das J hat einen kleinen Strich unten. Dein rechter Zeigefinger findet ihn sofort!",
	},
	{
		letter: " ",
		finger: "Daumen",
		text: "Die große Leertaste ganz unten drückst du mit dem Daumen. Einfach drücken!",
	},
	// 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 Ö 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.",
	},
	// Level 7: R, U
	{
		letter: "r",
		finger: "linker Zeigefinger",
		text: "Das R wohnt über dem F. Dein Zeigefinger klettert hoch wie ein Reh den Berg hinauf.",
	},
	{
		letter: "u",
		finger: "rechter Zeigefinger",
		text: "Das U sitzt über dem J. Dein rechter Zeigefinger springt hoch wie ein Uhu!",
	},
	// Level 8: T, Z
	{
		letter: "t",
		finger: "linker Zeigefinger",
		text: "Das T liegt neben dem R zur Mitte hin. Ein kleiner Schritt für deinen Zeigefinger.",
	},
	{
		letter: "z",
		finger: "rechter Zeigefinger",
		text: "Das Z ist neben dem U zur Mitte hin. Wie ein Zauberer erscheint es dort!",
	},
	// Level 9: W, O
	{
		letter: "w",
		finger: "linker Ringfinger",
		text: "Das W wohnt über dem S. Dein Ringfinger klettert hoch wie der Wind in die Wolken.",
	},
	{
		letter: "o",
		finger: "rechter Ringfinger",
		text: "Das O ist rund wie der Mond. Dein rechter Ringfinger findet es über dem L.",
	},
	// Level 10: Q, P
	{
		letter: "q",
		finger: "linker kleiner Finger",
		text: "Das Q wohnt ganz oben links. Dein kleiner Finger streckt sich hoch wie eine Quelle sprudelt.",
	},
	{
		letter: "p",
		finger: "rechter kleiner Finger",
		text: "Das P sitzt ganz oben rechts. Dein kleiner Finger tippt es leicht wie Popcorn platzt.",
	},
	// Level 11: N, B
	{
		letter: "n",
		finger: "rechter Zeigefinger",
		text: "Das N liegt unter dem J. Dein Zeigefinger taucht hinab wie ein Nilpferd ins Wasser.",
	},
	{
		letter: "b",
		finger: "linker Zeigefinger",
		text: "Das B versteckt sich unter dem G. Dein Zeigefinger springt hinunter wie ein Ball.",
	},
	// Level 12: V, M
	{
		letter: "v",
		finger: "linker Zeigefinger",
		text: "Das V liegt unter dem F. Dein Zeigefinger rutscht hinab wie ein Vogel, der landet.",
	},
	{
		letter: "m",
		finger: "rechter Zeigefinger",
		text: "Das M ist unter dem J, ganz unten. Dein Zeigefinger taucht tief wie eine Maus in ihren Bau.",
	},
	// Level 13: C, X
	{
		letter: "c",
		finger: "linker Mittelfinger",
		text: "Das C liegt unter dem D. Dein Mittelfinger gleitet hinunter wie ein Chamäleon.",
	},
	{
		letter: "x",
		finger: "linker Ringfinger",
		text: "Das X versteckt sich unter dem S. Dein Ringfinger findet es wie einen geheimen Schatz.",
	},
	// Level 14: Ä, Ü
	{
		letter: "ä",
		finger: "rechter kleiner Finger",
		text: "Das Ä hat zwei Pünktchen wie das Ö. Dein kleiner Finger rechts kennt den Weg schon.",
	},
	{
		letter: "ü",
		finger: "rechter kleiner Finger",
		text: "Das Ü ist das dritte mit Pünktchen. Dein kleiner Finger tippt es neben dem P.",
	},
	// Level 15: Y, Komma
	{
		letter: "y",
		finger: "linker kleiner Finger",
		text: "Das Y versteckt sich ganz unten links. Dein kleiner Finger findet es wie einen Yeti im Schnee.",
	},
	{
		letter: ",",
		finger: "rechter Mittelfinger",
		text: "Das Komma ist ein kleiner Strich unten. Dein Mittelfinger rechts tippt es neben dem M.",
	},
	// Level 16: Punkt
	{
		letter: ".",
		finger: "rechter Ringfinger",
		text: "Der Punkt ist wie ein kleiner Stein. Dein Ringfinger rechts tippt ihn neben dem Komma.",
	},
];

// --- 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);
}
