Yimaru-BackEnd/gen/db/practice_questions.sql.go

136 lines
3.4 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: practice_questions.sql
package dbgen
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const CreatePracticeQuestion = `-- name: CreatePracticeQuestion :one
INSERT INTO practice_questions (
practice_id,
question,
question_voice_prompt,
sample_answer_voice_prompt,
sample_answer,
tips,
type
)
VALUES ($1, $2, $3, $4, $5, $6, $7)
RETURNING id, practice_id, question, question_voice_prompt, sample_answer_voice_prompt, sample_answer, tips, type
`
type CreatePracticeQuestionParams struct {
PracticeID int64 `json:"practice_id"`
Question string `json:"question"`
QuestionVoicePrompt pgtype.Text `json:"question_voice_prompt"`
SampleAnswerVoicePrompt pgtype.Text `json:"sample_answer_voice_prompt"`
SampleAnswer pgtype.Text `json:"sample_answer"`
Tips pgtype.Text `json:"tips"`
Type string `json:"type"`
}
func (q *Queries) CreatePracticeQuestion(ctx context.Context, arg CreatePracticeQuestionParams) (PracticeQuestion, error) {
row := q.db.QueryRow(ctx, CreatePracticeQuestion,
arg.PracticeID,
arg.Question,
arg.QuestionVoicePrompt,
arg.SampleAnswerVoicePrompt,
arg.SampleAnswer,
arg.Tips,
arg.Type,
)
var i PracticeQuestion
err := row.Scan(
&i.ID,
&i.PracticeID,
&i.Question,
&i.QuestionVoicePrompt,
&i.SampleAnswerVoicePrompt,
&i.SampleAnswer,
&i.Tips,
&i.Type,
)
return i, err
}
const DeletePracticeQuestion = `-- name: DeletePracticeQuestion :exec
DELETE FROM practice_questions
WHERE id = $1
`
func (q *Queries) DeletePracticeQuestion(ctx context.Context, id int64) error {
_, err := q.db.Exec(ctx, DeletePracticeQuestion, id)
return err
}
const GetQuestionsByPractice = `-- name: GetQuestionsByPractice :many
SELECT id, practice_id, question, question_voice_prompt, sample_answer_voice_prompt, sample_answer, tips, type
FROM practice_questions
WHERE practice_id = $1
ORDER BY id ASC
`
func (q *Queries) GetQuestionsByPractice(ctx context.Context, practiceID int64) ([]PracticeQuestion, error) {
rows, err := q.db.Query(ctx, GetQuestionsByPractice, practiceID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []PracticeQuestion
for rows.Next() {
var i PracticeQuestion
if err := rows.Scan(
&i.ID,
&i.PracticeID,
&i.Question,
&i.QuestionVoicePrompt,
&i.SampleAnswerVoicePrompt,
&i.SampleAnswer,
&i.Tips,
&i.Type,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const UpdatePracticeQuestion = `-- name: UpdatePracticeQuestion :exec
UPDATE practice_questions
SET
question = COALESCE($1, question),
sample_answer = COALESCE($2, sample_answer),
tips = COALESCE($3, tips),
type = COALESCE($4, type)
WHERE id = $5
`
type UpdatePracticeQuestionParams struct {
Question string `json:"question"`
SampleAnswer pgtype.Text `json:"sample_answer"`
Tips pgtype.Text `json:"tips"`
Type string `json:"type"`
ID int64 `json:"id"`
}
func (q *Queries) UpdatePracticeQuestion(ctx context.Context, arg UpdatePracticeQuestionParams) error {
_, err := q.db.Exec(ctx, UpdatePracticeQuestion,
arg.Question,
arg.SampleAnswer,
arg.Tips,
arg.Type,
arg.ID,
)
return err
}