db

package
v0.37.2 Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2026 License: MIT Imports: 14 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 CountHCItemsByStatusOlderThanParams added in v0.37.0

type CountHCItemsByStatusOlderThanParams struct {
	Status    hc.Status `json:"status"`
	UpdatedAt int64     `json:"updated_at"`
}

type CountRecentTodoItemsBySessionParams added in v0.34.0

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

type CreateHCItemParams added in v0.37.0

type CreateHCItemParams struct {
	ID        string      `json:"id"`
	RepoKey   string      `json:"repo_key"`
	EpicID    string      `json:"epic_id"`
	ParentID  string      `json:"parent_id"`
	SessionID string      `json:"session_id"`
	Title     string      `json:"title"`
	Desc      string      `json:"desc"`
	Type      hc.ItemType `json:"type"`
	Status    hc.Status   `json:"status"`
	Depth     int64       `json:"depth"`
	CreatedAt int64       `json:"created_at"`
	UpdatedAt int64       `json:"updated_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 DeleteHCItemsByStatusOlderThanParams added in v0.37.0

type DeleteHCItemsByStatusOlderThanParams struct {
	Status    hc.Status `json:"status"`
	UpdatedAt int64     `json:"updated_at"`
}

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 HcComment added in v0.37.0

type HcComment struct {
	ID        string `json:"id"`
	ItemID    string `json:"item_id"`
	Message   string `json:"message"`
	CreatedAt int64  `json:"created_at"`
}

type HcItem added in v0.37.0

type HcItem struct {
	ID        string      `json:"id"`
	RepoKey   string      `json:"repo_key"`
	EpicID    string      `json:"epic_id"`
	ParentID  string      `json:"parent_id"`
	SessionID string      `json:"session_id"`
	Title     string      `json:"title"`
	Desc      string      `json:"desc"`
	Type      hc.ItemType `json:"type"`
	Status    hc.Status   `json:"status"`
	Depth     int64       `json:"depth"`
	CreatedAt int64       `json:"created_at"`
	UpdatedAt int64       `json:"updated_at"`
}

type InsertHCCommentParams added in v0.37.0

type InsertHCCommentParams struct {
	ID        string `json:"id"`
	ItemID    string `json:"item_id"`
	Message   string `json:"message"`
	CreatedAt int64  `json:"created_at"`
}

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 ListHCItemsByEpicAndStatusParams added in v0.37.0

type ListHCItemsByEpicAndStatusParams struct {
	EpicID string    `json:"epic_id"`
	Status hc.Status `json:"status"`
}

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 NextHCItemForSessionInEpicParams added in v0.37.0

type NextHCItemForSessionInEpicParams struct {
	SessionID string `json:"session_id"`
	EpicID    string `json:"epic_id"`
}

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 PruneHCCommentsByStatusParams added in v0.37.0

type PruneHCCommentsByStatusParams struct {
	Status    hc.Status `json:"status"`
	UpdatedAt int64     `json:"updated_at"`
}

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) CountHCItemsByStatusOlderThan added in v0.37.0

func (q *Queries) CountHCItemsByStatusOlderThan(ctx context.Context, arg CountHCItemsByStatusOlderThanParams) (int64, error)

func (*Queries) CountHCOpenChildren added in v0.37.0

func (q *Queries) CountHCOpenChildren(ctx context.Context, parentID string) (int64, 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) CreateHCItem added in v0.37.0

func (q *Queries) CreateHCItem(ctx context.Context, arg CreateHCItemParams) error

HC Items

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) DeleteHCCommentsByItemID added in v0.37.0

func (q *Queries) DeleteHCCommentsByItemID(ctx context.Context, itemID string) error

func (*Queries) DeleteHCItem added in v0.37.0

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

func (*Queries) DeleteHCItemsByStatusOlderThan added in v0.37.0

func (q *Queries) DeleteHCItemsByStatusOlderThan(ctx context.Context, arg DeleteHCItemsByStatusOlderThanParams) 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) GetAllActiveSessionsWithCounts

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

func (*Queries) GetHCItem added in v0.37.0

func (q *Queries) GetHCItem(ctx context.Context, id string) (HcItem, 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) InsertHCComment added in v0.37.0

func (q *Queries) InsertHCComment(ctx context.Context, arg InsertHCCommentParams) (HcComment, error)

HC Comments

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) ListAllHCItems added in v0.37.0

func (q *Queries) ListAllHCItems(ctx context.Context) ([]HcItem, error)

func (*Queries) ListAllHCItemsByStatus added in v0.37.0

func (q *Queries) ListAllHCItemsByStatus(ctx context.Context, status hc.Status) ([]HcItem, error)

func (*Queries) ListHCBlockedParentIDs added in v0.37.0

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

func (*Queries) ListHCComments added in v0.37.0

func (q *Queries) ListHCComments(ctx context.Context, itemID string) ([]HcComment, error)

func (*Queries) ListHCEpics added in v0.37.0

func (q *Queries) ListHCEpics(ctx context.Context) ([]HcItem, error)

func (*Queries) ListHCEpicsByRepo added in v0.37.0

func (q *Queries) ListHCEpicsByRepo(ctx context.Context, repoKey string) ([]HcItem, error)

func (*Queries) ListHCItemsByEpic added in v0.37.0

func (q *Queries) ListHCItemsByEpic(ctx context.Context, epicID string) ([]HcItem, error)

func (*Queries) ListHCItemsByEpicAndStatus added in v0.37.0

func (q *Queries) ListHCItemsByEpicAndStatus(ctx context.Context, arg ListHCItemsByEpicAndStatusParams) ([]HcItem, error)

func (*Queries) ListHCItemsByRepo added in v0.37.0

func (q *Queries) ListHCItemsByRepo(ctx context.Context, repoKey string) ([]HcItem, error)

func (*Queries) ListHCItemsBySession added in v0.37.0

func (q *Queries) ListHCItemsBySession(ctx context.Context, sessionID string) ([]HcItem, 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) NextHCItemForSession added in v0.37.0

func (q *Queries) NextHCItemForSession(ctx context.Context, sessionID string) (HcItem, error)

func (*Queries) NextHCItemForSessionInEpic added in v0.37.0

func (q *Queries) NextHCItemForSessionInEpic(ctx context.Context, arg NextHCItemForSessionInEpicParams) (HcItem, error)

func (*Queries) PruneHCCommentsByStatus added in v0.37.0

func (q *Queries) PruneHCCommentsByStatus(ctx context.Context, arg PruneHCCommentsByStatusParams) 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) ResumeHCItemForSession added in v0.37.0

func (q *Queries) ResumeHCItemForSession(ctx context.Context, sessionID string) (HcItem, error)

func (*Queries) ResumeHCItemForSessionInEpic added in v0.37.0

func (q *Queries) ResumeHCItemForSessionInEpic(ctx context.Context, arg ResumeHCItemForSessionInEpicParams) (HcItem, 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) UpdateHCItem added in v0.37.0

func (q *Queries) UpdateHCItem(ctx context.Context, arg UpdateHCItemParams) 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 ResumeHCItemForSessionInEpicParams added in v0.37.0

type ResumeHCItemForSessionInEpicParams struct {
	SessionID string `json:"session_id"`
	EpicID    string `json:"epic_id"`
}

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"`
	CloneStrategy string         `json:"clone_strategy"`
	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"`
	CloneStrategy string         `json:"clone_strategy"`
}

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 UpdateHCItemParams added in v0.37.0

type UpdateHCItemParams struct {
	Status    hc.Status `json:"status"`
	SessionID string    `json:"session_id"`
	UpdatedAt int64     `json:"updated_at"`
	ID        string    `json:"id"`
}

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