package db import ( "context" "time" "github.com/jackc/pgx/v5/pgxpool" ) type Config struct { DSN string MaxConns int32 MinConns int32 MaxConnLifetime time.Duration MaxConnIdleTime time.Duration } func NewPool(ctx context.Context, cfg Config) (*pgxpool.Pool, error) { poolCfg, err := pgxpool.ParseConfig(cfg.DSN) if err != nil { return nil, err } poolCfg.MaxConns = cfg.MaxConns poolCfg.MinConns = cfg.MinConns poolCfg.MaxConnLifetime = cfg.MaxConnLifetime poolCfg.MaxConnIdleTime = cfg.MaxConnIdleTime return pgxpool.NewWithConfig(ctx, poolCfg) }