// Code generated by depstubber. DO NOT EDIT.
// This is a simple stub for github.com/astaxie/beego/orm, strictly for use in testing.

// See the LICENSE file for information about the licensing of the original library.
// Source: github.com/astaxie/beego/orm (exports: DB,QueryBuilder,Ormer,QuerySeter,Condition,Fielder,RawSeter,JSONField,JsonbField,TextField; functions: )

// Package orm is a stub of github.com/astaxie/beego/orm, generated by depstubber.
package orm

import (
	context "context"
	sql "database/sql"
	sync "sync"
)

type Condition struct{}

func (_ Condition) And(_ string, _ ...interface{}) *Condition {
	return nil
}

func (_ Condition) AndNot(_ string, _ ...interface{}) *Condition {
	return nil
}

func (_ Condition) Or(_ string, _ ...interface{}) *Condition {
	return nil
}

func (_ Condition) OrNot(_ string, _ ...interface{}) *Condition {
	return nil
}

func (_ Condition) Raw(_ string, _ string) *Condition {
	return nil
}

func (_ *Condition) AndCond(_ *Condition) *Condition {
	return nil
}

func (_ *Condition) AndNotCond(_ *Condition) *Condition {
	return nil
}

func (_ *Condition) IsEmpty() bool {
	return false
}

func (_ *Condition) OrCond(_ *Condition) *Condition {
	return nil
}

func (_ *Condition) OrNotCond(_ *Condition) *Condition {
	return nil
}

type DB struct {
	RWMutex *sync.RWMutex
	DB      *sql.DB
}

func (_ DB) Lock() {}

func (_ DB) RLock() {}

func (_ DB) RLocker() sync.Locker {
	return nil
}

func (_ DB) RUnlock() {}

func (_ DB) Unlock() {}

func (_ *DB) Begin() (*sql.Tx, error) {
	return nil, nil
}

func (_ *DB) BeginTx(_ context.Context, _ *sql.TxOptions) (*sql.Tx, error) {
	return nil, nil
}

func (_ *DB) Exec(_ string, _ ...interface{}) (sql.Result, error) {
	return nil, nil
}

func (_ *DB) ExecContext(_ context.Context, _ string, _ ...interface{}) (sql.Result, error) {
	return nil, nil
}

func (_ *DB) Prepare(_ string) (*sql.Stmt, error) {
	return nil, nil
}

func (_ *DB) PrepareContext(_ context.Context, _ string) (*sql.Stmt, error) {
	return nil, nil
}

func (_ *DB) Query(_ string, _ ...interface{}) (*sql.Rows, error) {
	return nil, nil
}

func (_ *DB) QueryContext(_ context.Context, _ string, _ ...interface{}) (*sql.Rows, error) {
	return nil, nil
}

func (_ *DB) QueryRow(_ string, _ ...interface{}) *sql.Row {
	return nil
}

func (_ *DB) QueryRowContext(_ context.Context, _ string, _ ...interface{}) *sql.Row {
	return nil
}

type Driver interface {
	Name() string
	Type() DriverType
}

type DriverType int

type Fielder interface {
	FieldType() int
	RawValue() interface{}
	SetRaw(_ interface{}) error
	String() string
}

type Inserter interface {
	Close() error
	Insert(_ interface{}) (int64, error)
}

type JSONField string

func (_ JSONField) Value() string {
	return ""
}

func (_ *JSONField) FieldType() int {
	return 0
}

func (_ *JSONField) RawValue() interface{} {
	return nil
}

func (_ *JSONField) Set(_ string) {}

func (_ *JSONField) SetRaw(_ interface{}) error {
	return nil
}

func (_ *JSONField) String() string {
	return ""
}

type JsonbField string

func (_ JsonbField) Value() string {
	return ""
}

func (_ *JsonbField) FieldType() int {
	return 0
}

func (_ *JsonbField) RawValue() interface{} {
	return nil
}

func (_ *JsonbField) Set(_ string) {}

func (_ *JsonbField) SetRaw(_ interface{}) error {
	return nil
}

func (_ *JsonbField) String() string {
	return ""
}

type Ormer interface {
	Begin() error
	BeginTx(_ context.Context, _ *sql.TxOptions) error
	Commit() error
	DBStats() *sql.DBStats
	Delete(_ interface{}, _ ...string) (int64, error)
	Driver() Driver
	Insert(_ interface{}) (int64, error)
	InsertMulti(_ int, _ interface{}) (int64, error)
	InsertOrUpdate(_ interface{}, _ ...string) (int64, error)
	LoadRelated(_ interface{}, _ string, _ ...interface{}) (int64, error)
	QueryM2M(_ interface{}, _ string) QueryM2Mer
	QueryTable(_ interface{}) QuerySeter
	Raw(_ string, _ ...interface{}) RawSeter
	Read(_ interface{}, _ ...string) error
	ReadForUpdate(_ interface{}, _ ...string) error
	ReadOrCreate(_ interface{}, _ string, _ ...string) (bool, int64, error)
	Rollback() error
	Update(_ interface{}, _ ...string) (int64, error)
	Using(_ string) error
}

type Params map[string]interface{}

type ParamsList []interface{}

type QueryBuilder interface {
	And(_ string) QueryBuilder
	Asc() QueryBuilder
	Delete(_ ...string) QueryBuilder
	Desc() QueryBuilder
	ForUpdate() QueryBuilder
	From(_ ...string) QueryBuilder
	GroupBy(_ ...string) QueryBuilder
	Having(_ string) QueryBuilder
	In(_ ...string) QueryBuilder
	InnerJoin(_ string) QueryBuilder
	InsertInto(_ string, _ ...string) QueryBuilder
	LeftJoin(_ string) QueryBuilder
	Limit(_ int) QueryBuilder
	Offset(_ int) QueryBuilder
	On(_ string) QueryBuilder
	Or(_ string) QueryBuilder
	OrderBy(_ ...string) QueryBuilder
	RightJoin(_ string) QueryBuilder
	Select(_ ...string) QueryBuilder
	Set(_ ...string) QueryBuilder
	String() string
	Subquery(_ string, _ string) string
	Update(_ ...string) QueryBuilder
	Values(_ ...string) QueryBuilder
	Where(_ string) QueryBuilder
}

type QueryM2Mer interface {
	Add(_ ...interface{}) (int64, error)
	Clear() (int64, error)
	Count() (int64, error)
	Exist(_ interface{}) bool
	Remove(_ ...interface{}) (int64, error)
}

type QuerySeter interface {
	All(_ interface{}, _ ...string) (int64, error)
	Count() (int64, error)
	Delete() (int64, error)
	Distinct() QuerySeter
	Exclude(_ string, _ ...interface{}) QuerySeter
	Exist() bool
	Filter(_ string, _ ...interface{}) QuerySeter
	FilterRaw(_ string, _ string) QuerySeter
	ForUpdate() QuerySeter
	GetCond() *Condition
	GroupBy(_ ...string) QuerySeter
	Limit(_ interface{}, _ ...interface{}) QuerySeter
	Offset(_ interface{}) QuerySeter
	One(_ interface{}, _ ...string) error
	OrderBy(_ ...string) QuerySeter
	PrepareInsert() (Inserter, error)
	RelatedSel(_ ...interface{}) QuerySeter
	RowsToMap(_ *Params, _ string, _ string) (int64, error)
	RowsToStruct(_ interface{}, _ string, _ string) (int64, error)
	SetCond(_ *Condition) QuerySeter
	Update(_ Params) (int64, error)
	Values(_ *[]Params, _ ...string) (int64, error)
	ValuesFlat(_ *ParamsList, _ string) (int64, error)
	ValuesList(_ *[]ParamsList, _ ...string) (int64, error)
}

type RawPreparer interface {
	Close() error
	Exec(_ ...interface{}) (sql.Result, error)
}

type RawSeter interface {
	Exec() (sql.Result, error)
	Prepare() (RawPreparer, error)
	QueryRow(_ ...interface{}) error
	QueryRows(_ ...interface{}) (int64, error)
	RowsToMap(_ *Params, _ string, _ string) (int64, error)
	RowsToStruct(_ interface{}, _ string, _ string) (int64, error)
	SetArgs(_ ...interface{}) RawSeter
	Values(_ *[]Params, _ ...string) (int64, error)
	ValuesFlat(_ *ParamsList, _ ...string) (int64, error)
	ValuesList(_ *[]ParamsList, _ ...string) (int64, error)
}

type TextField string

func (_ TextField) Value() string {
	return ""
}

func (_ *TextField) FieldType() int {
	return 0
}

func (_ *TextField) RawValue() interface{} {
	return nil
}

func (_ *TextField) Set(_ string) {}

func (_ *TextField) SetRaw(_ interface{}) error {
	return nil
}

func (_ *TextField) String() string {
	return ""
}
