mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-16 08:19:41 +02:00
Projects included: - maerchenzauber (NestJS backend + Expo mobile + SvelteKit web + Astro landing) - manacore (Expo mobile + SvelteKit web + Astro landing) - manadeck (NestJS backend + Expo mobile + SvelteKit web) - memoro (Expo mobile + SvelteKit web + Astro landing) This commit preserves the current state before monorepo restructuring. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
128 lines
No EOL
6.1 KiB
SQL
128 lines
No EOL
6.1 KiB
SQL
-- Sample Deck: Deutsch für Anfänger (German Basics) - Simple Version
|
|
-- This script creates a sample public deck without needing existing users
|
|
-- Uses a system placeholder UUID that can be updated later
|
|
|
|
-- Insert the deck with a placeholder system user ID
|
|
INSERT INTO public.decks (
|
|
id,
|
|
user_id,
|
|
title,
|
|
description,
|
|
is_public,
|
|
tags,
|
|
metadata,
|
|
created_at,
|
|
updated_at
|
|
) VALUES (
|
|
'a0b1c2d3-e4f5-6789-abcd-ef0123456789',
|
|
'00000000-0000-0000-0000-000000000001', -- Placeholder system user
|
|
'Deutsch für Anfänger',
|
|
'Grundwortschatz für Deutsche-Lernende. Perfekt für A1-A2 Niveau mit den wichtigsten Alltagswörtern und Phrasen.',
|
|
true,
|
|
ARRAY['Sprachen', 'Deutsch', 'Anfänger', 'A1', 'A2', 'Grundwortschatz'],
|
|
'{
|
|
"category": "Sprachen",
|
|
"difficulty": "Anfänger",
|
|
"target_audience": "Deutschlernende A1-A2",
|
|
"estimated_time": "2-3 Wochen",
|
|
"created_by": "System",
|
|
"version": "1.0",
|
|
"is_sample_deck": true
|
|
}'::jsonb,
|
|
now(),
|
|
now()
|
|
);
|
|
|
|
-- Insert sample cards
|
|
INSERT INTO public.cards (deck_id, position, title, card_type, content, created_at, updated_at) VALUES
|
|
-- Card 1: Greetings
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 1, 'Begrüßung - Hallo', 'flashcard',
|
|
'{"front": "Hallo", "back": "Hello", "hint": "Standard greeting in German", "example": "Hallo, wie geht es dir?", "pronunciation": "HAH-lo"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 2: Thank you
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 2, 'Danke sagen', 'flashcard',
|
|
'{"front": "Danke", "back": "Thank you", "hint": "Basic way to express gratitude", "example": "Danke für deine Hilfe!", "pronunciation": "DAHN-keh"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 3: Please
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 3, 'Höflich bitten', 'flashcard',
|
|
'{"front": "Bitte", "back": "Please", "hint": "Used when asking for something politely", "example": "Können Sie mir bitte helfen?", "pronunciation": "BIT-teh"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 4: Excuse me
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 4, 'Entschuldigung', 'flashcard',
|
|
'{"front": "Entschuldigung", "back": "Excuse me / Sorry", "hint": "Used to get attention or apologize", "example": "Entschuldigung, wo ist der Bahnhof?", "pronunciation": "ent-SHUL-di-gung"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 5: Yes/No Quiz
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 5, 'Ja und Nein', 'quiz',
|
|
'{"question": "Wie sagt man \"Yes\" auf Deutsch?", "options": ["Ja", "Nein", "Vielleicht", "Okay"], "correct_answer": 0, "explanation": "\"Ja\" bedeutet \"Yes\" auf Deutsch. \"Nein\" bedeutet \"No\"."}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 6: Good morning
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 6, 'Guten Morgen', 'flashcard',
|
|
'{"front": "Guten Morgen", "back": "Good morning", "hint": "Morning greeting until about 10 AM", "example": "Guten Morgen! Haben Sie gut geschlafen?", "pronunciation": "GOO-ten MOR-gen"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 7: Good evening
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 7, 'Guten Abend', 'flashcard',
|
|
'{"front": "Guten Abend", "back": "Good evening", "hint": "Evening greeting from about 6 PM", "example": "Guten Abend, wie war Ihr Tag?", "pronunciation": "GOO-ten AH-bent"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 8: Numbers
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 8, 'Zahlen 1-5', 'mixed',
|
|
'{"front": "Die Zahlen von 1 bis 5", "back": "1 = eins, 2 = zwei, 3 = drei, 4 = vier, 5 = fünf", "hint": "Basic counting in German", "additional_info": "These are the most basic numbers you need to know"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 9: Colors - Red
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 9, 'Farbe: Rot', 'flashcard',
|
|
'{"front": "rot", "back": "red", "hint": "The color of a rose or blood", "example": "Das Auto ist rot.", "pronunciation": "roht"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 10: Colors - Blue
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 10, 'Farbe: Blau', 'flashcard',
|
|
'{"front": "blau", "back": "blue", "hint": "The color of the sky or ocean", "example": "Der Himmel ist blau.", "pronunciation": "blau"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 11: Food - Bread
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 11, 'Essen: Brot', 'flashcard',
|
|
'{"front": "das Brot", "back": "the bread", "hint": "Basic food item, neuter noun", "example": "Ich esse Brot zum Frühstück.", "pronunciation": "dahs broht", "grammar_note": "neuter noun (das)"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 12: Drink - Water
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 12, 'Getränk: Wasser', 'flashcard',
|
|
'{"front": "das Wasser", "back": "the water", "hint": "Essential drink, neuter noun", "example": "Ich trinke Wasser.", "pronunciation": "dahs VAH-ser", "grammar_note": "neuter noun (das)"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 13: Family - Mother
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 13, 'Familie: Mutter', 'flashcard',
|
|
'{"front": "die Mutter", "back": "the mother", "hint": "Female parent, feminine noun", "example": "Meine Mutter ist sehr nett.", "pronunciation": "dee MUT-ter", "grammar_note": "feminine noun (die)"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 14: Family - Father
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 14, 'Familie: Vater', 'flashcard',
|
|
'{"front": "der Vater", "back": "the father", "hint": "Male parent, masculine noun", "example": "Mein Vater arbeitet viel.", "pronunciation": "der FAH-ter", "grammar_note": "masculine noun (der)"}'::jsonb,
|
|
now(), now()),
|
|
|
|
-- Card 15: Question - How are you?
|
|
('a0b1c2d3-e4f5-6789-abcd-ef0123456789', 15, 'Frage: Wie geht es dir?', 'flashcard',
|
|
'{"front": "Wie geht es dir?", "back": "How are you? (informal)", "hint": "Common question when greeting friends", "example": "Hallo Maria! Wie geht es dir?", "pronunciation": "vee gayt es deer", "additional_info": "Formal version: Wie geht es Ihnen?"}'::jsonb,
|
|
now(), now());
|
|
|
|
-- Update deck metadata with card count
|
|
UPDATE public.decks
|
|
SET metadata = metadata || '{"card_count": 15}'::jsonb
|
|
WHERE id = 'a0b1c2d3-e4f5-6789-abcd-ef0123456789';
|
|
|
|
-- Verification: Show what was created
|
|
SELECT
|
|
d.title,
|
|
d.is_public,
|
|
d.user_id,
|
|
array_length(d.tags, 1) as tag_count,
|
|
COUNT(c.id) as card_count
|
|
FROM public.decks d
|
|
LEFT JOIN public.cards c ON d.id = c.deck_id
|
|
WHERE d.id = 'a0b1c2d3-e4f5-6789-abcd-ef0123456789'
|
|
GROUP BY d.id, d.title, d.is_public, d.user_id, d.tags; |