wp-go/model/model.go
2023-05-30 20:02:52 +08:00

45 lines
716 B
Go

package model
import (
"context"
)
var _ ParseWhere = SqlBuilder{}
var globalBb dbQuery
func InitDB(db dbQuery) {
globalBb = db
}
type QueryFn func(context.Context, any, string, ...any) error
type Model interface {
PrimaryKey() string
Table() string
}
type ParseWhere interface {
ParseWhere(*[][]any) (string, []any, error)
}
type AndWhere interface {
AndWhere(field, operator, val, fieldType string) ParseWhere
}
type dbQuery interface {
Select(context.Context, any, string, ...any) error
Get(context.Context, any, string, ...any) error
}
type SqlBuilder [][]string
func Table[T Model]() string {
var r T
return r.Table()
}
func PrimaryKey[T Model]() string {
var r T
return r.PrimaryKey()
}