package database import ( "context" "database/sql" "fmt" "time" _ "github.com/jackc/pgx/v5/stdlib" ) func New(ctx context.Context, connURL string) (*sql.DB, error) { db, err := sql.Open("pgx", connURL) if err != nil { return nil, fmt.Errorf("failed to connect to database: %w", err) } db.SetMaxOpenConns(10) db.SetMaxIdleConns(10) db.SetConnMaxLifetime(5 * time.Minute) db.SetConnMaxIdleTime(5 * time.Minute) if err := db.PingContext(ctx); err != nil { return nil, fmt.Errorf("database unreachable: %w", err) } return db, nil }