db

package
v0.31.1 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2026 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 AcknowledgeMessagesParams

type AcknowledgeMessagesParams struct {
	MessageID  string `json:"message_id"`
	ConsumerID string `json:"consumer_id"`
	ReadAt     int64  `json:"read_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 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) 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 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) CountPrunableMessages

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

func (*Queries) CreateReviewSession

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

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) 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) 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) 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) 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 SchemaVersion

type SchemaVersion struct {
	Version int64 `json:"version"`
}

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 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"`
}

Jump to

Keyboard shortcuts

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