package db import ( "context" "time" "github.com/jackc/pgx/v5/pgxpool" ) type DB struct { Pool *pgxpool.Pool } func New(ctx context.Context, dsn string) (*DB, error) { cfg, err := pgxpool.ParseConfig(dsn) if err != nil { return nil, err } cfg.MaxConns = 25 cfg.MinConns = 2 cfg.MaxConnLifetime = 5 * time.Minute pool, err := pgxpool.NewWithConfig(ctx, cfg) if err != nil { return nil, err } if err := pool.Ping(ctx); err != nil { return nil, err } return &DB{Pool: pool}, nil } func (d *DB) Close() { d.Pool.Close() }