managarten/manadeck/apps/mobile/Docs/samples/sample-deck-english-basics.sql
Till-JS e7f5f942f3 chore: initial commit - consolidate 4 projects into monorepo
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>
2025-11-22 23:38:24 +01:00

168 lines
No EOL
8.6 KiB
SQL

-- Sample Deck: English for Beginners (Englisch für Anfänger)
-- This script creates a sample public deck for German speakers learning English
-- 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 (
'b1c2d3e4-f5a6-7890-bcde-f01234567890',
'00000000-0000-0000-0000-000000000001', -- Placeholder system user
'English for Beginners',
'Essential English vocabulary for German speakers. Perfect for A1-A2 level with everyday words and phrases.',
true,
ARRAY['Languages', 'English', 'Beginner', 'A1', 'A2', 'Vocabulary'],
'{
"category": "Sprachen",
"difficulty": "Anfänger",
"target_audience": "Deutschsprachige Englischlernende A1-A2",
"estimated_time": "3-4 Wochen",
"created_by": "System",
"version": "1.0",
"is_sample_deck": true,
"language_pair": "EN-DE"
}'::jsonb,
now(),
now()
);
-- Insert sample cards
INSERT INTO public.cards (deck_id, position, title, card_type, content, created_at, updated_at) VALUES
-- Card 1: Days of the Week
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 1, 'Days of the Week', 'mixed',
'{"blocks": [
{"type": "text", "data": {"text": "Learn the days of the week in English"}},
{"type": "flashcard", "data": {"front": "Monday", "back": "Montag", "pronunciation": "MAN-day"}},
{"type": "flashcard", "data": {"front": "Tuesday", "back": "Dienstag", "pronunciation": "TYOOS-day"}},
{"type": "flashcard", "data": {"front": "Wednesday", "back": "Mittwoch", "pronunciation": "WENZ-day"}},
{"type": "flashcard", "data": {"front": "Thursday", "back": "Donnerstag", "pronunciation": "THURZ-day"}},
{"type": "flashcard", "data": {"front": "Friday", "back": "Freitag", "pronunciation": "FRY-day"}},
{"type": "flashcard", "data": {"front": "Saturday", "back": "Samstag", "pronunciation": "SAT-ur-day"}},
{"type": "flashcard", "data": {"front": "Sunday", "back": "Sonntag", "pronunciation": "SUN-day"}}
]}'::jsonb,
now(), now()),
-- Card 2: Common Verbs - To be
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 2, 'Verb: to be', 'flashcard',
'{"front": "I am / You are / He is", "back": "Ich bin / Du bist / Er ist", "hint": "The most important verb in English", "example": "I am happy. You are my friend. He is tall.", "grammar_note": "Conjugation: am, are, is"}'::jsonb,
now(), now()),
-- Card 3: Common Verbs - To have
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 3, 'Verb: to have', 'flashcard',
'{"front": "to have", "back": "haben", "hint": "Possession verb", "example": "I have a car. She has two cats.", "pronunciation": "hav", "grammar_note": "I/you/we/they have, he/she/it has"}'::jsonb,
now(), now()),
-- Card 4: House vocabulary
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 4, 'House: Kitchen', 'flashcard',
'{"front": "kitchen", "back": "die Küche", "hint": "Where you cook food", "example": "The kitchen is very modern.", "pronunciation": "KIT-chen"}'::jsonb,
now(), now()),
-- Card 5: House: Bedroom
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 5, 'House: Bedroom', 'flashcard',
'{"front": "bedroom", "back": "das Schlafzimmer", "hint": "Where you sleep", "example": "My bedroom is upstairs.", "pronunciation": "BED-room"}'::jsonb,
now(), now()),
-- Card 6: Quiz - Articles
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 6, 'Articles Quiz', 'quiz',
'{"question": "Which article is used before singular nouns starting with consonants?", "options": ["a", "an", "the", "no article"], "correct_answer": 0, "explanation": "Use \"a\" before singular nouns starting with consonants (a book, a car). Use \"an\" before vowel sounds (an apple, an hour)."}'::jsonb,
now(), now()),
-- Card 7: Time expressions
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 7, 'Time: Morning', 'flashcard',
'{"front": "in the morning", "back": "am Morgen / morgens", "hint": "Time of day expression", "example": "I drink coffee in the morning.", "pronunciation": "in the MOR-ning"}'::jsonb,
now(), now()),
-- Card 8: Time: Evening
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 8, 'Time: Evening', 'flashcard',
'{"front": "in the evening", "back": "am Abend / abends", "hint": "Time of day expression", "example": "We watch TV in the evening.", "pronunciation": "in the EEV-ning"}'::jsonb,
now(), now()),
-- Card 9: Weather vocabulary
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 9, 'Weather: Sunny', 'flashcard',
'{"front": "sunny", "back": "sonnig", "hint": "Weather adjective", "example": "It is sunny today.", "pronunciation": "SUN-ee"}'::jsonb,
now(), now()),
-- Card 10: Weather: Rainy
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 10, 'Weather: Rainy', 'flashcard',
'{"front": "rainy", "back": "regnerisch", "hint": "Weather adjective", "example": "It is rainy in London.", "pronunciation": "RAY-nee"}'::jsonb,
now(), now()),
-- Card 11: Body parts
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 11, 'Body: Head', 'flashcard',
'{"front": "head", "back": "der Kopf", "hint": "Body part on top", "example": "My head hurts.", "pronunciation": "hed"}'::jsonb,
now(), now()),
-- Card 12: Body: Hand
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 12, 'Body: Hand', 'flashcard',
'{"front": "hand", "back": "die Hand", "hint": "Body part with fingers", "example": "Please give me your hand.", "pronunciation": "hand"}'::jsonb,
now(), now()),
-- Card 13: Common Phrases
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 13, 'Phrase: How much?', 'flashcard',
'{"front": "How much does it cost?", "back": "Wie viel kostet es?", "hint": "Shopping phrase", "example": "Excuse me, how much does this cost?", "pronunciation": "hau match daz it kost"}'::jsonb,
now(), now()),
-- Card 14: Quiz - Plural forms
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 14, 'Plural Forms Quiz', 'quiz',
'{"question": "What is the plural of \"child\"?", "options": ["childs", "children", "childes", "childer"], "correct_answer": 1, "explanation": "Child is an irregular plural. The plural of child is children, not childs."}'::jsonb,
now(), now()),
-- Card 15: Common adjectives
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 15, 'Adjective: Big/Small', 'flashcard',
'{"front": "big / small", "back": "groß / klein", "hint": "Size adjectives", "example": "The elephant is big. The mouse is small.", "pronunciation": "big / smawl"}'::jsonb,
now(), now()),
-- Card 16: Adjective: Hot/Cold
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 16, 'Adjective: Hot/Cold', 'flashcard',
'{"front": "hot / cold", "back": "heiß / kalt", "hint": "Temperature adjectives", "example": "The coffee is hot. The ice cream is cold.", "pronunciation": "hot / kohld"}'::jsonb,
now(), now()),
-- Card 17: Question words
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 17, 'Question: Where?', 'flashcard',
'{"front": "Where?", "back": "Wo?", "hint": "Question word for location", "example": "Where is the train station?", "pronunciation": "wair"}'::jsonb,
now(), now()),
-- Card 18: Question: When?
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 18, 'Question: When?', 'flashcard',
'{"front": "When?", "back": "Wann?", "hint": "Question word for time", "example": "When does the movie start?", "pronunciation": "wen"}'::jsonb,
now(), now()),
-- Card 19: Prepositions
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 19, 'Preposition: On/In/At', 'mixed',
'{"blocks": [
{"type": "text", "data": {"text": "Important prepositions for place and time"}},
{"type": "flashcard", "data": {"front": "on (the table)", "back": "auf (dem Tisch)", "example": "The book is on the table."}},
{"type": "flashcard", "data": {"front": "in (the room)", "back": "in (dem Zimmer)", "example": "She is in the room."}},
{"type": "flashcard", "data": {"front": "at (the station)", "back": "am/an (dem Bahnhof)", "example": "I am at the station."}}
]}'::jsonb,
now(), now()),
-- Card 20: Final Quiz
('b1c2d3e4-f5a6-7890-bcde-f01234567890', 20, 'Final Review Quiz', 'quiz',
'{"question": "How do you say \"Guten Tag\" in English?", "options": ["Good morning", "Good day/Hello", "Good evening", "Goodbye"], "correct_answer": 1, "explanation": "\"Guten Tag\" means \"Good day\" or simply \"Hello\" in English. It is a general greeting used during the day."}'::jsonb,
now(), now());
-- Update deck metadata with card count
UPDATE public.decks
SET metadata = metadata || '{"card_count": 20}'::jsonb
WHERE id = 'b1c2d3e4-f5a6-7890-bcde-f01234567890';
-- 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 = 'b1c2d3e4-f5a6-7890-bcde-f01234567890'
GROUP BY d.id, d.title, d.is_public, d.user_id, d.tags;