diff --git a/db/query/question_set_items.sql b/db/query/question_set_items.sql index 69ef103..7421371 100644 --- a/db/query/question_set_items.sql +++ b/db/query/question_set_items.sql @@ -21,10 +21,13 @@ SELECT q.explanation, q.tips, q.voice_prompt, + q.sample_answer_voice_prompt, q.image_url, - q.status as question_status + q.status as question_status, + qaa.correct_answer_text AS audio_correct_answer_text FROM question_set_items qsi JOIN questions q ON q.id = qsi.question_id +LEFT JOIN question_audio_answers qaa ON qaa.question_id = q.id WHERE qsi.set_id = $1 AND q.status != 'ARCHIVED' ORDER BY qsi.display_order; @@ -70,9 +73,12 @@ SELECT q.explanation, q.tips, q.voice_prompt, - q.image_url + q.sample_answer_voice_prompt, + q.image_url, + qaa.correct_answer_text AS audio_correct_answer_text FROM question_set_items qsi JOIN questions q ON q.id = qsi.question_id +LEFT JOIN question_audio_answers qaa ON qaa.question_id = q.id WHERE qsi.set_id = $1 AND q.status = 'PUBLISHED' ORDER BY qsi.display_order; diff --git a/gen/db/question_set_items.sql.go b/gen/db/question_set_items.sql.go index d1a0860..21f9b1b 100644 --- a/gen/db/question_set_items.sql.go +++ b/gen/db/question_set_items.sql.go @@ -69,27 +69,32 @@ SELECT q.explanation, q.tips, q.voice_prompt, - q.image_url + q.sample_answer_voice_prompt, + q.image_url, + qaa.correct_answer_text AS audio_correct_answer_text FROM question_set_items qsi JOIN questions q ON q.id = qsi.question_id +LEFT JOIN question_audio_answers qaa ON qaa.question_id = q.id WHERE qsi.set_id = $1 AND q.status = 'PUBLISHED' ORDER BY qsi.display_order ` type GetPublishedQuestionsInSetRow struct { - ID int64 `json:"id"` - SetID int64 `json:"set_id"` - QuestionID int64 `json:"question_id"` - DisplayOrder int32 `json:"display_order"` - QuestionText string `json:"question_text"` - QuestionType string `json:"question_type"` - DifficultyLevel pgtype.Text `json:"difficulty_level"` - Points int32 `json:"points"` - Explanation pgtype.Text `json:"explanation"` - Tips pgtype.Text `json:"tips"` - VoicePrompt pgtype.Text `json:"voice_prompt"` - ImageUrl pgtype.Text `json:"image_url"` + ID int64 `json:"id"` + SetID int64 `json:"set_id"` + QuestionID int64 `json:"question_id"` + DisplayOrder int32 `json:"display_order"` + QuestionText string `json:"question_text"` + QuestionType string `json:"question_type"` + DifficultyLevel pgtype.Text `json:"difficulty_level"` + Points int32 `json:"points"` + Explanation pgtype.Text `json:"explanation"` + Tips pgtype.Text `json:"tips"` + VoicePrompt pgtype.Text `json:"voice_prompt"` + SampleAnswerVoicePrompt pgtype.Text `json:"sample_answer_voice_prompt"` + ImageUrl pgtype.Text `json:"image_url"` + AudioCorrectAnswerText pgtype.Text `json:"audio_correct_answer_text"` } func (q *Queries) GetPublishedQuestionsInSet(ctx context.Context, setID int64) ([]GetPublishedQuestionsInSetRow, error) { @@ -113,7 +118,9 @@ func (q *Queries) GetPublishedQuestionsInSet(ctx context.Context, setID int64) ( &i.Explanation, &i.Tips, &i.VoicePrompt, + &i.SampleAnswerVoicePrompt, &i.ImageUrl, + &i.AudioCorrectAnswerText, ); err != nil { return nil, err } @@ -138,29 +145,34 @@ SELECT q.explanation, q.tips, q.voice_prompt, + q.sample_answer_voice_prompt, q.image_url, - q.status as question_status + q.status as question_status, + qaa.correct_answer_text AS audio_correct_answer_text FROM question_set_items qsi JOIN questions q ON q.id = qsi.question_id +LEFT JOIN question_audio_answers qaa ON qaa.question_id = q.id WHERE qsi.set_id = $1 AND q.status != 'ARCHIVED' ORDER BY qsi.display_order ` type GetQuestionSetItemsRow struct { - ID int64 `json:"id"` - SetID int64 `json:"set_id"` - QuestionID int64 `json:"question_id"` - DisplayOrder int32 `json:"display_order"` - QuestionText string `json:"question_text"` - QuestionType string `json:"question_type"` - DifficultyLevel pgtype.Text `json:"difficulty_level"` - Points int32 `json:"points"` - Explanation pgtype.Text `json:"explanation"` - Tips pgtype.Text `json:"tips"` - VoicePrompt pgtype.Text `json:"voice_prompt"` - ImageUrl pgtype.Text `json:"image_url"` - QuestionStatus string `json:"question_status"` + ID int64 `json:"id"` + SetID int64 `json:"set_id"` + QuestionID int64 `json:"question_id"` + DisplayOrder int32 `json:"display_order"` + QuestionText string `json:"question_text"` + QuestionType string `json:"question_type"` + DifficultyLevel pgtype.Text `json:"difficulty_level"` + Points int32 `json:"points"` + Explanation pgtype.Text `json:"explanation"` + Tips pgtype.Text `json:"tips"` + VoicePrompt pgtype.Text `json:"voice_prompt"` + SampleAnswerVoicePrompt pgtype.Text `json:"sample_answer_voice_prompt"` + ImageUrl pgtype.Text `json:"image_url"` + QuestionStatus string `json:"question_status"` + AudioCorrectAnswerText pgtype.Text `json:"audio_correct_answer_text"` } func (q *Queries) GetQuestionSetItems(ctx context.Context, setID int64) ([]GetQuestionSetItemsRow, error) { @@ -184,8 +196,10 @@ func (q *Queries) GetQuestionSetItems(ctx context.Context, setID int64) ([]GetQu &i.Explanation, &i.Tips, &i.VoicePrompt, + &i.SampleAnswerVoicePrompt, &i.ImageUrl, &i.QuestionStatus, + &i.AudioCorrectAnswerText, ); err != nil { return nil, err } diff --git a/internal/repository/questions.go b/internal/repository/questions.go index 2c0c7d8..baf864c 100644 --- a/internal/repository/questions.go +++ b/internal/repository/questions.go @@ -724,17 +724,17 @@ func (s *Store) GetQuestionSetItems(ctx context.Context, setID int64) ([]domain. QuestionID: r.QuestionID, DisplayOrder: r.DisplayOrder, }, - QuestionText: r.QuestionText, - QuestionType: r.QuestionType, - DifficultyLevel: fromPgText(r.DifficultyLevel), - Points: r.Points, - Explanation: fromPgText(r.Explanation), - Tips: fromPgText(r.Tips), - VoicePrompt: fromPgText(r.VoicePrompt), - SampleAnswerVoicePrompt: nil, - ImageURL: fromPgText(r.ImageUrl), - AudioCorrectAnswerText: nil, - QuestionStatus: r.QuestionStatus, + QuestionText: r.QuestionText, + QuestionType: r.QuestionType, + DifficultyLevel: fromPgText(r.DifficultyLevel), + Points: r.Points, + Explanation: fromPgText(r.Explanation), + Tips: fromPgText(r.Tips), + VoicePrompt: fromPgText(r.VoicePrompt), + SampleAnswerVoicePrompt: fromPgText(r.SampleAnswerVoicePrompt), + ImageURL: fromPgText(r.ImageUrl), + AudioCorrectAnswerText: fromPgText(r.AudioCorrectAnswerText), + QuestionStatus: r.QuestionStatus, } } return result, nil @@ -799,15 +799,17 @@ func (s *Store) GetPublishedQuestionsInSet(ctx context.Context, setID int64) ([] QuestionID: r.QuestionID, DisplayOrder: r.DisplayOrder, }, - QuestionText: r.QuestionText, - QuestionType: r.QuestionType, - DifficultyLevel: fromPgText(r.DifficultyLevel), - Points: r.Points, - Explanation: fromPgText(r.Explanation), - Tips: fromPgText(r.Tips), - VoicePrompt: fromPgText(r.VoicePrompt), - ImageURL: fromPgText(r.ImageUrl), - QuestionStatus: "PUBLISHED", + QuestionText: r.QuestionText, + QuestionType: r.QuestionType, + DifficultyLevel: fromPgText(r.DifficultyLevel), + Points: r.Points, + Explanation: fromPgText(r.Explanation), + Tips: fromPgText(r.Tips), + VoicePrompt: fromPgText(r.VoicePrompt), + SampleAnswerVoicePrompt: fromPgText(r.SampleAnswerVoicePrompt), + ImageURL: fromPgText(r.ImageUrl), + AudioCorrectAnswerText: fromPgText(r.AudioCorrectAnswerText), + QuestionStatus: "PUBLISHED", } } return result, nil