db

package
v0.0.0-...-a3cd39f Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2025 License: AGPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Connect

func Connect(ctx context.Context, logger *slog.Logger, config *DBConfig) (*sql.DB, error)

Connect initializes and returns a new database connection pool. This is the basic connection function without any automatic operations.

func ConnectAndMigrate

func ConnectAndMigrate(ctx context.Context, logger *slog.Logger, config *DBConfig) (*sql.DB, error)

ConnectAndMigrate initializes a database connection and automatically runs migrations. This is the main function for application startup.

func MigrationStatus

func MigrationStatus(db *sql.DB) error

MigrationStatus shows the status of all migrations

func RollbackMigration

func RollbackMigration(db *sql.DB) error

RollbackMigration rolls back the last migration

func RunMigrations

func RunMigrations(db *sql.DB) error

RunMigrations runs all pending migrations

Types

type CreatePaymentParams

type CreatePaymentParams struct {
	UserID             int64          `json:"user_id"`
	Amount             int64          `json:"amount"`
	Currency           string         `json:"currency"`
	Status             string         `json:"status"`
	PaymentProcessorID sql.NullString `json:"payment_processor_id"`
	PaidAt             sql.NullTime   `json:"paid_at"`
}

type CreateSiteParams

type CreateSiteParams struct {
	UserID int64  `json:"user_id"`
	Domain string `json:"domain"`
}

type CreateUserParams

type CreateUserParams struct {
	OidcSubject string `json:"oidc_subject"`
	Username    string `json:"username"`
	Email       string `json:"email"`
}

type DBConfig

type DBConfig struct {
	DSN             string        // Data Source Name for SQLite
	MaxOpenConns    int           // Maximum number of open connections
	MaxIdleConns    int           // Maximum number of idle connections
	ConnMaxLifetime time.Duration // Maximum lifetime of connections
	ConnMaxIdleTime time.Duration // Maximum idle time for connections
	MaxRetries      int           // Maximum number of connection retry attempts
	RetryDelay      time.Duration // Delay between retry attempts
}

DBConfig holds database configuration.

func DefaultDBConfig

func DefaultDBConfig(dsn string) *DBConfig

DefaultDBConfig returns a DBConfig with sensible defaults for SQLite.

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 Payment

type Payment struct {
	ID                 int64          `json:"id"`
	UserID             int64          `json:"user_id"`
	Amount             int64          `json:"amount"`
	Currency           string         `json:"currency"`
	Status             string         `json:"status"`
	PaymentProcessorID sql.NullString `json:"payment_processor_id"`
	PaidAt             sql.NullTime   `json:"paid_at"`
	CreatedAt          time.Time      `json:"created_at"`
	UpdatedAt          time.Time      `json:"updated_at"`
}

type Querier

type Querier interface {
	CreatePayment(ctx context.Context, arg CreatePaymentParams) (Payment, error)
	CreateSite(ctx context.Context, arg CreateSiteParams) (Site, error)
	CreateUser(ctx context.Context, arg CreateUserParams) (User, error)
	DeleteSite(ctx context.Context, id int64) error
	DeleteUser(ctx context.Context, id int64) error
	GetPaymentByID(ctx context.Context, id int64) (Payment, error)
	GetPaymentsByUserID(ctx context.Context, userID int64) ([]Payment, error)
	GetSiteByDomain(ctx context.Context, domain string) (Site, error)
	GetSiteByID(ctx context.Context, id int64) (Site, error)
	GetSitesByUserID(ctx context.Context, userID int64) ([]Site, error)
	GetUserByID(ctx context.Context, id int64) (User, error)
	GetUserByOIDCSubject(ctx context.Context, oidcSubject string) (User, error)
	ListUsers(ctx context.Context) ([]User, error)
	UpdatePaymentStatus(ctx context.Context, arg UpdatePaymentStatusParams) (Payment, error)
	UpdateUser(ctx context.Context, arg UpdateUserParams) (User, error)
}

type Queries

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

func New

func New(db DBTX) *Queries

func (*Queries) CreatePayment

func (q *Queries) CreatePayment(ctx context.Context, arg CreatePaymentParams) (Payment, error)

func (*Queries) CreateSite

func (q *Queries) CreateSite(ctx context.Context, arg CreateSiteParams) (Site, error)

func (*Queries) CreateUser

func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error)

func (*Queries) DeleteSite

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

func (*Queries) DeleteUser

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

func (*Queries) GetPaymentByID

func (q *Queries) GetPaymentByID(ctx context.Context, id int64) (Payment, error)

func (*Queries) GetPaymentsByUserID

func (q *Queries) GetPaymentsByUserID(ctx context.Context, userID int64) ([]Payment, error)

func (*Queries) GetSiteByDomain

func (q *Queries) GetSiteByDomain(ctx context.Context, domain string) (Site, error)

func (*Queries) GetSiteByID

func (q *Queries) GetSiteByID(ctx context.Context, id int64) (Site, error)

func (*Queries) GetSitesByUserID

func (q *Queries) GetSitesByUserID(ctx context.Context, userID int64) ([]Site, error)

func (*Queries) GetUserByID

func (q *Queries) GetUserByID(ctx context.Context, id int64) (User, error)

func (*Queries) GetUserByOIDCSubject

func (q *Queries) GetUserByOIDCSubject(ctx context.Context, oidcSubject string) (User, error)

func (*Queries) ListUsers

func (q *Queries) ListUsers(ctx context.Context) ([]User, error)

func (*Queries) UpdatePaymentStatus

func (q *Queries) UpdatePaymentStatus(ctx context.Context, arg UpdatePaymentStatusParams) (Payment, error)

func (*Queries) UpdateUser

func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) (User, error)

func (*Queries) WithTx

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

type Site

type Site struct {
	ID        int64     `json:"id"`
	UserID    int64     `json:"user_id"`
	Domain    string    `json:"domain"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
}

type UpdatePaymentStatusParams

type UpdatePaymentStatusParams struct {
	Status  string       `json:"status"`
	Column2 interface{}  `json:"column_2"`
	PaidAt  sql.NullTime `json:"paid_at"`
	ID      int64        `json:"id"`
}

type UpdateUserParams

type UpdateUserParams struct {
	Username string `json:"username"`
	Email    string `json:"email"`
	ID       int64  `json:"id"`
}

type User

type User struct {
	ID          int64     `json:"id"`
	OidcSubject string    `json:"oidc_subject"`
	Username    string    `json:"username"`
	Email       string    `json:"email"`
	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`
}

Jump to

Keyboard shortcuts

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