mirror of
https://github.com/DeBrosOfficial/network.git
synced 2026-01-30 14:13:04 +00:00
25 lines
1.2 KiB
Go
25 lines
1.2 KiB
Go
// Package database provides a generic database interface for the deployment system.
|
|
// This allows different database implementations (RQLite, SQLite, etc.) to be used
|
|
// interchangeably throughout the deployment handlers.
|
|
package database
|
|
|
|
import "context"
|
|
|
|
// Database is a generic interface for database operations
|
|
// It provides methods for executing queries and commands that can be implemented
|
|
// by various database clients (RQLite, SQLite, etc.)
|
|
type Database interface {
|
|
// Query executes a SELECT query and scans results into dest
|
|
// dest should be a pointer to a slice of structs with `db` tags
|
|
Query(ctx context.Context, dest interface{}, query string, args ...interface{}) error
|
|
|
|
// QueryOne executes a SELECT query and scans a single result into dest
|
|
// dest should be a pointer to a struct with `db` tags
|
|
// Returns an error if no rows are found or multiple rows are returned
|
|
QueryOne(ctx context.Context, dest interface{}, query string, args ...interface{}) error
|
|
|
|
// Exec executes an INSERT, UPDATE, or DELETE query
|
|
// Returns the result (typically last insert ID or rows affected)
|
|
Exec(ctx context.Context, query string, args ...interface{}) (interface{}, error)
|
|
}
|