package postgres import ( "context" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgconn" ) // pgxPool 是 5 个 repo 共享的最小连接池接口。 // // 为什么需要这个接口:`*pgxpool.Pool` 是具体 struct,不能被 pgxmock 直接 // 替换。把 repo 字段改成接口后,生产代码继续传 *pgxpool.Pool(满足接口), // 测试代码传 pgxmock.PgxPoolIface(同样满足)。 // // 只列出 5 个 repo 实际用到的方法。如果未来用到 Acquire/Stat,在这里追加。 type pgxPool interface { Begin(ctx context.Context) (pgx.Tx, error) Query(ctx context.Context, sql string, args ...any) (pgx.Rows, error) Exec(ctx context.Context, sql string, args ...any) (pgconn.CommandTag, error) }