From a23b77f76f373cd02192117e0ba0aaa389aa9c1a Mon Sep 17 00:00:00 2001 From: "Grail Finder (aider)" Date: Sat, 5 Apr 2025 12:28:35 +0300 Subject: feat: add SQLite schema for quiz questions storage --- .../database/migrations/002_quiz_schema.down.sql | 1 + .../database/migrations/002_quiz_schema.up.sql | 17 +++++++++++++++ internal/models/models.go | 25 +++++++++++----------- 3 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 internal/database/migrations/002_quiz_schema.down.sql create mode 100644 internal/database/migrations/002_quiz_schema.up.sql (limited to 'internal') diff --git a/internal/database/migrations/002_quiz_schema.down.sql b/internal/database/migrations/002_quiz_schema.down.sql new file mode 100644 index 0000000..8f644e8 --- /dev/null +++ b/internal/database/migrations/002_quiz_schema.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS questions; diff --git a/internal/database/migrations/002_quiz_schema.up.sql b/internal/database/migrations/002_quiz_schema.up.sql new file mode 100644 index 0000000..406432b --- /dev/null +++ b/internal/database/migrations/002_quiz_schema.up.sql @@ -0,0 +1,17 @@ +CREATE TABLE IF NOT EXISTS questions ( + id INTEGER PRIMARY KEY, + text TEXT NOT NULL, + option1 TEXT, + option2 TEXT, + option3 TEXT, + option4 TEXT, + correct_index INTEGER NOT NULL, + requirement TEXT, + explanation TEXT, + status INTEGER DEFAULT 0, + exam_id INTEGER, + mixed_id INTEGER +); + +CREATE INDEX IF NOT EXISTS idx_questions_exam_id ON questions(exam_id); +CREATE INDEX IF NOT EXISTS idx_questions_mixed_id ON questions(mixed_id); diff --git a/internal/models/models.go b/internal/models/models.go index c525466..8e30a6c 100644 --- a/internal/models/models.go +++ b/internal/models/models.go @@ -2,18 +2,17 @@ package models type ( Question struct { - ID uint32 - Text string - Options []string - CorrectIndex uint8 - TopicID uint32 - Feedback string - FeedbackClass string - } - // - Topic struct { - ID uint32 - Name string - Level uint32 + ID uint32 `db:"id"` + Text string `db:"text"` + Option1 string `db:"option1"` + Option2 string `db:"option2"` + Option3 string `db:"option3"` + Option4 string `db:"option4"` + CorrectIndex uint8 `db:"correct_index"` + Requirement string `db:"requirement"` + Explanation string `db:"explanation"` + Status int `db:"status"` + ExamID uint32 `db:"exam_id"` + MixedID uint32 `db:"mixed_id"` } ) -- cgit v1.2.3