// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 // source: questions.sql package sqlc import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const attachTagToQuestion = `-- name: AttachTagToQuestion :exec INSERT INTO question_tags ( question_id, tag_id ) VALUES ( $1, $2 ) ON CONFLICT (question_id, tag_id) DO NOTHING ` type AttachTagToQuestionParams struct { QuestionID int64 `json:"question_id"` TagID int64 `json:"tag_id"` } func (q *Queries) AttachTagToQuestion(ctx context.Context, arg AttachTagToQuestionParams) error { _, err := q.db.Exec(ctx, attachTagToQuestion, arg.QuestionID, arg.TagID) return err } const createQuestion = `-- name: CreateQuestion :one INSERT INTO questions ( author_teacher_id, title, prompt, topic, subject, difficulty, source, status, correct_answer ) VALUES ( $1, $2, $3, $4, $5, $6, $7, $8, $9 ) RETURNING id, author_teacher_id, title, prompt, subject, source, status, created_at, updated_at, correct_answer, topic, difficulty ` type CreateQuestionParams struct { AuthorTeacherID int64 `json:"author_teacher_id"` Title string `json:"title"` Prompt string `json:"prompt"` Topic NullQuestionTopic `json:"topic"` Subject pgtype.Text `json:"subject"` Difficulty NullQuestionDifficulty `json:"difficulty"` Source pgtype.Text `json:"source"` Status QuestionStatus `json:"status"` CorrectAnswer pgtype.Text `json:"correct_answer"` } func (q *Queries) CreateQuestion(ctx context.Context, arg CreateQuestionParams) (Question, error) { row := q.db.QueryRow(ctx, createQuestion, arg.AuthorTeacherID, arg.Title, arg.Prompt, arg.Topic, arg.Subject, arg.Difficulty, arg.Source, arg.Status, arg.CorrectAnswer, ) var i Question err := row.Scan( &i.ID, &i.AuthorTeacherID, &i.Title, &i.Prompt, &i.Subject, &i.Source, &i.Status, &i.CreatedAt, &i.UpdatedAt, &i.CorrectAnswer, &i.Topic, &i.Difficulty, ) return i, err } const createTag = `-- name: CreateTag :one INSERT INTO tags (name) VALUES ($1) ON CONFLICT (name) DO UPDATE SET name = EXCLUDED.name RETURNING id, name, created_at ` func (q *Queries) CreateTag(ctx context.Context, name string) (Tag, error) { row := q.db.QueryRow(ctx, createTag, name) var i Tag err := row.Scan(&i.ID, &i.Name, &i.CreatedAt) return i, err } const getQuestionByID = `-- name: GetQuestionByID :one SELECT id, author_teacher_id, title, prompt, subject, source, status, created_at, updated_at, correct_answer, topic, difficulty FROM questions WHERE id = $1 ` func (q *Queries) GetQuestionByID(ctx context.Context, id int64) (Question, error) { row := q.db.QueryRow(ctx, getQuestionByID, id) var i Question err := row.Scan( &i.ID, &i.AuthorTeacherID, &i.Title, &i.Prompt, &i.Subject, &i.Source, &i.Status, &i.CreatedAt, &i.UpdatedAt, &i.CorrectAnswer, &i.Topic, &i.Difficulty, ) return i, err } const listQuestionsByTeacher = `-- name: ListQuestionsByTeacher :many SELECT id, author_teacher_id, title, prompt, subject, source, status, created_at, updated_at, correct_answer, topic, difficulty FROM questions WHERE author_teacher_id = $1 ORDER BY created_at DESC ` func (q *Queries) ListQuestionsByTeacher(ctx context.Context, authorTeacherID int64) ([]Question, error) { rows, err := q.db.Query(ctx, listQuestionsByTeacher, authorTeacherID) if err != nil { return nil, err } defer rows.Close() items := []Question{} for rows.Next() { var i Question if err := rows.Scan( &i.ID, &i.AuthorTeacherID, &i.Title, &i.Prompt, &i.Subject, &i.Source, &i.Status, &i.CreatedAt, &i.UpdatedAt, &i.CorrectAnswer, &i.Topic, &i.Difficulty, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listTags = `-- name: ListTags :many SELECT id, name, created_at FROM tags ORDER BY name ASC ` func (q *Queries) ListTags(ctx context.Context) ([]Tag, error) { rows, err := q.db.Query(ctx, listTags) if err != nil { return nil, err } defer rows.Close() items := []Tag{} for rows.Next() { var i Tag if err := rows.Scan(&i.ID, &i.Name, &i.CreatedAt); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil }