sqlc

package
v0.0.0-...-26e635b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 22, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddMessageParams

type AddMessageParams struct {
	SessionID      uuid.UUID `json:"session_id"`
	Role           string    `json:"role"`
	Content        []byte    `json:"content"`
	SequenceNumber int32     `json:"sequence_number"`
}

type AddMessageWithIDParams

type AddMessageWithIDParams struct {
	ID             uuid.UUID `json:"id"`
	SessionID      uuid.UUID `json:"session_id"`
	Role           string    `json:"role"`
	Content        []byte    `json:"content"`
	Status         string    `json:"status"`
	SequenceNumber int32     `json:"sequence_number"`
}

type CreateSessionParams

type CreateSessionParams struct {
	Title        *string `json:"title"`
	ModelName    *string `json:"model_name"`
	SystemPrompt *string `json:"system_prompt"`
}

type DBTX

type DBTX interface {
	Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
	Query(context.Context, string, ...interface{}) (pgx.Rows, error)
	QueryRow(context.Context, string, ...interface{}) pgx.Row
}

type Document

type Document struct {
	ID         string           `json:"id"`
	Content    string           `json:"content"`
	Embedding  *pgvector.Vector `json:"embedding"`
	SourceType *string          `json:"source_type"`
	Metadata   []byte           `json:"metadata"`
}

type GetDocumentRow

type GetDocumentRow struct {
	ID       string `json:"id"`
	Content  string `json:"content"`
	Metadata []byte `json:"metadata"`
}

type GetMessagesParams

type GetMessagesParams struct {
	SessionID    uuid.UUID `json:"session_id"`
	ResultOffset int32     `json:"result_offset"`
	ResultLimit  int32     `json:"result_limit"`
}

type GetUserMessageBeforeParams

type GetUserMessageBeforeParams struct {
	SessionID      uuid.UUID `json:"session_id"`
	BeforeSequence int32     `json:"before_sequence"`
}

type ListDocumentsBySourceTypeParams

type ListDocumentsBySourceTypeParams struct {
	SourceType  string `json:"source_type"`
	ResultLimit int32  `json:"result_limit"`
}

type ListDocumentsBySourceTypeRow

type ListDocumentsBySourceTypeRow struct {
	ID       string `json:"id"`
	Content  string `json:"content"`
	Metadata []byte `json:"metadata"`
}

type ListSessionsParams

type ListSessionsParams struct {
	ResultOffset int32 `json:"result_offset"`
	ResultLimit  int32 `json:"result_limit"`
}

type ListSessionsWithMessagesParams

type ListSessionsWithMessagesParams struct {
	ResultOffset int32 `json:"result_offset"`
	ResultLimit  int32 `json:"result_limit"`
}

type Message

type Message struct {
	ID             uuid.UUID          `json:"id"`
	SessionID      uuid.UUID          `json:"session_id"`
	Role           string             `json:"role"`
	Content        []byte             `json:"content"`
	SequenceNumber int32              `json:"sequence_number"`
	CreatedAt      pgtype.Timestamptz `json:"created_at"`
	Status         string             `json:"status"`
	UpdatedAt      pgtype.Timestamptz `json:"updated_at"`
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) AddMessage

func (q *Queries) AddMessage(ctx context.Context, arg AddMessageParams) error

Add a message to a session

func (*Queries) AddMessageWithID

func (q *Queries) AddMessageWithID(ctx context.Context, arg AddMessageWithIDParams) (Message, error)

Add message with pre-assigned ID and status (for streaming)

func (*Queries) CountDocuments

func (q *Queries) CountDocuments(ctx context.Context, dollar_1 []byte) (int64, error)

func (*Queries) CountDocumentsAll

func (q *Queries) CountDocumentsAll(ctx context.Context) (int64, error)

func (*Queries) CountMessages

func (q *Queries) CountMessages(ctx context.Context, sessionID uuid.UUID) (int32, error)

Count messages in a session

func (*Queries) CreateSession

func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error)

Sessions queries for sqlc Generated code will be in internal/sqlc/sessions.sql.go

func (*Queries) DeleteDocument

func (q *Queries) DeleteDocument(ctx context.Context, id string) error

func (*Queries) DeleteMessages

func (q *Queries) DeleteMessages(ctx context.Context, sessionID uuid.UUID) error

Delete all messages in a session

func (*Queries) DeleteSession

func (q *Queries) DeleteSession(ctx context.Context, id uuid.UUID) error

func (*Queries) GetDocument

func (q *Queries) GetDocument(ctx context.Context, id string) (GetDocumentRow, error)

func (*Queries) GetMaxSequenceNumber

func (q *Queries) GetMaxSequenceNumber(ctx context.Context, sessionID uuid.UUID) (int32, error)

Get max sequence number for a session

func (*Queries) GetMessageByID

func (q *Queries) GetMessageByID(ctx context.Context, id uuid.UUID) (Message, error)

Get a single message by ID (for streaming lookup).

func (*Queries) GetMessages

func (q *Queries) GetMessages(ctx context.Context, arg GetMessagesParams) ([]Message, error)

Get all messages for a session ordered by sequence

func (*Queries) GetSession

func (q *Queries) GetSession(ctx context.Context, id uuid.UUID) (Session, error)

func (*Queries) GetUserMessageBefore

func (q *Queries) GetUserMessageBefore(ctx context.Context, arg GetUserMessageBeforeParams) ([]byte, error)

Get the user message content immediately before a given sequence number. Used by Stream handler to retrieve query without URL parameter.

func (*Queries) ListDocumentsBySourceType

func (q *Queries) ListDocumentsBySourceType(ctx context.Context, arg ListDocumentsBySourceTypeParams) ([]ListDocumentsBySourceTypeRow, error)

List all documents by source_type using dedicated indexed column Used for listing indexed files without needing embeddings

func (*Queries) ListSessions

func (q *Queries) ListSessions(ctx context.Context, arg ListSessionsParams) ([]Session, error)

func (*Queries) ListSessionsWithMessages

func (q *Queries) ListSessionsWithMessages(ctx context.Context, arg ListSessionsWithMessagesParams) ([]Session, error)

Only list sessions that have messages or titles (not empty sessions) This is used for sidebar to hide "New Chat" placeholder sessions

func (*Queries) LockSession

func (q *Queries) LockSession(ctx context.Context, id uuid.UUID) (uuid.UUID, error)

Locks the session row to prevent concurrent modifications

func (*Queries) SearchBySourceType

func (q *Queries) SearchBySourceType(ctx context.Context, arg SearchBySourceTypeParams) ([]SearchBySourceTypeRow, error)

===== Optimized RAG Queries (SQL-level filtering) ===== Generic search by source_type using dedicated indexed column

func (*Queries) SearchDocuments

func (q *Queries) SearchDocuments(ctx context.Context, arg SearchDocumentsParams) ([]SearchDocumentsRow, error)

func (*Queries) SearchDocumentsAll

func (q *Queries) SearchDocumentsAll(ctx context.Context, arg SearchDocumentsAllParams) ([]SearchDocumentsAllRow, error)

func (*Queries) UpdateMessageContent

func (q *Queries) UpdateMessageContent(ctx context.Context, arg UpdateMessageContentParams) error

Update message content and mark as completed

func (*Queries) UpdateMessageStatus

func (q *Queries) UpdateMessageStatus(ctx context.Context, arg UpdateMessageStatusParams) error

Update message status (streaming/completed/failed)

func (*Queries) UpdateSessionTitle

func (q *Queries) UpdateSessionTitle(ctx context.Context, arg UpdateSessionTitleParams) error

Update session title (for auto-generation from first message or user edit)

func (*Queries) UpdateSessionUpdatedAt

func (q *Queries) UpdateSessionUpdatedAt(ctx context.Context, arg UpdateSessionUpdatedAtParams) error

func (*Queries) UpsertDocument

func (q *Queries) UpsertDocument(ctx context.Context, arg UpsertDocumentParams) error

Documents queries for sqlc Generated code will be in internal/sqlc/documents.sql.go

func (*Queries) WithTx

func (q *Queries) WithTx(tx pgx.Tx) *Queries

type SearchBySourceTypeParams

type SearchBySourceTypeParams struct {
	QueryEmbedding *pgvector.Vector `json:"query_embedding"`
	SourceType     string           `json:"source_type"`
	ResultLimit    int32            `json:"result_limit"`
}

type SearchBySourceTypeRow

type SearchBySourceTypeRow struct {
	ID         string  `json:"id"`
	Content    string  `json:"content"`
	Metadata   []byte  `json:"metadata"`
	Similarity float64 `json:"similarity"`
}

type SearchDocumentsAllParams

type SearchDocumentsAllParams struct {
	QueryEmbedding *pgvector.Vector `json:"query_embedding"`
	ResultLimit    int32            `json:"result_limit"`
}

type SearchDocumentsAllRow

type SearchDocumentsAllRow struct {
	ID         string  `json:"id"`
	Content    string  `json:"content"`
	Metadata   []byte  `json:"metadata"`
	Similarity float64 `json:"similarity"`
}

type SearchDocumentsParams

type SearchDocumentsParams struct {
	QueryEmbedding *pgvector.Vector `json:"query_embedding"`
	FilterMetadata []byte           `json:"filter_metadata"`
	ResultLimit    int32            `json:"result_limit"`
}

type SearchDocumentsRow

type SearchDocumentsRow struct {
	ID         string  `json:"id"`
	Content    string  `json:"content"`
	Metadata   []byte  `json:"metadata"`
	Similarity float64 `json:"similarity"`
}

type Session

type Session struct {
	ID           uuid.UUID          `json:"id"`
	Title        *string            `json:"title"`
	CreatedAt    pgtype.Timestamptz `json:"created_at"`
	UpdatedAt    pgtype.Timestamptz `json:"updated_at"`
	ModelName    *string            `json:"model_name"`
	SystemPrompt *string            `json:"system_prompt"`
	MessageCount *int32             `json:"message_count"`
}

type UpdateMessageContentParams

type UpdateMessageContentParams struct {
	ID      uuid.UUID `json:"id"`
	Content []byte    `json:"content"`
}

type UpdateMessageStatusParams

type UpdateMessageStatusParams struct {
	ID     uuid.UUID `json:"id"`
	Status string    `json:"status"`
}

type UpdateSessionTitleParams

type UpdateSessionTitleParams struct {
	Title     *string   `json:"title"`
	SessionID uuid.UUID `json:"session_id"`
}

type UpdateSessionUpdatedAtParams

type UpdateSessionUpdatedAtParams struct {
	MessageCount *int32    `json:"message_count"`
	SessionID    uuid.UUID `json:"session_id"`
}

type UpsertDocumentParams

type UpsertDocumentParams struct {
	ID         string           `json:"id"`
	Content    string           `json:"content"`
	Embedding  *pgvector.Vector `json:"embedding"`
	SourceType *string          `json:"source_type"`
	Metadata   []byte           `json:"metadata"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL