package dbif

import (
	"fmt"

	"github.com/zu1k/nali/pkg/cdn"

	"github.com/zu1k/nali/pkg/geoip"

	"github.com/zu1k/nali/pkg/ipip"
	"github.com/zu1k/nali/pkg/qqwry"
	"github.com/zu1k/nali/pkg/zxipv6wry"
)

type QueryType uint

const (
	TypeIPv4 = iota
	TypeIPv6
	TypeDomain
)

type DB interface {
	Find(query string, params ...string) (result fmt.Stringer, err error)
}

var (
	_ DB = qqwry.QQwry{}
	_ DB = zxipv6wry.ZXwry{}
	_ DB = ipip.IPIPFree{}
	_ DB = geoip.GeoIP{}
	_ DB = cdn.CDN{}
)