// Package db provides the PostgreSQL connection via GORM. package db import ( "fmt" "gorm.io/driver/postgres" "gorm.io/gorm" gormlogger "gorm.io/gorm/logger" ) func Connect(databaseURL string, debug bool) (*gorm.DB, error) { logLevel := gormlogger.Silent if debug { logLevel = gormlogger.Warn } db, err := gorm.Open(postgres.Open(databaseURL), &gorm.Config{ Logger: gormlogger.Default.LogMode(logLevel), }) if err != nil { return nil, fmt.Errorf("connect postgres: %w", err) } sqlDB, err := db.DB() if err != nil { return nil, fmt.Errorf("get sql.DB: %w", err) } if err := sqlDB.Ping(); err != nil { return nil, fmt.Errorf("ping postgres: %w", err) } return db, nil }