Files
BoostAI/Backend/internal/sqlc/models.go
2026-05-25 17:05:06 +01:00

527 lines
16 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
package sqlc
import (
"database/sql/driver"
"fmt"
"github.com/jackc/pgx/v5/pgtype"
)
type AnswerStatus string
const (
AnswerStatusNotStarted AnswerStatus = "not_started"
AnswerStatusInProgress AnswerStatus = "in_progress"
AnswerStatusSubmitted AnswerStatus = "submitted"
AnswerStatusReviewed AnswerStatus = "reviewed"
)
func (e *AnswerStatus) Scan(src interface{}) error {
switch s := src.(type) {
case []byte:
*e = AnswerStatus(s)
case string:
*e = AnswerStatus(s)
default:
return fmt.Errorf("unsupported scan type for AnswerStatus: %T", src)
}
return nil
}
type NullAnswerStatus struct {
AnswerStatus AnswerStatus `json:"answer_status"`
Valid bool `json:"valid"` // Valid is true if AnswerStatus is not NULL
}
// Scan implements the Scanner interface.
func (ns *NullAnswerStatus) Scan(value interface{}) error {
if value == nil {
ns.AnswerStatus, ns.Valid = "", false
return nil
}
ns.Valid = true
return ns.AnswerStatus.Scan(value)
}
// Value implements the driver Valuer interface.
func (ns NullAnswerStatus) Value() (driver.Value, error) {
if !ns.Valid {
return nil, nil
}
return string(ns.AnswerStatus), nil
}
type AssignmentNextStepOutcome string
const (
AssignmentNextStepOutcomeRedo AssignmentNextStepOutcome = "redo"
AssignmentNextStepOutcomeAccept AssignmentNextStepOutcome = "accept"
AssignmentNextStepOutcomeSupport AssignmentNextStepOutcome = "support"
)
func (e *AssignmentNextStepOutcome) Scan(src interface{}) error {
switch s := src.(type) {
case []byte:
*e = AssignmentNextStepOutcome(s)
case string:
*e = AssignmentNextStepOutcome(s)
default:
return fmt.Errorf("unsupported scan type for AssignmentNextStepOutcome: %T", src)
}
return nil
}
type NullAssignmentNextStepOutcome struct {
AssignmentNextStepOutcome AssignmentNextStepOutcome `json:"assignment_next_step_outcome"`
Valid bool `json:"valid"` // Valid is true if AssignmentNextStepOutcome is not NULL
}
// Scan implements the Scanner interface.
func (ns *NullAssignmentNextStepOutcome) Scan(value interface{}) error {
if value == nil {
ns.AssignmentNextStepOutcome, ns.Valid = "", false
return nil
}
ns.Valid = true
return ns.AssignmentNextStepOutcome.Scan(value)
}
// Value implements the driver Valuer interface.
func (ns NullAssignmentNextStepOutcome) Value() (driver.Value, error) {
if !ns.Valid {
return nil, nil
}
return string(ns.AssignmentNextStepOutcome), nil
}
type AssignmentPassStatus string
const (
AssignmentPassStatusPending AssignmentPassStatus = "pending"
AssignmentPassStatusPass AssignmentPassStatus = "pass"
AssignmentPassStatusNoPass AssignmentPassStatus = "no_pass"
)
func (e *AssignmentPassStatus) Scan(src interface{}) error {
switch s := src.(type) {
case []byte:
*e = AssignmentPassStatus(s)
case string:
*e = AssignmentPassStatus(s)
default:
return fmt.Errorf("unsupported scan type for AssignmentPassStatus: %T", src)
}
return nil
}
type NullAssignmentPassStatus struct {
AssignmentPassStatus AssignmentPassStatus `json:"assignment_pass_status"`
Valid bool `json:"valid"` // Valid is true if AssignmentPassStatus is not NULL
}
// Scan implements the Scanner interface.
func (ns *NullAssignmentPassStatus) Scan(value interface{}) error {
if value == nil {
ns.AssignmentPassStatus, ns.Valid = "", false
return nil
}
ns.Valid = true
return ns.AssignmentPassStatus.Scan(value)
}
// Value implements the driver Valuer interface.
func (ns NullAssignmentPassStatus) Value() (driver.Value, error) {
if !ns.Valid {
return nil, nil
}
return string(ns.AssignmentPassStatus), nil
}
type AssignmentStatus string
const (
AssignmentStatusDraft AssignmentStatus = "draft"
AssignmentStatusAssigned AssignmentStatus = "assigned"
AssignmentStatusClosed AssignmentStatus = "closed"
)
func (e *AssignmentStatus) Scan(src interface{}) error {
switch s := src.(type) {
case []byte:
*e = AssignmentStatus(s)
case string:
*e = AssignmentStatus(s)
default:
return fmt.Errorf("unsupported scan type for AssignmentStatus: %T", src)
}
return nil
}
type NullAssignmentStatus struct {
AssignmentStatus AssignmentStatus `json:"assignment_status"`
Valid bool `json:"valid"` // Valid is true if AssignmentStatus is not NULL
}
// Scan implements the Scanner interface.
func (ns *NullAssignmentStatus) Scan(value interface{}) error {
if value == nil {
ns.AssignmentStatus, ns.Valid = "", false
return nil
}
ns.Valid = true
return ns.AssignmentStatus.Scan(value)
}
// Value implements the driver Valuer interface.
func (ns NullAssignmentStatus) Value() (driver.Value, error) {
if !ns.Valid {
return nil, nil
}
return string(ns.AssignmentStatus), nil
}
type QuestionDifficulty string
const (
QuestionDifficultyEasy QuestionDifficulty = "easy"
QuestionDifficultyMedium QuestionDifficulty = "medium"
QuestionDifficultyHard QuestionDifficulty = "hard"
)
func (e *QuestionDifficulty) Scan(src interface{}) error {
switch s := src.(type) {
case []byte:
*e = QuestionDifficulty(s)
case string:
*e = QuestionDifficulty(s)
default:
return fmt.Errorf("unsupported scan type for QuestionDifficulty: %T", src)
}
return nil
}
type NullQuestionDifficulty struct {
QuestionDifficulty QuestionDifficulty `json:"question_difficulty"`
Valid bool `json:"valid"` // Valid is true if QuestionDifficulty is not NULL
}
// Scan implements the Scanner interface.
func (ns *NullQuestionDifficulty) Scan(value interface{}) error {
if value == nil {
ns.QuestionDifficulty, ns.Valid = "", false
return nil
}
ns.Valid = true
return ns.QuestionDifficulty.Scan(value)
}
// Value implements the driver Valuer interface.
func (ns NullQuestionDifficulty) Value() (driver.Value, error) {
if !ns.Valid {
return nil, nil
}
return string(ns.QuestionDifficulty), nil
}
type QuestionStatus string
const (
QuestionStatusDraft QuestionStatus = "draft"
QuestionStatusPublished QuestionStatus = "published"
QuestionStatusArchived QuestionStatus = "archived"
)
func (e *QuestionStatus) Scan(src interface{}) error {
switch s := src.(type) {
case []byte:
*e = QuestionStatus(s)
case string:
*e = QuestionStatus(s)
default:
return fmt.Errorf("unsupported scan type for QuestionStatus: %T", src)
}
return nil
}
type NullQuestionStatus struct {
QuestionStatus QuestionStatus `json:"question_status"`
Valid bool `json:"valid"` // Valid is true if QuestionStatus is not NULL
}
// Scan implements the Scanner interface.
func (ns *NullQuestionStatus) Scan(value interface{}) error {
if value == nil {
ns.QuestionStatus, ns.Valid = "", false
return nil
}
ns.Valid = true
return ns.QuestionStatus.Scan(value)
}
// Value implements the driver Valuer interface.
func (ns NullQuestionStatus) Value() (driver.Value, error) {
if !ns.Valid {
return nil, nil
}
return string(ns.QuestionStatus), nil
}
type QuestionTopic string
const (
QuestionTopicPlaceValue QuestionTopic = "place_value"
QuestionTopicArithmetic QuestionTopic = "arithmetic"
QuestionTopicNegativeNumbers QuestionTopic = "negative_numbers"
QuestionTopicBidmas QuestionTopic = "bidmas"
QuestionTopicFractions QuestionTopic = "fractions"
QuestionTopicAlgebra QuestionTopic = "algebra"
QuestionTopicGeometry QuestionTopic = "geometry"
QuestionTopicData QuestionTopic = "data"
)
func (e *QuestionTopic) Scan(src interface{}) error {
switch s := src.(type) {
case []byte:
*e = QuestionTopic(s)
case string:
*e = QuestionTopic(s)
default:
return fmt.Errorf("unsupported scan type for QuestionTopic: %T", src)
}
return nil
}
type NullQuestionTopic struct {
QuestionTopic QuestionTopic `json:"question_topic"`
Valid bool `json:"valid"` // Valid is true if QuestionTopic is not NULL
}
// Scan implements the Scanner interface.
func (ns *NullQuestionTopic) Scan(value interface{}) error {
if value == nil {
ns.QuestionTopic, ns.Valid = "", false
return nil
}
ns.Valid = true
return ns.QuestionTopic.Scan(value)
}
// Value implements the driver Valuer interface.
func (ns NullQuestionTopic) Value() (driver.Value, error) {
if !ns.Valid {
return nil, nil
}
return string(ns.QuestionTopic), nil
}
type UserRole string
const (
UserRoleStudent UserRole = "student"
UserRoleTeacher UserRole = "teacher"
)
func (e *UserRole) Scan(src interface{}) error {
switch s := src.(type) {
case []byte:
*e = UserRole(s)
case string:
*e = UserRole(s)
default:
return fmt.Errorf("unsupported scan type for UserRole: %T", src)
}
return nil
}
type NullUserRole struct {
UserRole UserRole `json:"user_role"`
Valid bool `json:"valid"` // Valid is true if UserRole is not NULL
}
// Scan implements the Scanner interface.
func (ns *NullUserRole) Scan(value interface{}) error {
if value == nil {
ns.UserRole, ns.Valid = "", false
return nil
}
ns.Valid = true
return ns.UserRole.Scan(value)
}
// Value implements the driver Valuer interface.
func (ns NullUserRole) Value() (driver.Value, error) {
if !ns.Valid {
return nil, nil
}
return string(ns.UserRole), nil
}
type Assignment struct {
ID int64 `json:"id"`
ClassroomID int64 `json:"classroom_id"`
TeacherID int64 `json:"teacher_id"`
Title string `json:"title"`
Instructions pgtype.Text `json:"instructions"`
Status AssignmentStatus `json:"status"`
DueAt pgtype.Timestamptz `json:"due_at"`
PublishedAt pgtype.Timestamptz `json:"published_at"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
PassThreshold pgtype.Numeric `json:"pass_threshold"`
}
type AssignmentAssignee struct {
AssignmentID int64 `json:"assignment_id"`
StudentID int64 `json:"student_id"`
AssignedAt pgtype.Timestamptz `json:"assigned_at"`
AiFeedback pgtype.Text `json:"ai_feedback"`
TeacherFeedback pgtype.Text `json:"teacher_feedback"`
OverallScore pgtype.Numeric `json:"overall_score"`
PassThreshold pgtype.Numeric `json:"pass_threshold"`
PassStatus AssignmentPassStatus `json:"pass_status"`
PassStatusOverride NullAssignmentPassStatus `json:"pass_status_override"`
NextStepOutcome NullAssignmentNextStepOutcome `json:"next_step_outcome"`
RedoPlan pgtype.Text `json:"redo_plan"`
RedoPlanGeneratedAt pgtype.Timestamptz `json:"redo_plan_generated_at"`
}
type AssignmentQuestion struct {
AssignmentID int64 `json:"assignment_id"`
QuestionID int64 `json:"question_id"`
Position int32 `json:"position"`
}
type AssignmentStudentQuestion struct {
ID int64 `json:"id"`
AssignmentID int64 `json:"assignment_id"`
StudentID int64 `json:"student_id"`
QuestionID int64 `json:"question_id"`
Position int32 `json:"position"`
SourceBucket string `json:"source_bucket"`
SourceTopic NullQuestionTopic `json:"source_topic"`
SourceDifficulty NullQuestionDifficulty `json:"source_difficulty"`
GeneratorSeed pgtype.Int8 `json:"generator_seed"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
}
type Classroom struct {
ID int64 `json:"id"`
TeacherID int64 `json:"teacher_id"`
Name string `json:"name"`
Code pgtype.Text `json:"code"`
Description pgtype.Text `json:"description"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
type ClassroomStudent struct {
ClassroomID int64 `json:"classroom_id"`
StudentID int64 `json:"student_id"`
JoinedAt pgtype.Timestamptz `json:"joined_at"`
}
type Message struct {
ID int64 `json:"id"`
ThreadID int64 `json:"thread_id"`
SenderUserID int64 `json:"sender_user_id"`
Body string `json:"body"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
type MessageThread struct {
ID int64 `json:"id"`
CreatedByUserID int64 `json:"created_by_user_id"`
Subject string `json:"subject"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
type MessageThreadParticipant struct {
ThreadID int64 `json:"thread_id"`
UserID int64 `json:"user_id"`
JoinedAt pgtype.Timestamptz `json:"joined_at"`
LastReadAt pgtype.Timestamptz `json:"last_read_at"`
ArchivedAt pgtype.Timestamptz `json:"archived_at"`
}
type Profile struct {
UserID int64 `json:"user_id"`
PreferredName pgtype.Text `json:"preferred_name"`
ProfileIconUrl pgtype.Text `json:"profile_icon_url"`
Headline pgtype.Text `json:"headline"`
Bio pgtype.Text `json:"bio"`
Timezone pgtype.Text `json:"timezone"`
Locale pgtype.Text `json:"locale"`
GradeLevel pgtype.Text `json:"grade_level"`
LearningGoal pgtype.Text `json:"learning_goal"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
type Question struct {
ID int64 `json:"id"`
AuthorTeacherID int64 `json:"author_teacher_id"`
Title string `json:"title"`
Prompt string `json:"prompt"`
Subject pgtype.Text `json:"subject"`
Source pgtype.Text `json:"source"`
Status QuestionStatus `json:"status"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
CorrectAnswer pgtype.Text `json:"correct_answer"`
Topic NullQuestionTopic `json:"topic"`
Difficulty NullQuestionDifficulty `json:"difficulty"`
}
type QuestionTag struct {
QuestionID int64 `json:"question_id"`
TagID int64 `json:"tag_id"`
}
type StudentAnswer struct {
ID int64 `json:"id"`
AssignmentID int64 `json:"assignment_id"`
QuestionID int64 `json:"question_id"`
StudentID int64 `json:"student_id"`
AnswerText pgtype.Text `json:"answer_text"`
AiFeedback pgtype.Text `json:"ai_feedback"`
TeacherFeedback pgtype.Text `json:"teacher_feedback"`
Status AnswerStatus `json:"status"`
SubmittedAt pgtype.Timestamptz `json:"submitted_at"`
ReviewedAt pgtype.Timestamptz `json:"reviewed_at"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
SolveMode string `json:"solve_mode"`
WorkingSteps pgtype.Text `json:"working_steps"`
IsCorrect pgtype.Bool `json:"is_correct"`
ReviewNeedsAttention bool `json:"review_needs_attention"`
ReviewIssueReason pgtype.Text `json:"review_issue_reason"`
ReviewCorrectnessScore pgtype.Numeric `json:"review_correctness_score"`
ReviewUnderstandingScore pgtype.Numeric `json:"review_understanding_score"`
ReviewQuestionScore pgtype.Numeric `json:"review_question_score"`
ReviewConfidence pgtype.Numeric `json:"review_confidence"`
ReviewTags []string `json:"review_tags"`
}
type Tag struct {
ID int64 `json:"id"`
Name string `json:"name"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
}
type User struct {
ID int64 `json:"id"`
Email string `json:"email"`
PasswordHash pgtype.Text `json:"password_hash"`
Role UserRole `json:"role"`
FullName string `json:"full_name"`
IsActive bool `json:"is_active"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}