Files
member-console/internal/db/db.go
2026-03-24 17:35:14 -05:00

32 lines
744 B
Go

package db
import (
"context"
"database/sql"
)
// DBTX is the interface that both *sql.DB and *sql.Tx satisfy.
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
}
// New creates a new Queries instance.
func New(db DBTX) *Queries {
return &Queries{db: db}
}
// Queries provides database query methods.
type Queries struct {
db DBTX
}
// WithTx returns a new Queries instance backed by the given transaction.
func (q *Queries) WithTx(tx *sql.Tx) *Queries {
return &Queries{
db: tx,
}
}