database

package
v0.0.0-...-1e0776f Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AutoMigrate

func AutoMigrate(db *sql.DB, dbConfig *Config, migrationConfig *MigrationConfig, logger *slog.Logger) error

AutoMigrate runs database migrations if AUTO_MIGRATE is enabled

func Connect

func Connect(config *Config) (*sql.DB, error)

Connect establishes a database connection based on the configuration

Types

type Config

type Config struct {
	Driver   string // "sqlite" or "postgres"
	Host     string // PostgreSQL host
	Port     string // PostgreSQL port
	User     string // PostgreSQL user
	Password string // PostgreSQL password
	DBName   string // Database name (or SQLite file path)
	SSLMode  string // PostgreSQL SSL mode (disable, require, verify-ca, verify-full)

	// Connection pool settings
	MaxOpenConns    int
	MaxIdleConns    int
	ConnMaxLifetime time.Duration
	ConnMaxIdleTime time.Duration
}

Config holds database configuration

func LoadConfigFromEnv

func LoadConfigFromEnv() *Config

LoadConfigFromEnv loads database configuration from environment variables

func (*Config) Validate

func (c *Config) Validate() error

Validate checks if the configuration is valid

type MigrationConfig

type MigrationConfig struct {
	AutoMigrate         bool   // Whether to run migrations automatically on startup
	MigrationsPath      string // Path to migration files
	BackupBeforeMigrate bool   // Whether to backup database before running migrations
	BackupPath          string // Path to store backups
}

MigrationConfig holds configuration for database migrations

func LoadMigrationConfigFromEnv

func LoadMigrationConfigFromEnv() *MigrationConfig

LoadMigrationConfigFromEnv loads migration configuration from environment variables

type PlaybackPreferencesRepository

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

PlaybackPreferencesRepository implements progress.PlaybackPreferencesRepository using SQLite.

func NewPlaybackPreferencesRepository

func NewPlaybackPreferencesRepository(db *sql.DB) *PlaybackPreferencesRepository

NewPlaybackPreferencesRepository creates a new PlaybackPreferencesRepository.

func (*PlaybackPreferencesRepository) Delete

func (r *PlaybackPreferencesRepository) Delete(ctx context.Context, userID, mediaID int64, deviceProfile string) error

Delete removes preferences for a specific user, media, and device profile.

func (*PlaybackPreferencesRepository) DeleteByMediaID

func (r *PlaybackPreferencesRepository) DeleteByMediaID(ctx context.Context, mediaID int64) error

DeleteByMediaID removes all preferences for a media item.

func (*PlaybackPreferencesRepository) DeleteByUserID

func (r *PlaybackPreferencesRepository) DeleteByUserID(ctx context.Context, userID int64) error

DeleteByUserID removes all preferences for a user.

func (*PlaybackPreferencesRepository) Get

func (r *PlaybackPreferencesRepository) Get(ctx context.Context, userID, mediaID int64, deviceProfile string) (*progress.PlaybackPreferences, error)

Get retrieves preferences for a specific user, media, and device profile.

func (*PlaybackPreferencesRepository) Upsert

Upsert creates or updates preferences.

Directories

Path Synopsis
Package unified provides a database-agnostic interface for sqlc-generated code.
Package unified provides a database-agnostic interface for sqlc-generated code.

Jump to

Keyboard shortcuts

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