query

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 22, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetFieldIndices

func GetFieldIndices(dest interface{}) ([]interface{}, error)

GetFieldIndices retorna os índices dos campos de uma struct para scanning. Usado internamente pelo scanner.

Types

type BoolField

type BoolField struct {
	// contains filtered or unexported fields
}

BoolField representa um campo booleano.

func NewBoolField

func NewBoolField(column string) BoolField

func (BoolField) ColumnName

func (f BoolField) ColumnName() string

func (BoolField) Eq

func (f BoolField) Eq(value bool) Condition

func (BoolField) In

func (f BoolField) In(values ...bool) Condition

func (BoolField) IsNotNull

func (f BoolField) IsNotNull() Condition

func (BoolField) IsNull

func (f BoolField) IsNull() Condition

func (BoolField) Ne

func (f BoolField) Ne(value bool) Condition

func (BoolField) NotIn

func (f BoolField) NotIn(values ...bool) Condition

type Builder

type Builder[T any] struct {
	// contains filtered or unexported fields
}

Builder é o query builder genérico type-safe. T é o tipo do modelo sendo consultado.

func NewBuilder

func NewBuilder[T any](executor core.Executor, dialect core.Dialect, logger core.Logger, tableName string) *Builder[T]

NewBuilder cria um novo query builder.

func (*Builder[T]) Count

func (b *Builder[T]) Count(ctx context.Context) (int64, error)

Count retorna a contagem de registros.

func (*Builder[T]) Find

func (b *Builder[T]) Find(ctx context.Context) ([]T, error)

Find executa a query e retorna um slice de T. Esta é a função mágica que retorna []T sem precisar de *[]T!

func (*Builder[T]) First

func (b *Builder[T]) First(ctx context.Context) (T, error)

First retorna o primeiro resultado ou erro se não encontrado. IMUTÁVEL: Cria uma cópia do builder com LIMIT 1.

func (*Builder[T]) Limit

func (b *Builder[T]) Limit(limit int) *Builder[T]

Limit define o LIMIT. IMUTÁVEL: Retorna um novo builder sem modificar o original.

func (*Builder[T]) Offset

func (b *Builder[T]) Offset(offset int) *Builder[T]

Offset define o OFFSET. IMUTÁVEL: Retorna um novo builder sem modificar o original.

func (*Builder[T]) OrderByAsc

func (b *Builder[T]) OrderByAsc(column string) *Builder[T]

OrderByAsc adiciona ORDER BY ASC. IMUTÁVEL: Retorna um novo builder sem modificar o original.

func (*Builder[T]) OrderByDesc

func (b *Builder[T]) OrderByDesc(column string) *Builder[T]

OrderByDesc adiciona ORDER BY DESC. IMUTÁVEL: Retorna um novo builder sem modificar o original.

func (*Builder[T]) Select

func (b *Builder[T]) Select(columns ...string) *Builder[T]

Select define as colunas a serem selecionadas. IMUTÁVEL: Retorna um novo builder sem modificar o original.

func (*Builder[T]) Where

func (b *Builder[T]) Where(condition interface{}) *Builder[T]

Where adiciona uma condição WHERE. Aceita Condition ou ConditionGroup. IMUTÁVEL: Retorna um novo builder sem modificar o original.

type Comparador

type Comparador[T any] interface {
	Field
	Eq(value T) Condition
	Ne(value T) Condition
	In(values ...T) Condition
	NotIn(values ...T) Condition
	IsNull() Condition
	IsNotNull() Condition
}

Comparador genérico para criar condições.

type ComparadorOrdenavel

type ComparadorOrdenavel[T any] interface {
	Comparador[T]
	Gt(value T) Condition
	Gte(value T) Condition
	Lt(value T) Condition
	Lte(value T) Condition
	Between(start, end T) Condition
}

ComparadorOrdenavel adiciona operadores de comparação.

type Condition

type Condition struct {
	Field    string
	Operator Operator
	Value    interface{}
}

Condition representa uma condição WHERE.

func Not

func Not(condition Condition) Condition

Not cria uma condição NOT (usando != para simplificar).

type ConditionGroup

type ConditionGroup struct {
	Conditions []interface{} // pode ser Condition ou ConditionGroup
	Operator   LogicalOperator
}

ConditionGroup agrupa múltiplas condições com um operador lógico.

func And

func And(conditions ...Condition) ConditionGroup

And combina condições com AND.

func Or

func Or(conditions ...Condition) ConditionGroup

Or combina condições com OR.

type Field

type Field interface {
	ColumnName() string
}

Field é a interface base para todos os tipos de campos. Cada campo conhece seu nome de coluna no banco de dados.

type Float64Field

type Float64Field struct {
	// contains filtered or unexported fields
}

Float64Field representa um campo float64.

func NewFloat64Field

func NewFloat64Field(column string) Float64Field

func (Float64Field) Between

func (f Float64Field) Between(start, end float64) Condition

func (Float64Field) ColumnName

func (f Float64Field) ColumnName() string

func (Float64Field) Eq

func (f Float64Field) Eq(value float64) Condition

func (Float64Field) Gt

func (f Float64Field) Gt(value float64) Condition

func (Float64Field) Gte

func (f Float64Field) Gte(value float64) Condition

func (Float64Field) In

func (f Float64Field) In(values ...float64) Condition

func (Float64Field) IsNotNull

func (f Float64Field) IsNotNull() Condition

func (Float64Field) IsNull

func (f Float64Field) IsNull() Condition

func (Float64Field) Lt

func (f Float64Field) Lt(value float64) Condition

func (Float64Field) Lte

func (f Float64Field) Lte(value float64) Condition

func (Float64Field) Ne

func (f Float64Field) Ne(value float64) Condition

func (Float64Field) NotIn

func (f Float64Field) NotIn(values ...float64) Condition

type Int64Field

type Int64Field struct {
	// contains filtered or unexported fields
}

Int64Field representa um campo int64.

func NewInt64Field

func NewInt64Field(column string) Int64Field

func (Int64Field) Between

func (f Int64Field) Between(start, end int64) Condition

func (Int64Field) ColumnName

func (f Int64Field) ColumnName() string

func (Int64Field) Eq

func (f Int64Field) Eq(value int64) Condition

func (Int64Field) Gt

func (f Int64Field) Gt(value int64) Condition

func (Int64Field) Gte

func (f Int64Field) Gte(value int64) Condition

func (Int64Field) In

func (f Int64Field) In(values ...int64) Condition

func (Int64Field) IsNotNull

func (f Int64Field) IsNotNull() Condition

func (Int64Field) IsNull

func (f Int64Field) IsNull() Condition

func (Int64Field) Lt

func (f Int64Field) Lt(value int64) Condition

func (Int64Field) Lte

func (f Int64Field) Lte(value int64) Condition

func (Int64Field) Ne

func (f Int64Field) Ne(value int64) Condition

func (Int64Field) NotIn

func (f Int64Field) NotIn(values ...int64) Condition

type IntField

type IntField struct {
	// contains filtered or unexported fields
}

IntField representa um campo int com operadores numéricos.

func NewIntField

func NewIntField(column string) IntField

func (IntField) Between

func (f IntField) Between(start, end int) Condition

func (IntField) ColumnName

func (f IntField) ColumnName() string

func (IntField) Eq

func (f IntField) Eq(value int) Condition

func (IntField) Gt

func (f IntField) Gt(value int) Condition

func (IntField) Gte

func (f IntField) Gte(value int) Condition

func (IntField) In

func (f IntField) In(values ...int) Condition

func (IntField) IsNotNull

func (f IntField) IsNotNull() Condition

func (IntField) IsNull

func (f IntField) IsNull() Condition

func (IntField) Lt

func (f IntField) Lt(value int) Condition

func (IntField) Lte

func (f IntField) Lte(value int) Condition

func (IntField) Ne

func (f IntField) Ne(value int) Condition

func (IntField) NotIn

func (f IntField) NotIn(values ...int) Condition

type LogicalOperator

type LogicalOperator string

LogicalOperator representa operadores lógicos (AND, OR).

const (
	LogicalAnd LogicalOperator = "AND"
	LogicalOr  LogicalOperator = "OR"
)

type Operator

type Operator string

Operator representa um operador SQL.

const (
	OpEq        Operator = "="
	OpNe        Operator = "!="
	OpGt        Operator = ">"
	OpGte       Operator = ">="
	OpLt        Operator = "<"
	OpLte       Operator = "<="
	OpLike      Operator = "LIKE"
	OpNotLike   Operator = "NOT LIKE"
	OpIn        Operator = "IN"
	OpNotIn     Operator = "NOT IN"
	OpBetween   Operator = "BETWEEN"
	OpIsNull    Operator = "IS NULL"
	OpIsNotNull Operator = "IS NOT NULL"
)

type OptionalBoolField

type OptionalBoolField struct {
	// contains filtered or unexported fields
}

OptionalBoolField representa um campo booleano que pode ser NULL.

func NewOptionalBoolField

func NewOptionalBoolField(column string) OptionalBoolField

func (OptionalBoolField) ColumnName

func (f OptionalBoolField) ColumnName() string

func (OptionalBoolField) Eq

func (f OptionalBoolField) Eq(value bool) Condition

func (OptionalBoolField) In

func (f OptionalBoolField) In(values ...bool) Condition

func (OptionalBoolField) IsNotNull

func (f OptionalBoolField) IsNotNull() Condition

func (OptionalBoolField) IsNull

func (f OptionalBoolField) IsNull() Condition

func (OptionalBoolField) Ne

func (f OptionalBoolField) Ne(value bool) Condition

func (OptionalBoolField) NotIn

func (f OptionalBoolField) NotIn(values ...bool) Condition

type OptionalFloat64Field

type OptionalFloat64Field struct {
	// contains filtered or unexported fields
}

OptionalFloat64Field representa um campo float64 que pode ser NULL.

func NewOptionalFloat64Field

func NewOptionalFloat64Field(column string) OptionalFloat64Field

func (OptionalFloat64Field) Between

func (f OptionalFloat64Field) Between(start, end float64) Condition

func (OptionalFloat64Field) ColumnName

func (f OptionalFloat64Field) ColumnName() string

func (OptionalFloat64Field) Eq

func (OptionalFloat64Field) Gt

func (OptionalFloat64Field) Gte

func (f OptionalFloat64Field) Gte(value float64) Condition

func (OptionalFloat64Field) In

func (f OptionalFloat64Field) In(values ...float64) Condition

func (OptionalFloat64Field) IsNotNull

func (f OptionalFloat64Field) IsNotNull() Condition

func (OptionalFloat64Field) IsNull

func (f OptionalFloat64Field) IsNull() Condition

func (OptionalFloat64Field) Lt

func (OptionalFloat64Field) Lte

func (f OptionalFloat64Field) Lte(value float64) Condition

func (OptionalFloat64Field) Ne

func (OptionalFloat64Field) NotIn

func (f OptionalFloat64Field) NotIn(values ...float64) Condition

type OptionalInt64Field

type OptionalInt64Field struct {
	// contains filtered or unexported fields
}

OptionalInt64Field representa um campo int64 que pode ser NULL.

func NewOptionalInt64Field

func NewOptionalInt64Field(column string) OptionalInt64Field

func (OptionalInt64Field) Between

func (f OptionalInt64Field) Between(start, end int64) Condition

func (OptionalInt64Field) ColumnName

func (f OptionalInt64Field) ColumnName() string

func (OptionalInt64Field) Eq

func (f OptionalInt64Field) Eq(value int64) Condition

func (OptionalInt64Field) Gt

func (f OptionalInt64Field) Gt(value int64) Condition

func (OptionalInt64Field) Gte

func (f OptionalInt64Field) Gte(value int64) Condition

func (OptionalInt64Field) In

func (f OptionalInt64Field) In(values ...int64) Condition

func (OptionalInt64Field) IsNotNull

func (f OptionalInt64Field) IsNotNull() Condition

func (OptionalInt64Field) IsNull

func (f OptionalInt64Field) IsNull() Condition

func (OptionalInt64Field) Lt

func (f OptionalInt64Field) Lt(value int64) Condition

func (OptionalInt64Field) Lte

func (f OptionalInt64Field) Lte(value int64) Condition

func (OptionalInt64Field) Ne

func (f OptionalInt64Field) Ne(value int64) Condition

func (OptionalInt64Field) NotIn

func (f OptionalInt64Field) NotIn(values ...int64) Condition

type OptionalIntField

type OptionalIntField struct {
	// contains filtered or unexported fields
}

OptionalIntField representa um campo int que pode ser NULL.

func NewOptionalIntField

func NewOptionalIntField(column string) OptionalIntField

func (OptionalIntField) Between

func (f OptionalIntField) Between(start, end int) Condition

func (OptionalIntField) ColumnName

func (f OptionalIntField) ColumnName() string

func (OptionalIntField) Eq

func (f OptionalIntField) Eq(value int) Condition

func (OptionalIntField) Gt

func (f OptionalIntField) Gt(value int) Condition

func (OptionalIntField) Gte

func (f OptionalIntField) Gte(value int) Condition

func (OptionalIntField) In

func (f OptionalIntField) In(values ...int) Condition

func (OptionalIntField) IsNotNull

func (f OptionalIntField) IsNotNull() Condition

func (OptionalIntField) IsNull

func (f OptionalIntField) IsNull() Condition

func (OptionalIntField) Lt

func (f OptionalIntField) Lt(value int) Condition

func (OptionalIntField) Lte

func (f OptionalIntField) Lte(value int) Condition

func (OptionalIntField) Ne

func (f OptionalIntField) Ne(value int) Condition

func (OptionalIntField) NotIn

func (f OptionalIntField) NotIn(values ...int) Condition

type OptionalStringField

type OptionalStringField struct {
	// contains filtered or unexported fields
}

OptionalStringField representa um campo string que pode ser NULL. Usa core.Optional[string] para tipagem segura.

func NewOptionalStringField

func NewOptionalStringField(column string) OptionalStringField

func (OptionalStringField) ColumnName

func (f OptionalStringField) ColumnName() string

func (OptionalStringField) Eq

func (f OptionalStringField) Eq(value string) Condition

func (OptionalStringField) In

func (f OptionalStringField) In(values ...string) Condition

func (OptionalStringField) IsNotNull

func (f OptionalStringField) IsNotNull() Condition

func (OptionalStringField) IsNull

func (f OptionalStringField) IsNull() Condition

func (OptionalStringField) Like

func (f OptionalStringField) Like(pattern string) Condition

func (OptionalStringField) Ne

func (f OptionalStringField) Ne(value string) Condition

func (OptionalStringField) NotIn

func (f OptionalStringField) NotIn(values ...string) Condition

func (OptionalStringField) NotLike

func (f OptionalStringField) NotLike(pattern string) Condition

type OrderBy

type OrderBy struct {
	Column string
	Desc   bool
}

OrderBy representa uma cláusula ORDER BY.

type StringField

type StringField struct {
	// contains filtered or unexported fields
}

StringField representa um campo string com operadores específicos.

func NewStringField

func NewStringField(column string) StringField

func (StringField) ColumnName

func (f StringField) ColumnName() string

func (StringField) Eq

func (f StringField) Eq(value string) Condition

func (StringField) In

func (f StringField) In(values ...string) Condition

func (StringField) IsNotNull

func (f StringField) IsNotNull() Condition

func (StringField) IsNull

func (f StringField) IsNull() Condition

func (StringField) Like

func (f StringField) Like(pattern string) Condition

func (StringField) Ne

func (f StringField) Ne(value string) Condition

func (StringField) NotIn

func (f StringField) NotIn(values ...string) Condition

func (StringField) NotLike

func (f StringField) NotLike(pattern string) Condition

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL