package repository import ( "context" "time" dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db" "github.com/jackc/pgx/v5/pgxpool" ) type Store struct { queries *dbgen.Queries conn *pgxpool.Pool } func NewStore(conn *pgxpool.Pool) *Store { queries := dbgen.New(conn) return &Store{ queries: queries, conn: conn, } } func OpenDB(url string) (*pgxpool.Pool, func(), error) { ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() conn, err := pgxpool.New(ctx, url) if err != nil { return nil, func() {}, err } if err := conn.Ping(ctx); err != nil { return nil, func() {}, err } return conn, func() { conn.Close() }, nil }