db

package
v0.34.0 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MigrateDown added in v0.34.0

func MigrateDown(ctx context.Context, conn *sql.DB, n int) error

MigrateDown reverts the last n applied migrations in reverse version order.

Types

type AcknowledgeMessagesParams

type AcknowledgeMessagesParams struct {
	MessageID  string `json:"message_id"`
	ConsumerID string `json:"consumer_id"`
	ReadAt     int64  `json:"read_at"`
}

type CountRecentTodoItemsBySessionParams added in v0.34.0

type CountRecentTodoItemsBySessionParams struct {
	SessionID string `json:"session_id"`
	CreatedAt int64  `json:"created_at"`
}

type CreateReviewSessionParams

type CreateReviewSessionParams struct {
	ID           string        `json:"id"`
	DocumentPath string        `json:"document_path"`
	ContentHash  string        `json:"content_hash"`
	CreatedAt    int64         `json:"created_at"`
	FinalizedAt  sql.NullInt64 `json:"finalized_at"`
}

type CreateTodoItemParams added in v0.34.0

type CreateTodoItemParams struct {
	ID        string `json:"id"`
	SessionID string `json:"session_id"`
	Source    string `json:"source"`
	Title     string `json:"title"`
	Uri       string `json:"uri"`
	Status    string `json:"status"`
	CreatedAt int64  `json:"created_at"`
	UpdatedAt int64  `json:"updated_at"`
}

type DB

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

DB wraps a SQL database connection with sqlc queries.

func Open

func Open(dataDir string, opts OpenOptions) (*DB, error)

Open creates a new database connection with the given options. The database file is created in the specified data directory. Uses minimal connection pool (default 2) to prevent transaction deadlocks while avoiding unnecessary connection overhead. WAL mode and busy_timeout handle concurrent access at the SQLite level.

func (*DB) Close

func (db *DB) Close() error

Close closes the database connection.

func (*DB) Conn added in v0.34.0

func (db *DB) Conn() *sql.DB

Conn returns the underlying *sql.DB connection.

func (*DB) Queries

func (db *DB) Queries() *Queries

Queries returns the sqlc queries interface.

func (*DB) WithTx

func (db *DB) WithTx(ctx context.Context, fn func(*Queries) error) error

WithTx executes a function within a transaction. If the function returns an error, the transaction is rolled back.

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type DeleteOldestMessagesInTopicParams

type DeleteOldestMessagesInTopicParams struct {
	Topic string `json:"topic"`
	Limit int64  `json:"limit"`
}

type DeleteReviewSessionsByDocPathParams

type DeleteReviewSessionsByDocPathParams struct {
	DocumentPath string `json:"document_path"`
	ContentHash  string `json:"content_hash"`
}

type FinalizeReviewSessionParams

type FinalizeReviewSessionParams struct {
	FinalizedAt sql.NullInt64 `json:"finalized_at"`
	ID          string        `json:"id"`
}

type GetAllActiveSessionsWithCountsRow

type GetAllActiveSessionsWithCountsRow struct {
	ID           string        `json:"id"`
	DocumentPath string        `json:"document_path"`
	ContentHash  string        `json:"content_hash"`
	CreatedAt    int64         `json:"created_at"`
	FinalizedAt  sql.NullInt64 `json:"finalized_at"`
	CommentCount int64         `json:"comment_count"`
}

type GetReviewSessionByDocPathAndHashParams

type GetReviewSessionByDocPathAndHashParams struct {
	DocumentPath string `json:"document_path"`
	ContentHash  string `json:"content_hash"`
}

type GetUnreadMessagesParams

type GetUnreadMessagesParams struct {
	ConsumerID string `json:"consumer_id"`
	Topic      string `json:"topic"`
}

type InsertNotificationParams

type InsertNotificationParams struct {
	Level     string `json:"level"`
	Message   string `json:"message"`
	CreatedAt int64  `json:"created_at"`
}

type KVSetParams

type KVSetParams struct {
	Key       string        `json:"key"`
	Value     []byte        `json:"value"`
	ExpiresAt sql.NullInt64 `json:"expires_at"`
	CreatedAt int64         `json:"created_at"`
	UpdatedAt int64         `json:"updated_at"`
}

type KvStore

type KvStore struct {
	Key       string        `json:"key"`
	Value     []byte        `json:"value"`
	ExpiresAt sql.NullInt64 `json:"expires_at"`
	CreatedAt int64         `json:"created_at"`
	UpdatedAt int64         `json:"updated_at"`
}

type Message

type Message struct {
	ID        string         `json:"id"`
	Topic     string         `json:"topic"`
	Payload   string         `json:"payload"`
	Sender    sql.NullString `json:"sender"`
	SessionID sql.NullString `json:"session_id"`
	CreatedAt int64          `json:"created_at"`
}

type MessageRead

type MessageRead struct {
	MessageID  string `json:"message_id"`
	ConsumerID string `json:"consumer_id"`
	ReadAt     int64  `json:"read_at"`
}

type Migration added in v0.34.0

type Migration struct {
	Version int
	Name    string
	UpSQL   string
	DownSQL string
}

Migration represents a single versioned migration with up and down SQL.

type Notification

type Notification struct {
	ID        int64  `json:"id"`
	Level     string `json:"level"`
	Message   string `json:"message"`
	CreatedAt int64  `json:"created_at"`
}

type OpenOptions

type OpenOptions struct {
	MaxOpenConns int // max open connections (default: 2)
	MaxIdleConns int // max idle connections (default: 2)
	BusyTimeout  int // busy timeout in milliseconds (default: 5000)
}

OpenOptions configures database connection settings.

func DefaultOpenOptions

func DefaultOpenOptions() OpenOptions

DefaultOpenOptions returns the recommended defaults for SQLite.

type PublishMessageParams

type PublishMessageParams struct {
	ID        string         `json:"id"`
	Topic     string         `json:"topic"`
	Payload   string         `json:"payload"`
	Sender    sql.NullString `json:"sender"`
	SessionID sql.NullString `json:"session_id"`
	CreatedAt int64          `json:"created_at"`
}

type Queries

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

func New

func New(db DBTX) *Queries

func (*Queries) AcknowledgeMessages

func (q *Queries) AcknowledgeMessages(ctx context.Context, arg AcknowledgeMessagesParams) error

func (*Queries) CountMessagesInTopic

func (q *Queries) CountMessagesInTopic(ctx context.Context, topic string) (int64, error)

func (*Queries) CountNotifications

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

func (*Queries) CountOpenTodoItems added in v0.34.0

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

func (*Queries) CountPendingTodoItems added in v0.34.0

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

func (*Queries) CountPrunableMessages

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

func (*Queries) CountRecentTodoItemsBySession added in v0.34.0

func (q *Queries) CountRecentTodoItemsBySession(ctx context.Context, arg CountRecentTodoItemsBySessionParams) (int64, error)

func (*Queries) CreateReviewSession

func (q *Queries) CreateReviewSession(ctx context.Context, arg CreateReviewSessionParams) error

func (*Queries) CreateTodoItem added in v0.34.0

func (q *Queries) CreateTodoItem(ctx context.Context, arg CreateTodoItemParams) error

Todo Items

func (*Queries) DeleteAllNotifications

func (q *Queries) DeleteAllNotifications(ctx context.Context) error

func (*Queries) DeleteOldestMessagesInTopic

func (q *Queries) DeleteOldestMessagesInTopic(ctx context.Context, arg DeleteOldestMessagesInTopicParams) error

func (*Queries) DeleteReviewComment

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

func (*Queries) DeleteReviewSession

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

func (*Queries) DeleteReviewSessionsByDocPath

func (q *Queries) DeleteReviewSessionsByDocPath(ctx context.Context, arg DeleteReviewSessionsByDocPathParams) error

func (*Queries) DeleteSession

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

func (*Queries) DeleteTodoItem added in v0.34.0

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

func (*Queries) FinalizeReviewSession

func (q *Queries) FinalizeReviewSession(ctx context.Context, arg FinalizeReviewSessionParams) error

func (*Queries) FindRecyclableSession

func (q *Queries) FindRecyclableSession(ctx context.Context, remote string) (Session, error)

func (*Queries) GetAllActiveSessionsWithCounts

func (q *Queries) GetAllActiveSessionsWithCounts(ctx context.Context) ([]GetAllActiveSessionsWithCountsRow, error)

func (*Queries) GetReviewSessionByDocPath

func (q *Queries) GetReviewSessionByDocPath(ctx context.Context, documentPath string) (ReviewSession, error)

func (*Queries) GetReviewSessionByDocPathAndHash

func (q *Queries) GetReviewSessionByDocPathAndHash(ctx context.Context, arg GetReviewSessionByDocPathAndHashParams) (ReviewSession, error)

func (*Queries) GetSession

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

func (*Queries) GetTodoItem added in v0.34.0

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

func (*Queries) GetUnreadMessages

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

func (*Queries) InsertNotification

func (q *Queries) InsertNotification(ctx context.Context, arg InsertNotificationParams) (int64, error)

func (*Queries) KVDelete

func (q *Queries) KVDelete(ctx context.Context, key string) error

func (*Queries) KVGet

func (q *Queries) KVGet(ctx context.Context, key string) (KvStore, error)

func (*Queries) KVGetRaw

func (q *Queries) KVGetRaw(ctx context.Context, key string) (KvStore, error)

func (*Queries) KVHas

func (q *Queries) KVHas(ctx context.Context, key string) (int64, error)

func (*Queries) KVListKeys

func (q *Queries) KVListKeys(ctx context.Context, expiresAt sql.NullInt64) ([]string, error)

func (*Queries) KVSet

func (q *Queries) KVSet(ctx context.Context, arg KVSetParams) error

func (*Queries) KVSweepExpired

func (q *Queries) KVSweepExpired(ctx context.Context, expiresAt sql.NullInt64) error

func (*Queries) ListNotifications

func (q *Queries) ListNotifications(ctx context.Context) ([]Notification, error)

func (*Queries) ListReviewComments

func (q *Queries) ListReviewComments(ctx context.Context, sessionID string) ([]ReviewComment, error)

func (*Queries) ListSessions

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

func (*Queries) ListTodoItems added in v0.34.0

func (q *Queries) ListTodoItems(ctx context.Context) ([]TodoItem, error)

func (*Queries) ListTodoItemsByStatus added in v0.34.0

func (q *Queries) ListTodoItemsByStatus(ctx context.Context, status string) ([]TodoItem, error)

func (*Queries) ListTopics

func (q *Queries) ListTopics(ctx context.Context) ([]string, error)

func (*Queries) PruneMessages

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

func (*Queries) PublishMessage

func (q *Queries) PublishMessage(ctx context.Context, arg PublishMessageParams) error

func (*Queries) SaveReviewComment

func (q *Queries) SaveReviewComment(ctx context.Context, arg SaveReviewCommentParams) error

func (*Queries) SaveSession

func (q *Queries) SaveSession(ctx context.Context, arg SaveSessionParams) error

func (*Queries) SubscribeToTopic

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

func (*Queries) UpdateReviewComment

func (q *Queries) UpdateReviewComment(ctx context.Context, arg UpdateReviewCommentParams) error

func (*Queries) UpdateTodoItemStatus added in v0.34.0

func (q *Queries) UpdateTodoItemStatus(ctx context.Context, arg UpdateTodoItemStatusParams) error

func (*Queries) WithTx

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

type ReviewComment

type ReviewComment struct {
	ID          string `json:"id"`
	SessionID   string `json:"session_id"`
	StartLine   int64  `json:"start_line"`
	EndLine     int64  `json:"end_line"`
	ContextText string `json:"context_text"`
	CommentText string `json:"comment_text"`
	CreatedAt   int64  `json:"created_at"`
}

type ReviewSession

type ReviewSession struct {
	ID           string        `json:"id"`
	DocumentPath string        `json:"document_path"`
	ContentHash  string        `json:"content_hash"`
	CreatedAt    int64         `json:"created_at"`
	FinalizedAt  sql.NullInt64 `json:"finalized_at"`
}

type SaveReviewCommentParams

type SaveReviewCommentParams struct {
	ID          string `json:"id"`
	SessionID   string `json:"session_id"`
	StartLine   int64  `json:"start_line"`
	EndLine     int64  `json:"end_line"`
	ContextText string `json:"context_text"`
	CommentText string `json:"comment_text"`
	CreatedAt   int64  `json:"created_at"`
}

type SaveSessionParams

type SaveSessionParams struct {
	ID        string         `json:"id"`
	Name      string         `json:"name"`
	Slug      string         `json:"slug"`
	Path      string         `json:"path"`
	Remote    string         `json:"remote"`
	State     string         `json:"state"`
	Metadata  sql.NullString `json:"metadata"`
	CreatedAt int64          `json:"created_at"`
	UpdatedAt int64          `json:"updated_at"`
}

type Session

type Session struct {
	ID        string         `json:"id"`
	Name      string         `json:"name"`
	Slug      string         `json:"slug"`
	Path      string         `json:"path"`
	Remote    string         `json:"remote"`
	State     string         `json:"state"`
	Metadata  sql.NullString `json:"metadata"`
	CreatedAt int64          `json:"created_at"`
	UpdatedAt int64          `json:"updated_at"`
}

type SubscribeToTopicParams

type SubscribeToTopicParams struct {
	Topic     string `json:"topic"`
	CreatedAt int64  `json:"created_at"`
}

type TodoItem added in v0.34.0

type TodoItem struct {
	ID          string `json:"id"`
	SessionID   string `json:"session_id"`
	Source      string `json:"source"`
	Title       string `json:"title"`
	Uri         string `json:"uri"`
	Status      string `json:"status"`
	CreatedAt   int64  `json:"created_at"`
	UpdatedAt   int64  `json:"updated_at"`
	CompletedAt int64  `json:"completed_at"`
}

type Topic

type Topic struct {
	Name      string      `json:"name"`
	UpdatedAt interface{} `json:"updated_at"`
}

type UpdateReviewCommentParams

type UpdateReviewCommentParams struct {
	CommentText string `json:"comment_text"`
	ID          string `json:"id"`
}

type UpdateTodoItemStatusParams added in v0.34.0

type UpdateTodoItemStatusParams struct {
	Status      string `json:"status"`
	UpdatedAt   int64  `json:"updated_at"`
	CompletedAt int64  `json:"completed_at"`
	ID          string `json:"id"`
}

Jump to

Keyboard shortcuts

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