package store import ( "context" "fmt" "github.com/jackc/pgx/v5/pgxpool" ) // Store hält den Verbindungspool zur Postgres-Datenbank. type Store struct { Pool *pgxpool.Pool } // Open baut den Verbindungspool auf und prüft ihn mit einem Ping. func Open(ctx context.Context, databaseURL string) (*Store, error) { pool, err := pgxpool.New(ctx, databaseURL) if err != nil { return nil, fmt.Errorf("store: open pool: %w", err) } if err := pool.Ping(ctx); err != nil { pool.Close() return nil, fmt.Errorf("store: ping: %w", err) } return &Store{Pool: pool}, nil } // Close gibt den Verbindungspool frei. func (s *Store) Close() { s.Pool.Close() }