-- name: CreateAssessmentAttempt :one INSERT INTO assessment_attempts ( user_id, total_questions, correct_answers, score_percentage, knowledge_level ) VALUES ( $1, -- user_id $2, -- total_questions $3, -- correct_answers $4, -- score_percentage $5 -- knowledge_level ) RETURNING id, user_id, total_questions, correct_answers, score_percentage, knowledge_level, completed_at; -- -- name: CreateAssessmentAnswer :exec -- INSERT INTO assessment_answers ( -- attempt_id, -- question_id, -- selected_option_id, -- short_answer, -- is_correct -- ) -- VALUES ( -- $1, -- attempt_id -- $2, -- question_id -- $3, -- selected_option_id -- $4, -- short_answer -- $5 -- is_correct -- ); -- name: GetAssessmentOptionByID :one SELECT id, question_id, option_text, is_correct FROM assessment_question_options WHERE id = $1 LIMIT 1; -- name: GetCorrectOptionForQuestion :one SELECT id FROM assessment_question_options WHERE question_id = $1 AND is_correct = TRUE LIMIT 1; -- name: GetLatestAssessmentAttempt :one SELECT * FROM assessment_attempts WHERE user_id = $1 ORDER BY completed_at DESC LIMIT 1; -- name: CreateAssessmentQuestion :one INSERT INTO assessment_questions ( title, description, question_type, difficulty_level ) VALUES ($1, $2, $3, $4) RETURNING *; -- name: CreateAssessmentQuestionOption :exec INSERT INTO assessment_question_options ( question_id, option_text, is_correct ) VALUES ($1, $2, $3); -- name: GetActiveAssessmentQuestions :many SELECT * FROM assessment_questions WHERE is_active = TRUE ORDER BY difficulty_level, id; -- name: GetQuestionOptions :many SELECT * FROM assessment_question_options WHERE question_id = $1;