Yimaru-BackEnd/db/query/initial_assessment.sql

94 lines
1.8 KiB
SQL

-- 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;