package util

import (
	"context"
	"database/sql"
)

type NoopDB struct{}

var _ DB = (*NoopDB)(nil)

func (n NoopDB) Ping() error {
	return nil
}

func (n NoopDB) Close() error {
	return nil
}

func (n NoopDB) ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) {
	return nil, nil
}

func (n NoopDB) Exec(query string, args ...any) (sql.Result, error) {
	return nil, nil
}

func (n NoopDB) QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error) {
	return nil, nil
}

func (n NoopDB) Query(query string, args ...any) (*sql.Rows, error) {
	return nil, nil
}

func (n NoopDB) QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row {
	return nil
}

func (n NoopDB) QueryRow(query string, args ...any) *sql.Row {
	return nil
}

func (n NoopDB) BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error) {
	return nil, nil
}

func (n NoopDB) Begin() (*sql.Tx, error) {
	return nil, nil
}
