mirror of
https://github.com/lucasrcsantana/story-generator.git
synced 2025-12-17 05:47:52 +00:00
146 lines
5.4 KiB
SQL
146 lines
5.4 KiB
SQL
-- Inserir categorias de exercícios
|
|
WITH inserted_categories AS (
|
|
INSERT INTO phonics_categories (name, description, level, order_index) VALUES
|
|
('Rimas', 'Exercícios para praticar rimas', 1, 1),
|
|
('Sons Iniciais', 'Exercícios com sons iniciais', 1, 2),
|
|
('Sons Finais', 'Exercícios com sons finais', 2, 3),
|
|
('Sílabas', 'Exercícios de contagem de sílabas', 2, 4)
|
|
RETURNING id, name, level -- Include level in the RETURNING clause
|
|
),
|
|
|
|
-- Inserir tipos de exercícios
|
|
inserted_types AS (
|
|
INSERT INTO phonics_exercise_types (name, description) VALUES
|
|
('rhyme', 'Exercícios de rima'),
|
|
('initial_sound', 'Exercícios de som inicial'),
|
|
('final_sound', 'Exercícios de som final'),
|
|
('syllables', 'Exercícios de sílabas')
|
|
RETURNING id, name
|
|
),
|
|
|
|
-- Inserir palavras para os exercícios
|
|
inserted_words AS (
|
|
INSERT INTO phonics_words (word, phonetic_transcription, syllables_count) VALUES
|
|
-- Palavras para rimas
|
|
('bola', 'bɔ.la', 2),
|
|
('cola', 'kɔ.la', 2),
|
|
('mola', 'mɔ.la', 2),
|
|
('sala', 'sa.la', 2),
|
|
-- Palavras para sons iniciais
|
|
('pato', 'pa.to', 2),
|
|
('pera', 'pe.ɾa', 2),
|
|
('gato', 'ga.to', 2),
|
|
('mesa', 'me.za', 2),
|
|
-- Palavras para sons finais
|
|
('casa', 'ka.za', 2),
|
|
('rosa', 'ʁo.za', 2),
|
|
('rato', 'ʁa.to', 2),
|
|
('mato', 'ma.to', 2),
|
|
-- Palavras para sílabas
|
|
('borboleta', 'boʁ.bo.le.ta', 4),
|
|
('sol', 'sɔw', 1),
|
|
('cachorro', 'ka.ʃo.ʁo', 3),
|
|
('pé', 'pɛ', 1)
|
|
RETURNING id, word
|
|
)
|
|
|
|
-- Inserir exercícios
|
|
, inserted_exercises AS (
|
|
INSERT INTO phonics_exercises (
|
|
category_id,
|
|
type_id,
|
|
title,
|
|
description,
|
|
difficulty_level,
|
|
estimated_time_seconds,
|
|
instructions,
|
|
points,
|
|
is_active,
|
|
required_score
|
|
)
|
|
SELECT
|
|
c.id,
|
|
t.id,
|
|
CASE t.name
|
|
WHEN 'rhyme' THEN 'Encontre a Rima: Bola'
|
|
WHEN 'initial_sound' THEN 'Som Inicial: Pato'
|
|
WHEN 'final_sound' THEN 'Som Final: Casa'
|
|
WHEN 'syllables' THEN 'Conte as Sílabas: Borboleta'
|
|
END,
|
|
CASE t.name
|
|
WHEN 'rhyme' THEN 'Encontre a palavra que rima com BOLA'
|
|
WHEN 'initial_sound' THEN 'Encontre a palavra que começa com o mesmo som de PATO'
|
|
WHEN 'final_sound' THEN 'Encontre a palavra que termina com o mesmo som de CASA'
|
|
WHEN 'syllables' THEN 'Quantas sílabas tem a palavra BORBOLETA?'
|
|
END,
|
|
CASE
|
|
WHEN c.level = 1 THEN 1
|
|
ELSE 2
|
|
END,
|
|
60,
|
|
CASE t.name
|
|
WHEN 'rhyme' THEN 'Clique na palavra que rima com BOLA'
|
|
WHEN 'initial_sound' THEN 'Clique na palavra que começa com o mesmo som de PATO'
|
|
WHEN 'final_sound' THEN 'Clique na palavra que termina com o mesmo som de CASA'
|
|
WHEN 'syllables' THEN 'Clique no número que representa a quantidade de sílabas da palavra BORBOLETA'
|
|
END,
|
|
10,
|
|
true,
|
|
0.7
|
|
FROM inserted_categories c
|
|
JOIN inserted_types t ON
|
|
(c.name = 'Rimas' AND t.name = 'rhyme') OR
|
|
(c.name = 'Sons Iniciais' AND t.name = 'initial_sound') OR
|
|
(c.name = 'Sons Finais' AND t.name = 'final_sound') OR
|
|
(c.name = 'Sílabas' AND t.name = 'syllables')
|
|
RETURNING id, type_id
|
|
)
|
|
|
|
-- Relacionar exercícios com palavras
|
|
INSERT INTO phonics_exercise_words (exercise_id, word_id, is_correct_answer, order_index)
|
|
SELECT
|
|
e.id,
|
|
w.id,
|
|
CASE
|
|
-- Exercício de rima (bola)
|
|
WHEN t.name = 'rhyme' AND w.word IN ('bola', 'cola') THEN true
|
|
WHEN t.name = 'rhyme' AND w.word IN ('gato', 'mesa') THEN false
|
|
-- Exercício de som inicial (pato)
|
|
WHEN t.name = 'initial_sound' AND w.word IN ('pato', 'pera') THEN true
|
|
WHEN t.name = 'initial_sound' AND w.word IN ('gato', 'mesa') THEN false
|
|
-- Exercício de som final (casa)
|
|
WHEN t.name = 'final_sound' AND w.word IN ('casa', 'rosa') THEN true
|
|
WHEN t.name = 'final_sound' AND w.word IN ('rato', 'mato') THEN false
|
|
-- Exercício de sílabas (borboleta)
|
|
WHEN t.name = 'syllables' AND w.word = 'borboleta' THEN true
|
|
WHEN t.name = 'syllables' AND w.word IN ('sol', 'cachorro', 'pé') THEN false
|
|
END,
|
|
CASE
|
|
-- Ordem para exercício de rima
|
|
WHEN t.name = 'rhyme' AND w.word = 'bola' THEN 1
|
|
WHEN t.name = 'rhyme' AND w.word = 'cola' THEN 2
|
|
WHEN t.name = 'rhyme' AND w.word = 'gato' THEN 3
|
|
WHEN t.name = 'rhyme' AND w.word = 'mesa' THEN 4
|
|
-- Ordem para exercício de som inicial
|
|
WHEN t.name = 'initial_sound' AND w.word = 'pato' THEN 1
|
|
WHEN t.name = 'initial_sound' AND w.word = 'pera' THEN 2
|
|
WHEN t.name = 'initial_sound' AND w.word = 'gato' THEN 3
|
|
WHEN t.name = 'initial_sound' AND w.word = 'mesa' THEN 4
|
|
-- Ordem para exercício de som final
|
|
WHEN t.name = 'final_sound' AND w.word = 'casa' THEN 1
|
|
WHEN t.name = 'final_sound' AND w.word = 'rosa' THEN 2
|
|
WHEN t.name = 'final_sound' AND w.word = 'rato' THEN 3
|
|
WHEN t.name = 'final_sound' AND w.word = 'mato' THEN 4
|
|
-- Ordem para exercício de sílabas
|
|
WHEN t.name = 'syllables' AND w.word = 'borboleta' THEN 1
|
|
WHEN t.name = 'syllables' AND w.word = 'sol' THEN 2
|
|
WHEN t.name = 'syllables' AND w.word = 'cachorro' THEN 3
|
|
WHEN t.name = 'syllables' AND w.word = 'pé' THEN 4
|
|
END
|
|
FROM inserted_exercises e
|
|
JOIN inserted_types t ON t.id = e.type_id
|
|
JOIN inserted_words w ON
|
|
(t.name = 'rhyme' AND w.word IN ('bola', 'cola', 'gato', 'mesa')) OR
|
|
(t.name = 'initial_sound' AND w.word IN ('pato', 'pera', 'gato', 'mesa')) OR
|
|
(t.name = 'final_sound' AND w.word IN ('casa', 'rosa', 'rato', 'mato')) OR
|
|
(t.name = 'syllables' AND w.word IN ('borboleta', 'sol', 'cachorro', 'pé')); |