jdb

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 9, 2025 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PRIMARYKEY    = "id"
	PK            = PRIMARYKEY
	KEY           = PRIMARYKEY
	INDEX         = "index"
	PROJECT_ID    = "project_id"
	CREATED_AT    = "created_at"
	UPDATED_AT    = "updated_at"
	STATUS_ID     = "status_id"
	PERMISSION_ID = "permission_id"
	SYSID         = "jdbid"
	CREATED_TO    = "created_to"
	UPDATED_TO    = "updated_to"
	FULLTEXT      = "fulltext"
	HISTORYCAL    = "historical"
	CHECKED       = "checked"
	ASC           = true
)
View Source
const (
	PostgresDriver = "postgres"
	SqliteDriver   = "sqlite"
	MysqlDriver    = "mysql"
	OracleDriver   = "oracle"
)
View Source
const (
	MSG_KIND_NOT_DEFINED         = "Kind not defined"
	MSG_INVALID_NAME             = "Invalid name (%s)"
	MSG_JDB_NOT_DEFINED          = "JDB not defined"
	MSG_DRIVER_NOT_FOUND         = "Driver not found (%s)"
	MSG_DATABASE_NOT_DEFINED     = "Database not defined"
	MSG_DRIVER_NOT_DEFINED       = "Driver not defined"
	MSS_PARAM_REQUIRED           = "Parámetro requerido (%s)"
	MSG_DATABASE_NOT_FOUND       = "Database not found (%s)"
	MSG_DATABASE_IS_REQUIRED     = "Database is required"
	MSG_SCHEMA_NOT_FOUND         = "Schema not found (%s)"
	MSG_QUERY_FAILED             = "Query failed: %s\nSQL: %s"
	MSG_MODEL_NOT_FOUND          = "Model not found (%s)"
	MSG_MODEL_REQUIRED           = "Model is required"
	MSG_FIELD_NOT_FOUND          = "Field not found (%s)"
	MSG_QUERY_EMPTY              = "Query is empty"
	MSG_QUERY_FROM_REQUIRED      = "Query 'from' is required"
	MSG_SYSTEMKEYFIELD_NOT_FOUND = "SystemKeyField not found"
	MSG_PRIMARYKEY_NOT_FOUND     = "PrimaryKey not found"
	MSG_NOT_DATA                 = "No data in %s (%s)"
	MSG_NOT_INSERT_DATA          = "No insert data"
	MSG_MANY_INSERT_DATA         = "Many upsert data, only one is allowed"
	MSG_NOT_UPDATE_DATA          = "No update data"
	MSG_NOT_DELETE_DATA          = "No delete data"
	MSG_KEY_NOT_FOUND            = "Key not found"
	MSG_HISTORY_NOT_DEFINED      = "History not defined"
	MSG_HISTORY_NOT_FOUND        = "History not found"
	MSG_UNDO_NOT_DEFINED         = "Undo record not defined"
	MSG_UNDO_KEY_NOT_DEFINED     = "Undo key not defined"
	MSG_COMMAND_NOT_FOUND        = "Command not found"
	MSG_NOT_COMMAND              = "No command"
	MSG_SYSID_REQUIRED           = "Sysid is required"
	MSG_SCHEMA_NOT_USING_CORE    = "Schema is not using core"
	MSG_DATABASE_NOT_USING_CORE  = "Database is not using core"
	MSG_MODEL_NOT_USING_CORE     = "Model is not using core"
	MSG_ATTRIBUTE_REQUIRED       = "Attribute required (%s)"
	MSG_FIELD_REQUIRED           = "Field required (%s)"
	MSG_FIELD_REQUIRED_RELATION  = "Field required (%s) in relation (%s)"
	MSG_SERIE_NOT_FOUND          = "Serie not found (%s)"
	MSG_RECORD_NOT_FOUND         = "Record not found"
	MSG_INVALID_MODEL_PARAM      = "Invalid model param (%s)"
	MSG_ROLLBACK_ERROR           = "Rollback error: (%s)"
	MSG_COMMIT_ERROR             = "Commit error: (%s)"
)
View Source
const EVENT_MODEL_DELETE = "model:delete"
View Source
const EVENT_MODEL_ERROR = "model:error"
View Source
const EVENT_MODEL_INSERT = "model:insert"
View Source
const EVENT_MODEL_UPDATE = "model:update"

Variables

View Source
var (
	ErrNotInserted = errors.New("not inserted")
	ErrNotUpdated  = errors.New("not updated")
)

Functions

func Commands

func Commands(tx *Tx, params et.Json) (interface{}, error)

* * Commands * @param tx *Tx, params et.Json * @return interface{}, error *

func Define

func Define(params et.Json) (et.Json, error)

* * Define * @param params et.Json * @return et.Json, error *

func Describe

func Describe(kind, name string) (et.Json, error)

* * Describe * @param kind, name string * @return et.Json *

func ModelCommand

func ModelCommand(w http.ResponseWriter, r *http.Request)

* * modelCommand * @param w http.ResponseWriter * @param r *http.Request *

func ModelDefine

func ModelDefine(w http.ResponseWriter, r *http.Request)

* * modelDefine * @param w http.ResponseWriter * @param r *http.Request *

func ModelDescribe

func ModelDescribe(w http.ResponseWriter, r *http.Request)

* * ModelDescribe * @param w http.ResponseWriter * @param r *http.Request *

func ModelQuery

func ModelQuery(w http.ResponseWriter, r *http.Request)

* * modelQuery * @param w http.ResponseWriter * @param r *http.Request *

func Name

func Name(name string) string

func OperatorToCommand

func OperatorToCommand(op Operator) string

* * OperatorToCommand * @param op Operator * @return string *

func Query

func Query(params et.Json) (interface{}, error)

* * Query * @param tx *Tx, params et.Json * @return interface{}, error *

func QueryTx

func QueryTx(tx *Tx, params et.Json) (interface{}, error)

* * QueryTx * @param tx *Tx, params et.Json * @return interface{}, error *

func Register

func Register(name string, driver func() Driver)

* * Register * @param name string, driver func() Driver *

func RowsToItem

func RowsToItem(rows *sql.Rows) et.Item

* * RowsToItem return a item from a sql rows * @param rows *sql.Rows * @return et.Item *

func RowsToItems

func RowsToItems(rows *sql.Rows) et.Items

* * RowsToItems return a items from a sql rows * @param rows *sql.Rows * @return et.Items *

func RowsToSource

func RowsToSource(source string, rows *sql.Rows) et.Items

* * SourceToItems return a items from a sql rows and source field * @param source string * @param rows *sql.Rows * @return et.Items *

func SQLDDL

func SQLDDL(sql string, args ...any) string

* * SQLDDL return a sql string with the args * @param sql string * @param args ...any * @return string *

func SQLParse

func SQLParse(sql string, args ...any) string

* * SQLParse return a sql string with the args * @param sql string * @param args ...any * @return string *

func SQLQuote

func SQLQuote(sql string) string

* * SQLQuote return a sql cuote string * @param sql string * @return string *

func SourceToItem

func SourceToItem(source string, rows *sql.Rows) et.Item

* * SourceToItem return a item from a sql rows and source field * @param source string * @param rows *sql.Rows * @return et.Items *

Types

type Agregation

type Agregation struct {
	Agregation string
	// contains filtered or unexported fields
}

type Column

type Column struct {
	Model        *Model       `json:"-"`
	Source       *Column      `json:"-"`
	Name         string       `json:"name"`
	Description  string       `json:"description"`
	TypeColumn   TypeColumn   `json:"type_column"`
	TypeData     TypeData     `json:"type_data"`
	Default      interface{}  `json:"default"`
	IsKeyfield   bool         `json:"is_keyfield"`
	Max          float64      `json:"max"`
	Min          float64      `json:"min"`
	Hidden       bool         `json:"hidden"`
	Detail       *Relation    `json:"detail"`
	Rollup       *Rollup      `json:"rollup"`
	FullText     *FullText    `json:"fulltext"`
	Values       interface{}  `json:"values"`
	CalcFunction DataFunction `json:"-"`
}

func (*Column) DefaultQuote

func (s *Column) DefaultQuote() interface{}

* * DefaultQuote * @return interface{} *

func (*Column) DefaultValue

func (s *Column) DefaultValue() interface{}

* * DefaultValue * @return interface{} *

func (*Column) Describe

func (s *Column) Describe() et.Json

* * Describe * @return et.Json *

func (*Column) GetField

func (s *Column) GetField() *Field

* * GetField * @return *Field *

func (*Column) SetDefaultValue added in v0.0.1

func (s *Column) SetDefaultValue(value interface{}) *Column

* * SetDefaultValue * @param value interface{} * @return *Column *

func (*Column) SetHidden added in v0.0.1

func (s *Column) SetHidden(hidden bool) *Column

* * SetHidden * @param hidden bool * @return *Column *

func (*Column) SetMax added in v0.0.1

func (s *Column) SetMax(max float64) *Column

* * SetMax * @param max float64 * @return *Column *

func (*Column) SetMin added in v0.0.1

func (s *Column) SetMin(min float64) *Column

* * SetMin * @param min float64 * @return *Column *

func (*Column) SetValue added in v0.0.1

func (s *Column) SetValue(value interface{}) *Column

* * SetValue * @param value interface{} *

type ColumnField

type ColumnField string
var (
	IndexField      ColumnField = INDEX
	SourceField     ColumnField = "source"
	ProjectField    ColumnField = PROJECT_ID
	CreatedAtField  ColumnField = CREATED_AT
	UpdatedAtField  ColumnField = UPDATED_AT
	StatusField     ColumnField = STATUS_ID
	PrimaryKeyField ColumnField = PRIMARYKEY
	SystemKeyField  ColumnField = SYSID
	CreatedToField  ColumnField = CREATED_TO
	UpdatedToField  ColumnField = UPDATED_TO
	FullTextField   ColumnField = FULLTEXT
)

func (ColumnField) Str

func (s ColumnField) Str() string

func (ColumnField) TypeData

func (s ColumnField) TypeData() TypeData

type Command

type Command struct {
	*QlWhere
	Id string `json:"id"`

	Command TypeCommand         `json:"command"`
	Db      *DB                 `json:"-"`
	From    *Model              `json:"-"`
	Data    []et.Json           `json:"data"`
	Values  []map[string]*Field `json:"values"`
	Returns []*Field            `json:"returns"`
	Sql     string              `json:"sql"`
	Result  et.Items            `json:"result"`
	// contains filtered or unexported fields
}

func NewCommand

func NewCommand(model *Model, data []et.Json, command TypeCommand) *Command

* * NewCommand * @param model *Model, data []et.Json, command TypeCommand * @return *Command *

func (*Command) AfterDelete added in v0.0.1

func (s *Command) AfterDelete(fn Function) *Command

* * AfterDelete * @param fn Function * @return *Command *

func (*Command) AfterInsert added in v0.0.1

func (s *Command) AfterInsert(fn DataFunctionTx) *Command

* * AfterInsert * @param fn DataFunction * @return *Command *

func (*Command) AfterUpdate added in v0.0.1

func (s *Command) AfterUpdate(fn DataFunctionTx) *Command

* * AfterUpdate * @param fn DataFunctionTx * @return *Command *

func (*Command) And

func (s *Command) And(val string) *Command

* * And * @param val string * @return *Command *

func (*Command) BeforeDelete added in v0.0.1

func (s *Command) BeforeDelete(fn Function) *Command

* * BeforeDelete * @param fn Function *

func (*Command) BeforeInsert added in v0.0.1

func (s *Command) BeforeInsert(fn DataFunctionTx) *Command

* * BeforeInsert * @param fn DataFunction *

func (*Command) BeforeUpdate added in v0.0.1

func (s *Command) BeforeUpdate(fn DataFunctionTx) *Command

* * BeforeUpdate * @param fn DataFunction *

func (*Command) Between

func (s *Command) Between(vals interface{}) *Command

* * Between * @param vals interface{} * @return *Command *

func (*Command) Debug

func (s *Command) Debug() *Command

* * Debug * @param v bool * @return *Command *

func (*Command) Describe

func (s *Command) Describe() et.Json

* * Describe * @return et.Json *

func (*Command) Eq

func (s *Command) Eq(val interface{}) *Command

* * Eq * @param val interface{} * @return *Command *

func (*Command) Exec

func (s *Command) Exec() (et.Items, error)

* * Exec * @return et.Items, error *

func (*Command) ExecTx

func (s *Command) ExecTx(tx *Tx) (et.Items, error)

* * ExecTx * @param tx *Tx * @return et.Items, error *

func (*Command) History

func (s *Command) History(v bool) *Command

* * History * @param v bool * @return *Command *

func (*Command) In

func (s *Command) In(val ...any) *Command

* * In * @param val ...any * @return *Command *

func (*Command) IsNull

func (s *Command) IsNull() *Command

* * IsNull * @return *Command *

func (*Command) Less

func (s *Command) Less(val interface{}) *Command

* * Less * @param val interface{} * @return *Command *

func (*Command) LessEq

func (s *Command) LessEq(val interface{}) *Command

* * LessEq * @param val interface{} * @return *Command *

func (*Command) Like

func (s *Command) Like(val interface{}) *Command

* * Like * @param val interface{} * @return *Command *

func (*Command) More

func (s *Command) More(val interface{}) *Command

* * More * @param val interface{} * @return *Command *

func (*Command) MoreEq

func (s *Command) MoreEq(val interface{}) *Command

* * MoreEq * @param val interface{} * @return *Command *

func (*Command) Neg

func (s *Command) Neg(val interface{}) *Command

* * Neg * @param val interface{} * @return *Command *

func (*Command) NotNull

func (s *Command) NotNull() *Command

* * NotNull * @return *Command *

func (*Command) One

func (s *Command) One() (et.Item, error)

* * One * @return et.Item, error *

func (*Command) OneTx

func (s *Command) OneTx(tx *Tx) (et.Item, error)

* * OneTx * @param tx *Tx * @return et.Item, error *

func (*Command) Or

func (s *Command) Or(val string) *Command

* * And * @param fval string * @return *Command *

func (*Command) Return

func (s *Command) Return(fields ...string) *Command

* * Return * @param fields ...string * @return *Command *

func (*Command) Search

func (s *Command) Search(language string, val interface{}) *Command

* * Search * @param language string, val interface{} * @return *Command *

func (*Command) Tx

func (s *Command) Tx() *Tx

* * Tx * @return *Tx *

func (*Command) Where

func (s *Command) Where(val string) *Command

* * Where * @param field string * @return *Command *

type ConnectParams

type ConnectParams struct {
	Driver   string  `json:"driver"`
	Name     string  `json:"name"`
	Params   et.Json `json:"params"`
	UserCore bool    `json:"user_core"`
}

type Connector

type Connector int
const (
	NoC Connector = iota
	And
	Or
)

func (Connector) Str

func (s Connector) Str() string

type DB

type DB struct {
	CreatedAt   time.Time `json:"created_at"`
	UpdateAt    time.Time `json:"update_at"`
	Id          string    `json:"id"`
	Name        string    `json:"name"`
	Description string    `json:"description"`
	UseCore     bool      `json:"use_core"`

	IsDebug bool `json:"-"`
	// contains filtered or unexported fields
}

func ConnectTo

func ConnectTo(params ConnectParams) (*DB, error)

* * ConnectTo * @param params et.Json * @return *DB, error *

func GetDB

func GetDB(name string) *DB

* * GetDB * @param name string * @return *DB *

func Load

func Load() (*DB, error)

* * Load * @return *DB, error *

func NewDatabase

func NewDatabase(name, driver string) (*DB, error)

* * NewDatabase * @param name, driver string * @return *DB *

func (*DB) ChangePassword

func (s *DB) ChangePassword(username, password, confirmation string) error

* * ChangePassword * @return error *

func (*DB) Command

func (s *DB) Command(command *Command) (et.Items, error)

* * Command * @param command *Command * @return et.Item, error *

func (*DB) Conected

func (s *DB) Conected(params et.Json) error

* * Conected * @return bool *

func (*DB) Count

func (s *DB) Count(ql *Ql) (int, error)

* * Count * @param ql *Ql * @return int, error *

func (*DB) CreateUser

func (s *DB) CreateUser(username, password, confirmation string) error

* * CreateUser * @return error *

func (*DB) CurrentSerie

func (s *DB) CurrentSerie(tag string) (int64, error)

* * CurrentSerie * @param tag string * @return int64, error *

func (*DB) Debug

func (s *DB) Debug()

* * Debug *

func (*DB) DeleteSerie

func (s *DB) DeleteSerie(tag string) error

* * DeleteSerie * @param tag string * @return error *

func (*DB) DeleteUser

func (s *DB) DeleteUser(username string) error

* * DeleteUser * @return error *

func (*DB) Describe

func (s *DB) Describe() et.Json

* * Describe * @return et.Json *

func (*DB) Disconected

func (s *DB) Disconected() error

* * Disconected * @return error *

func (*DB) DropModel

func (s *DB) DropModel(model *Model) error

* * DropModel * @param model *Model *

func (*DB) DropSchema

func (s *DB) DropSchema(name string) error

* * DropSchema * @param name string * @return error *

func (*DB) EventSync

func (s *DB) EventSync()

* * EventSync *

func (*DB) Exists

func (s *DB) Exists(ql *Ql) (bool, error)

* * Exists * @param ql *Ql * @return bool, error *

func (*DB) From added in v0.0.1

func (s *DB) From(name string) (*Ql, error)

* * From * @param name string * @return *Ql, error *

func (*DB) GetCode

func (s *DB) GetCode(tag, format string) (string, error)

* * GetCode * @param tag, format string * @return string, error *

func (*DB) GetModel

func (s *DB) GetModel(name string) *Model

* * GetModel * @param name string * @return *Model *

func (*DB) GetRecycling

func (s *DB) GetRecycling(schema, name, sysId string) (et.Item, error)

* * GetRecycling * @param schema, name, sysId string * @return et.Item, error *

func (*DB) GetSchema

func (s *DB) GetSchema(name string) *Schema

* * GetSchema * @param name string * @return *Schema *

func (*DB) GetSerie

func (s *DB) GetSerie(tag string) (int64, error)

* * GetSerie * @param tag string * @return int64, error *

func (*DB) GrantPrivileges

func (s *DB) GrantPrivileges(username, database string) error

* * GrantPrivileges * @return error *

func (*DB) HandlerCurrentSerie

func (s *DB) HandlerCurrentSerie(w http.ResponseWriter, r *http.Request)

* * HandlerCurrentSerie * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) HandlerDeleteRecycling

func (s *DB) HandlerDeleteRecycling(w http.ResponseWriter, r *http.Request)

* * HandlerDeleteRecycling * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) HandlerDeleteSeries

func (s *DB) HandlerDeleteSeries(w http.ResponseWriter, r *http.Request)

* * HandlerDeleteSeries * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) HandlerGetCode

func (s *DB) HandlerGetCode(w http.ResponseWriter, r *http.Request)

* * HandlerGetCode * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) HandlerGetRecycling

func (s *DB) HandlerGetRecycling(w http.ResponseWriter, r *http.Request)

* * HandlerGetRecycling * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) HandlerGetSeries

func (s *DB) HandlerGetSeries(w http.ResponseWriter, r *http.Request)

* * HandlerGetSeries * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) HandlerQueryRecords

func (s *DB) HandlerQueryRecords(w http.ResponseWriter, r *http.Request)

* * HandlerQueryRecords * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) HandlerQueryRecycling

func (s *DB) HandlerQueryRecycling(w http.ResponseWriter, r *http.Request)

* * HandlerQueryRecycling * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) HandlerQuerySeries

func (s *DB) HandlerQuerySeries(w http.ResponseWriter, r *http.Request)

* * HandlerQuerySerie * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) HandlerSetSeries

func (s *DB) HandlerSetSeries(w http.ResponseWriter, r *http.Request)

* * HandlerSetSerie * @param w http.ResponseWriter * @param r *http.Request *

func (*DB) Load

func (s *DB) Load(kind, name string, out interface{}) error

* * Load * @param kind, name string, out interface{} * @return error *

func (*DB) LoadModel

func (s *DB) LoadModel(model *Model) error

* * LoadModel * @param model *Model * @return error *

func (*DB) LoadSchema

func (s *DB) LoadSchema(name string) error

* * LoadSchema * @param name string * @return error *

func (*DB) One

func (s *DB) One(sql string, arg ...any) (et.Item, error)

* * One * @param sql string, arg ...any * @return et.Item, error *

func (*DB) Query

func (s *DB) Query(sql string, arg ...any) (et.Items, error)

* * Query * @param sql string, arg ...any * @return et.Items, error *

func (*DB) QueryModel

func (s *DB) QueryModel(search et.Json) (interface{}, error)

* * QueryModel * @param search et.Json * @return interface{}, error *

func (*DB) QueryRecords

func (s *DB) QueryRecords(query et.Json) (interface{}, error)

* * QueryRecords * @param query et.Json * @return interface{}, error *

func (*DB) QueryRecycling

func (s *DB) QueryRecycling(search et.Json) (interface{}, error)

* * QueryRecycling * @param search et.Json * @return interface{}, error *

func (*DB) QuerySerie

func (s *DB) QuerySerie(search et.Json) (interface{}, error)

* * QuerySerie * @param search et.Json * @return interface{}, error *

func (*DB) QueryTx

func (s *DB) QueryTx(tx *Tx, sql string, arg ...any) (et.Items, error)

* * QueryTx * @param tx *Tx, sql string, arg ...any * @return et.Items, error *

func (*DB) Save

func (s *DB) Save() error

* * Save * @return error *

func (*DB) Select

func (s *DB) Select(ql *Ql) (et.Items, error)

* * Select * @param ql *Ql * @return et.Items, error *

func (*DB) SetMain

func (s *DB) SetMain(params et.Json) error

* * SetMain * @param params et.Json * @return error *

func (*DB) SetSerie

func (s *DB) SetSerie(tag string, val int64) (int64, error)

* * SetSerie * @param tag string, val int64 * @return int64, error *

func (*DB) Sync

func (s *DB) Sync(command string, data et.Json) error

* * Sync * @param command string, data et.Json * @return error *

type DataFunction added in v0.0.1

type DataFunction func(data et.Json) error

type DataFunctionTx added in v0.0.1

type DataFunctionTx func(tx *Tx, data et.Json) error

type Driver

type Driver interface {
	Name() string
	Connect(params et.Json) error
	Disconnect() error
	SetMain(params et.Json) error
	/* Database */
	CreateDatabase(name string) error
	DropDatabase(name string) error
	/* User */
	GrantPrivileges(username, database string) error
	CreateUser(username, password, confirmation string) error
	ChangePassword(username, password, confirmation string) error
	DeleteUser(username string) error
	/* Schema */
	LoadSchema(name string) error
	DropSchema(name string) error
	/* Model */
	LoadModel(model *Model) error
	DropModel(model *Model) error
	MutateModel(model *Model) error
	/* Ql */
	Select(ql *Ql) (et.Items, error)
	Count(ql *Ql) (int, error)
	Exists(ql *Ql) (bool, error)
	/* Command */
	Command(command *Command) (et.Items, error)
	Sync(command string, data et.Json) error
	/* Query */
	QueryTx(tx *Tx, sql string, arg ...any) (et.Items, error)
	Query(sql string, arg ...any) (et.Items, error)
}

type Event

type Event func(tx *Tx, model *Model, before et.Json, after et.Json) error

type EventError

type EventError func(model *Model, data et.Json)

type Field

type Field struct {
	Column     *Column        `json:"-"`
	Schema     string         `json:"schema"`
	Model      string         `json:"model"`
	As         string         `json:"as"`
	Name       string         `json:"name"`
	Source     string         `json:"source"`
	Agregation TypeAgregation `json:"agregation"`
	Value      interface{}    `json:"value"`
	Alias      string         `json:"alias"`
	Hidden     bool           `json:"hidden"`
	Page       int            `json:"page"`
	Rows       int            `json:"rows"`
	TpResult   TypeResult     `json:"tp_result"`
	Unquoted   bool           `json:"unquoted"`
	Select     []interface{}  `json:"select"`
	Joins      []et.Json      `json:"joins"`
	Where      et.Json        `json:"where"`
	GroupBy    []string       `json:"group_by"`
	Havings    et.Json        `json:"havings"`
	OrderBy    et.Json        `json:"order_by"`
}

func (*Field) Describe

func (s *Field) Describe() et.Json

* * Describe * @return et.Json *

func (*Field) Serialize

func (s *Field) Serialize() ([]byte, error)

* * Serialize * @return []byte, error *

func (*Field) ValueQuoted

func (s *Field) ValueQuoted() any

* * ValueQuoted * @return any *

type FullText

type FullText struct {
	Language string   `json:"language"`
	Columns  []string `json:"columns"`
}

type Function added in v0.0.1

type Function func() error

type Index

type Index struct {
	Column *Column
	Sorted bool
}

type JDB

type JDB struct {
	Drivers map[string]func() Driver `json:"-"`
	DBS     []*DB                    `json:"-"`
	Version string                   `json:"version"`
}

func Jdb

func Jdb() *JDB

* * Jdb * @return *JDB *

func (*JDB) Describe

func (s *JDB) Describe() et.Json

* * Describe * @return et.Json *

func (*JDB) Serialize

func (s *JDB) Serialize() ([]byte, error)

* * Serialize * @return []byte, error *

type Join added in v0.0.1

type Join struct {
	On   et.Json  `json:"on"`
	Type TypeJoin `json:"type"`
}

type Model

type Model struct {
	Db *DB `json:"-"`

	Schema         string               `json:"schema"`
	CreatedAt      time.Time            `json:"created_at"`
	UpdateAt       time.Time            `json:"updated_at"`
	Id             string               `json:"id"`
	Name           string               `json:"name"`
	Description    string               `json:"description"`
	UseCore        bool                 `json:"use_core"`
	Integrity      bool                 `json:"integrity"`
	Definitions    et.Json              `json:"definitions"`
	Columns        []*Column            `json:"-"`
	PrimaryKeys    map[string]*Column   `json:"-"`
	ForeignKeys    map[string]*Relation `json:"-"`
	Indices        map[string]*Index    `json:"-"`
	Uniques        map[string]*Index    `json:"-"`
	RelationsTo    map[string]*Relation `json:"-"`
	Details        map[string]*Relation `json:"-"`
	Joins          map[string]*Join     `json:"-"`
	Required       map[string]bool      `json:"-"`
	CreatedAtField *Column              `json:"-"`
	UpdatedAtField *Column              `json:"-"`
	SystemKeyField *Column              `json:"-"`
	StatusField    *Column              `json:"-"`
	IndexField     *Column              `json:"-"`
	SourceField    *Column              `json:"-"`
	FullTextField  *Column              `json:"-"`
	ProjectField   *Column              `json:"-"`
	Version        int                  `json:"version"`

	IsDebug bool `json:"-"`
	// contains filtered or unexported fields
}

func GetModel

func GetModel(name string, isCreate bool) *Model

* * GetModel * @param name string, isCreate bool * @return *Model *

func LoadModel added in v0.0.1

func LoadModel(db *DB, name string) (*Model, error)

* * LoadModel * @param db *DB, name string * @return *Model, error *

func NewModel

func NewModel(schema *Schema, name string, version int) *Model

* * NewModel * @param schema *Schema, name string, version int * @return *Model *

func (*Model) Bulk

func (s *Model) Bulk(data []et.Json) *Command

* * Bulk * @param data []et.Json * @return *Command *

func (*Model) Counted added in v0.0.1

func (s *Model) Counted() (int, error)

* * Counted * @return int, error *

func (*Model) Debug

func (s *Model) Debug() *Model

* * Debug * @return *Model *

func (*Model) DefineAtribute

func (s *Model) DefineAtribute(name string, typeData TypeData) *Column

* * DefineAtribute * @param name string, typeData TypeData * @return *Column *

func (*Model) DefineCalc added in v0.0.1

func (s *Model) DefineCalc(name string, fn DataFunction) *Model

* * DefineCalc * @param name string, fn DataFunction * @return Model *

func (*Model) DefineColumn

func (s *Model) DefineColumn(name string, typeData TypeData) *Column

* * DefineColumn * @param name string, typeData TypeData * @return *Column *

func (*Model) DefineCreatedAtField

func (s *Model) DefineCreatedAtField() *Column

* * DefineCreatedAtField * @return *Column *

func (*Model) DefineDetail

func (s *Model) DefineDetail(name string, fks map[string]string, limit int) *Model

* * DefineDetail * @param name string, fks map[string]string, limit int * @return *Model *

func (*Model) DefineEvent

func (s *Model) DefineEvent(tp TypeEvent, event Event) *Model

* * DefineEvent * @param tp TypeEvent, event Event * @return Model *

func (*Model) DefineEventError

func (s *Model) DefineEventError(event EventError) *Model

* * DefineEventError * @param event EventError * @return Model *

func (*Model) DefineForeignKey

func (s *Model) DefineForeignKey(fks map[string]string, withName string, onDeleteCascade, onUpdateCascade bool) *Model

* * DefineForeignKey * @param fks map[string]string, withName string, onDeleteCascade, onUpdateCascade bool * @return *Model *

func (*Model) DefineFullText

func (s *Model) DefineFullText(language string, fields []string) *Column

* * DefineFullText * @param language string, fields []string * @return *Model *

func (*Model) DefineHidden

func (s *Model) DefineHidden(colums ...string) *Model

* * DefineHidden * @param colums ...string * @return *Model *

func (*Model) DefineIndex

func (s *Model) DefineIndex(sort bool, colums ...string) *Model

* * DefineIndex * @param sort bool, colums []string * @return *Model *

func (*Model) DefineIndexField

func (s *Model) DefineIndexField() *Column

* * DefineIndexField * @return *Column *

func (*Model) DefineIntegrity

func (s *Model) DefineIntegrity() *Model

* * DefineIntegrity *

func (*Model) DefineModel

func (s *Model) DefineModel() *Model

* * DefineModel * @return *Model *

func (*Model) DefineMultiSelect added in v0.0.1

func (s *Model) DefineMultiSelect(name string, fks map[string]string) *Model

* * DefineMultiSelect * @param name string, fks map[string]string * @return *Model *

func (*Model) DefineObject added in v0.0.1

func (s *Model) DefineObject(name, rollupFrom string, fks map[string]string, fields []string) *Model

* * DefineObject * @param name, rollupFrom string, fks map[string]string, field string * @return *Model *

func (*Model) DefinePrimaryKey

func (s *Model) DefinePrimaryKey(colums ...string) *Model

* * DefinePrimaryKey * @param colums ...string * @return *Model *

func (*Model) DefinePrimaryKeyField

func (s *Model) DefinePrimaryKeyField() *Model

* * DefinePrimaryKeyField * @return *Model *

func (*Model) DefineProjectField

func (s *Model) DefineProjectField() *Column

* * DefineProjectField * @return *Column *

func (*Model) DefineProjectModel

func (s *Model) DefineProjectModel() *Model

* * DefineProjectModel * @return *Model *

func (*Model) DefineRelation

func (s *Model) DefineRelation(name, relatedTo string, fks map[string]string, limit int) *Model

* * DefineRelation * @param name, relatedTo string, fks map[string]string, limit int * @return *Model *

func (*Model) DefineRequired

func (s *Model) DefineRequired(colums ...string) *Model

* * DefineRequired * @param colums ...string * @return *Model *

func (*Model) DefineRollup

func (s *Model) DefineRollup(name, rollupFrom string, fks map[string]string, field string) *Model

* * DefineRollup * @param name, rollupFrom string, fks map[string]string, field string * @return *Model *

func (*Model) DefineSource

func (s *Model) DefineSource(name string) *Column

* * DefineSource * @param name string * @return *Column *

func (*Model) DefineSourceField

func (s *Model) DefineSourceField() *Column

* * DefineSourceField * @return *Column *

func (*Model) DefineStatusField

func (s *Model) DefineStatusField() *Column

* * DefineStatusField * @return *Column *

func (*Model) DefineSystemKeyField

func (s *Model) DefineSystemKeyField() *Column

* * DefineSystemKeyField * @return *Column *

func (*Model) DefineUnique

func (s *Model) DefineUnique(colums ...string) *Model

* * DefineUnique * @param colums ...string * @return *Model *

func (*Model) DefineUpdatedAtField

func (s *Model) DefineUpdatedAtField() *Column

* * DefineUpdatedAtField * @return *Column *

func (*Model) DefineValues added in v0.0.1

func (s *Model) DefineValues(name string, values interface{}) *Column

* * DefineValues * @param name string, values interface{} * @return *Column *

func (*Model) Delete

func (s *Model) Delete(val string) *Command

* * Delete * @param val string * @return *Command *

func (*Model) Delsert added in v0.0.1

func (s *Model) Delsert(data et.Json) *Command

* * Delsert * @param data []et.Json * @return *Command *

func (*Model) Describe

func (s *Model) Describe() et.Json

* * Describe * @return et.Json *

func (*Model) Drop

func (s *Model) Drop()

* * Drop *

func (*Model) Emit

func (s *Model) Emit(channel string, data et.Json) *Model

* * Emit * @param channel string, data et.Json *

func (*Model) GenId

func (s *Model) GenId() string

* * GenId * @return string *

func (*Model) GetCode

func (s *Model) GetCode(tag, prefix string) (string, error)

* * GetCode * @param tag, prefix string * @return string, error *

func (*Model) GetFrom

func (s *Model) GetFrom() *QlFrom

* * GetFrom * @return *QlFrom *

func (*Model) GetId

func (s *Model) GetId(id string) string

* * GetId * @param id string * @return string *

func (*Model) GetSerie

func (s *Model) GetSerie() (int64, error)

* * GetSerie * @return int64, error *

func (*Model) GetWhereByPk added in v0.0.1

func (s *Model) GetWhereByPk(data et.Json) (et.Json, error)

* * GetWhereByPk * @param data et.Json * @return et.Json *

func (*Model) GetWhereByRequired added in v0.0.1

func (s *Model) GetWhereByRequired(data et.Json) (et.Json, error)

* * GetWhereByRequired * @param data et.Json * @return et.Json *

func (*Model) Init

func (s *Model) Init() error

* * Init * @return error *

func (*Model) Insert

func (s *Model) Insert(data et.Json) *Command

* * Insert * @param data []et.Json * @return *Command *

func (*Model) New

func (s *Model) New(fields ...string) et.Json

* * New * @return et.Json *

func (*Model) On

func (s *Model) On(channel string, handler event.Handler) *Model

* * On * @param channel string, handler EventHandler *

func (*Model) Query

func (s *Model) Query(params et.Json) (et.Json, error)

* * Query * @param params et.Json * @return et.Json, error *

func (*Model) QueryTx

func (s *Model) QueryTx(tx *Tx, params et.Json) (et.Json, error)

* * QueryTx * @param tx *Tx, params et.Json * @return et.Json, error *

func (*Model) Save

func (s *Model) Save() error

* * Save * @return error *

func (*Model) SetSerie

func (s *Model) SetSerie(tag string, val int64) (int64, error)

* * SetSerie * @param tag string, val int64 * @return int64, error *

func (*Model) Sync

func (s *Model) Sync(data et.Json, sysId string) *Command

* * Sync * @param data et.Json * @param sysId string * @return *Command *

func (*Model) Update

func (s *Model) Update(data et.Json) *Command

* * Update * @param data []et.Json * @return *Command *

func (*Model) Upsert added in v0.0.1

func (s *Model) Upsert(data et.Json) *Command

* * Upsert * @param data []et.Json * @return *Command *

func (*Model) Where

func (s *Model) Where(val string) *Ql

* * Where * @param val string * @return *Ql *

type Operator

type Operator int
const (
	NoP Operator = iota
	Equal
	Neg
	In
	Like
	More
	Less
	MoreEq
	LessEq
	Between
	IsNull
	NotNull
	Search
)

func StrToOperator

func StrToOperator(str string) Operator

* * StrToOperator * @param str string * @return Operator *

func (*Operator) Command

func (s *Operator) Command() string

* * Command * @return string *

func (*Operator) Name

func (s *Operator) Name() string

* * Name * @return string *

func (Operator) Str

func (s Operator) Str() string

type Ql

type Ql struct {
	*QlWhere
	Id         string     `json:"id"`
	Db         *DB        `json:"-"`
	TypeSelect TypeSelect `json:"type_select"`
	Froms      *QlFroms   `json:"froms"`
	Joins      []*QlJoin  `json:"joins"`
	Selects    []*Field   `json:"selects"`
	Hiddens    []string   `json:"hiddens"`
	Details    []*Field   `json:"details"`
	Groups     []*Field   `json:"group_bys"`
	Havings    *QlHaving  `json:"havings"`
	Orders     *QlOrder   `json:"orders"`
	Sheet      int        `json:"sheet"`
	Offset     int        `json:"offset"`
	Limit      int        `json:"limit"`
	Sql        string     `json:"sql"`
	Help       et.Json    `json:"help"`
	// contains filtered or unexported fields
}

func From

func From(model *Model) *Ql

func (*Ql) All

func (s *Ql) All() (et.Items, error)

* * All * @return et.Items, error *

func (*Ql) AllTx

func (s *Ql) AllTx(tx *Tx) (et.Items, error)

* * AllTx * @param tx *Tx * @return et.Items, error *

func (*Ql) And

func (s *Ql) And(val interface{}) *Ql

* * And * @param val interface{} * @return *Ql *

func (*Ql) Avg

func (s *Ql) Avg(field string) *Ql

* * Avg * @param field string * @return *Ql *

func (*Ql) Between

func (s *Ql) Between(vals interface{}) *Ql

* * Between * @param vals interface{} * @return *Ql *

func (*Ql) Count

func (s *Ql) Count(field string) *Ql

* * Count * @param field string * @return *Ql *

func (*Ql) Counted

func (s *Ql) Counted() (int, error)

* * Counted * @return int, error *

func (*Ql) CountedTx

func (s *Ql) CountedTx(tx *Tx) (int, error)

* * CountedTx * @param tx *Tx * @return int, error *

func (*Ql) Data

func (s *Ql) Data(fields ...interface{}) *Ql

* * Data * @param fields ...interface{} * @return *Ql *

func (*Ql) Debug

func (s *Ql) Debug() *Ql

* * Debug * @param v bool * @return *Ql *

func (*Ql) Describe

func (s *Ql) Describe() et.Json

* * Describe * @return et.Json *

func (*Ql) Eq

func (s *Ql) Eq(val interface{}) *Ql

* * Eq * @param val interface{} * @return *Ql *

func (*Ql) First

func (s *Ql) First(n int) (et.Items, error)

* * First * @param n int * @return et.Items, error *

func (*Ql) FirstTx

func (s *Ql) FirstTx(tx *Tx, n int) (et.Items, error)

* * FirstTx * @param tx *Tx, n int * @return et.Items, error *

func (*Ql) FullJoin

func (s *Ql) FullJoin(m *Model) *QlJoin

* * FullJoin * @param m *Model * @return *Ql *

func (*Ql) GetDetailsTx

func (s *Ql) GetDetailsTx(tx *Tx, data et.Json) error

* * GetDetailsTx * @param tx *Tx, data et.Json * @return error *

func (*Ql) GroupBy

func (s *Ql) GroupBy(fields ...string) *Ql

* * GroupBy * @param fields ...string * @return *Ql *

func (*Ql) Having

func (s *Ql) Having(val string) *QlHaving

* * Having * @param field string * @return *QlWhere *

func (*Ql) Hidden added in v0.0.1

func (s *Ql) Hidden(fields ...string) *Ql

* * Hidden * @param fields ...string * @return *Ql *

func (*Ql) History

func (s *Ql) History(v bool) *Ql

* * History * @param v bool * @return *Ql *

func (*Ql) In

func (s *Ql) In(val ...any) *Ql

* * In * @param val ...any * @return *Ql *

func (*Ql) IsNull

func (s *Ql) IsNull() *Ql

* * IsNull * @return *Ql *

func (*Ql) ItExists added in v0.0.1

func (s *Ql) ItExists() (bool, error)

* * ItExists * @return bool, error *

func (*Ql) ItExistsTx added in v0.0.1

func (s *Ql) ItExistsTx(tx *Tx) (bool, error)

* * ItExistsTx * @param tx *Tx * @return bool, error *

func (*Ql) Join

func (s *Ql) Join(model *Model) *QlJoin

* * QlJoin * @param name interface{} * @return *Ql *

func (*Ql) Last

func (s *Ql) Last(n int) (et.Items, error)

* * Last * @param n int * @return et.Items, error *

func (*Ql) LastTx

func (s *Ql) LastTx(tx *Tx, n int) (et.Items, error)

* * LastTx * @param tx *Tx, n int * @return et.Items, error *

func (*Ql) LeftJoin

func (s *Ql) LeftJoin(m *Model) *QlJoin

* * LeftJoin * @param m *Model * @return *Ql *

func (*Ql) Less

func (s *Ql) Less(val interface{}) *Ql

* * Less * @param val interface{} * @return *Ql *

func (*Ql) LessEq

func (s *Ql) LessEq(val interface{}) *Ql

* * LessEq * @param val interface{} * @return *Ql *

func (*Ql) Like

func (s *Ql) Like(val interface{}) *Ql

* * Like * @param val interface{} * @return *Ql *

func (*Ql) List

func (s *Ql) List(page, rows int) (et.List, error)

* * List * @param page, rows int * @return et.List, error *

func (*Ql) Max

func (s *Ql) Max(field string) *Ql

* * Max * @param field string * @return *Ql *

func (*Ql) Min

func (s *Ql) Min(field string) *Ql

* * Min * @param field string * @return *Ql *

func (*Ql) More

func (s *Ql) More(val interface{}) *Ql

* * More * @param val interface{} * @return *Ql *

func (*Ql) MoreEq

func (s *Ql) MoreEq(val interface{}) *Ql

* * MoreEq * @param val interface{} * @return *Ql *

func (*Ql) Neg

func (s *Ql) Neg(val interface{}) *Ql

* * Neg * @param val interface{} * @return *Ql *

func (*Ql) NotNull

func (s *Ql) NotNull() *Ql

* * NotNull * @return *Ql *

func (*Ql) One

func (s *Ql) One() (et.Item, error)

* * One * @return et.Item, error *

func (*Ql) OneTx

func (s *Ql) OneTx(tx *Tx) (et.Item, error)

* * OneTx * @param tx *Tx * @return et.Item, error *

func (*Ql) Or

func (s *Ql) Or(val interface{}) *Ql

* * Or * @param val interface{} * @return *Ql *

func (*Ql) OrderBy

func (s *Ql) OrderBy(columns ...string) *Ql

* * OrderBy * @param columns ...any * @return *Ql *

func (*Ql) OrderByAsc

func (s *Ql) OrderByAsc(columns ...string) *Ql

* * OrderByAsc * @param columns ...any * @return *Ql *

func (*Ql) OrderByDesc

func (s *Ql) OrderByDesc(columns ...string) *Ql

* * OrderByDesc * @param columns ...any * @return *Ql *

func (*Ql) Page

func (s *Ql) Page(val int) *Ql

* * Page * @param page int * @return *Ql *

func (*Ql) Query

func (s *Ql) Query(params et.Json) (et.Json, error)

* * Query * @param params et.Json * @return et.Json, error *

func (*Ql) QueryTx

func (s *Ql) QueryTx(tx *Tx, params et.Json) (et.Json, error)

* * QueryTx * @param tx *Tx, params et.Json * @return et.Json, error *

func (*Ql) RightJoin

func (s *Ql) RightJoin(m *Model) *QlJoin

* * RightJoin * @param m *Model * @return *Ql *

func (*Ql) Rows

func (s *Ql) Rows(n int) (et.Items, error)

* * Rows * @param n int * @return et.Items, error *

func (*Ql) RowsTx

func (s *Ql) RowsTx(tx *Tx, val int) (et.Items, error)

* * RowsTx * @param tx *Tx, limit int * @return et.Items, error *

func (*Ql) Search

func (s *Ql) Search(language string, val interface{}) *Ql

* * Search * @param language string, val interface{} * @return *Ql *

func (*Ql) Select

func (s *Ql) Select(fields ...interface{}) *Ql

* * Select * @param fields ...interface{} * @return *Ql *

func (*Ql) Sum

func (s *Ql) Sum(field string) *Ql

* * Sum * @param field string * @return *Ql *

func (*Ql) Tx

func (s *Ql) Tx() *Tx

* * Tx * @return *Tx *

func (*Ql) Where

func (s *Ql) Where(val interface{}) *Ql

* * Where * @param val interface{} * @return *Ql *

type QlCondition

type QlCondition struct {
	Connector Connector   `json:"connector"`
	Field     interface{} `json:"field"`
	Operator  Operator    `json:"operator"`
	Value     interface{} `json:"value"`
	Language  string      `json:"language"`
}

func NewQlCondition

func NewQlCondition(field interface{}) *QlCondition

* * NewQlCondition * @params field interface{} * @return QlWhere *

type QlFrom

type QlFrom struct {
	*Model
	As string
}

type QlFroms

type QlFroms struct {
	Froms []*QlFrom
	// contains filtered or unexported fields
}

type QlHaving

type QlHaving struct {
	*QlWhere
	Ql *Ql
}

func (*QlHaving) And

func (s *QlHaving) And(val string) *QlHaving

* * Having * @param val string * @return *QlHaving *

func (*QlHaving) Data

func (s *QlHaving) Data(fields ...interface{}) *Ql

* * Data * @param fields ...interface{} * @return *Ql *

func (*QlHaving) Or

func (s *QlHaving) Or(val string) *QlHaving

* * Or * @param val string * @return *QlHaving *

func (*QlHaving) Select

func (s *QlHaving) Select(fields ...interface{}) *Ql

* * Select * @param fields ...interface{} * @return *Ql *

type QlJoin

type QlJoin struct {
	*QlWhere
	Ql       *Ql      `json:"-"`
	TypeJoin TypeJoin `json:"type_join"`
	With     *QlFrom  `json:"with"`
}

func (*QlJoin) And

func (s *QlJoin) And(val interface{}) *QlJoin

* * And * @param val interface{} * @return *QlJoin *

func (*QlJoin) Data

func (s *QlJoin) Data(fields ...interface{}) *Ql

* * Data * @param fields ...interface{} * @return *Ql *

func (*QlJoin) Describe

func (s *QlJoin) Describe() et.Json

* * Describe * @return *et.Json *

func (*QlJoin) On

func (s *QlJoin) On(val string) *QlJoin

* * On * @param val string * @return *QlJoin *

func (*QlJoin) Or

func (s *QlJoin) Or(val interface{}) *QlJoin

* * Or * @param val interface{} * @return *QlJoin *

func (*QlJoin) Select

func (s *QlJoin) Select(fields ...interface{}) *Ql

* * Select * @param fields ...interface{} * @return *Ql *

func (*QlJoin) Serialize

func (s *QlJoin) Serialize() ([]byte, error)

* * Serialize * @return []byte, error *

type QlJoins

type QlJoins []*QlJoin

type QlOrder

type QlOrder struct {
	Asc  []*Field
	Desc []*Field
}

type QlWhere

type QlWhere struct {
	Wheres []*QlCondition `json:"wheres"`

	IsDebug bool `json:"-"`
	// contains filtered or unexported fields
}

func NewQlWhere

func NewQlWhere() *QlWhere

* * NewQlWhere * @return *QlWhere *

func (*QlWhere) Between

func (s *QlWhere) Between(vals interface{}) *QlWhere

* * Between * @param val1, val2 interface{} * @return QlWhere *

func (*QlWhere) Debug

func (s *QlWhere) Debug() *QlWhere

* * Debug * @param v bool * @return *Command *

func (*QlWhere) Eq

func (s *QlWhere) Eq(val interface{}) *QlWhere

* * Eq * @param val interface{} * @return QlWhere *

func (*QlWhere) History

func (s *QlWhere) History(v bool) *QlWhere

* * History * @param v bool * @return *Command *

func (*QlWhere) In

func (s *QlWhere) In(val ...any) *QlWhere

* * In * @param val ...any * @return QlWhere *

func (*QlWhere) IsNull

func (s *QlWhere) IsNull() *QlWhere

* * IsNull * @return *QlWhere *

func (*QlWhere) Less

func (s *QlWhere) Less(val interface{}) *QlWhere

* * Less * @param val interface{} * @return QlWhere *

func (*QlWhere) LessEq

func (s *QlWhere) LessEq(val interface{}) *QlWhere

* * LessEq * @param val interface{} * @return QlWhere *

func (*QlWhere) Like

func (s *QlWhere) Like(val interface{}) *QlWhere

* * Like * @param val interface{} * @return QlWhere *

func (*QlWhere) More

func (s *QlWhere) More(val interface{}) *QlWhere

* * More * @param val interface{} * @return QlWhere *

func (*QlWhere) MoreEq

func (s *QlWhere) MoreEq(val interface{}) *QlWhere

* * MoreEq * @param val interface{} * @return QlWhere *

func (*QlWhere) Neg

func (s *QlWhere) Neg(val interface{}) *QlWhere

* * Neg * @param val interface{} * @return QlWhere *

func (*QlWhere) NotNull

func (s *QlWhere) NotNull() *QlWhere

* * NotNull * @return *QlWhere *

func (*QlWhere) Search

func (s *QlWhere) Search(language string, val interface{}) *QlWhere

* * Search * @param val interface{} * @return QlWhere *

type Relation

type Relation struct {
	With            *Model            `json:"-"`
	Fk              map[string]string `json:"fk"`
	Limit           int               `json:"rows"`
	OnDeleteCascade bool              `json:"on_delete_cascade"`
	OnUpdateCascade bool              `json:"on_update_cascade"`
	IsMultiSelect   bool              `json:"is_multi_select"`
}

func (*Relation) GetWhere added in v0.0.1

func (s *Relation) GetWhere(from et.Json) et.Json

* * GetWhere * @param from et.Json * @return et.Json *

func (*Relation) Serialize

func (s *Relation) Serialize() ([]byte, error)

* * Serialize * @return []byte, error *

type Rollup

type Rollup struct {
	With   *Model            `json:"-"`
	Fk     map[string]string `json:"fk"`
	Fields []string          `json:"fields"`
	Show   ShowRollup        `json:"show"`
}

func (*Rollup) Serialize

func (s *Rollup) Serialize() ([]byte, error)

* * Serialize * @return []byte, error *

func (*Rollup) Where

func (s *Rollup) Where(from et.Json) et.Json

* * Where * @param from et.Json * @return et.Json *

type Schema

type Schema struct {
	Db          *DB       `json:"-"`
	CreatedAt   time.Time `json:"created_at"`
	UpdateAt    time.Time `json:"update_at"`
	Id          string    `json:"id"`
	Name        string    `json:"name"`
	Description string    `json:"description"`
	UseCore     bool      `json:"use_core"`
	// contains filtered or unexported fields
}

func GetShema

func GetShema(name string, isCreate bool) *Schema

* * GetShema * @param name string * @param isCreate bool * @return *Schema *

func LoadSchema added in v0.0.1

func LoadSchema(db *DB, name string) (*Schema, error)

* * LoadSchema * @param db *DB, name string * @return *Schema, error *

func NewSchema

func NewSchema(db *DB, name string) *Schema

* * NewSchema * @param db *DB, name string * @return *Schema *

func (*Schema) Describe

func (s *Schema) Describe() et.Json

* * Describe * @return et.Json *

func (*Schema) Drop

func (s *Schema) Drop() error

* * Mutate * @return error *

func (*Schema) GetModel

func (s *Schema) GetModel(name string) *Model

* * GetModel * @param name string * @return *Model *

func (*Schema) Save

func (s *Schema) Save() error

* * Save * @return error *

type ShowRollup added in v0.0.1

type ShowRollup int
const (
	ShowAtrib ShowRollup = iota
	ShowObject
)

func (ShowRollup) Str added in v0.0.1

func (s ShowRollup) Str() string

* * Str * @return string *

type Tx

type Tx struct {
	Id        string
	Committed bool
	Tx        *sql.Tx
}

func InitTx

func InitTx(tx *Tx) *Tx

* * InitTx * @param tx *Tx * @return *Tx *

func NewTx

func NewTx() *Tx

* * NewTx * @return *Tx *

func (*Tx) Begin

func (s *Tx) Begin(db *sql.DB) error

* * Begin * @param db *sql.DB * @return error *

func (*Tx) Commit

func (s *Tx) Commit() error

* * Commit * @return error *

func (*Tx) Rollback

func (s *Tx) Rollback() error

* * Rollback * @return error *

type TypeAgregation

type TypeAgregation int
const (
	Nag TypeAgregation = iota
	AgregationSum
	AgregationCount
	AgregationAvg
	AgregationMin
	AgregationMax
)

func (TypeAgregation) Str

func (s TypeAgregation) Str() string

type TypeColumn

type TypeColumn int
const (
	TpColumn TypeColumn = iota
	TpAtribute
	TpCalc
	TpRelatedTo
	TpRollup
)

func (TypeColumn) Str

func (s TypeColumn) Str() string

type TypeCommand

type TypeCommand int
const (
	Insert TypeCommand = iota
	Update
	Delete
	Upsert
	Delsert
	Sync
)

func (TypeCommand) Str added in v0.0.1

func (s TypeCommand) Str() string

type TypeData

type TypeData int
const (
	TypeDataText TypeData = iota
	TypeDataMemo
	TypeDataShortText
	TypeDataKey
	TypeDataState
	TypeDataInt
	TypeDataNumber
	TypeDataQuantity
	TypeDataPrecision
	TypeDataSerie
	TypeDataIndex
	TypeDataBool
	TypeDataTime
	TypeDataBytes
	/* Special */
	TypeDataObject
	TypeDataArray
	TypeDataGeometry
	TypeDataFullText
	TypeDataSelect
	TypeDataNone
)

func (TypeData) DefaultValue

func (s TypeData) DefaultValue() interface{}

func (TypeData) Str

func (s TypeData) Str() string

type TypeDefinition

type TypeDefinition int
const (
	TypeDefinitionColumn TypeDefinition = iota
	TypeDefinitionIndex
	TypeDefinitionUnique
	TypeDefinitionPrimaryKey
	TypeDefinitionPrimaryKeyField
	TypeDefinitionForeignKey
	TypeDefinitionSource
	TypeDefinitionSourceField
	TypeDefinitionAtribute
	TypeDefinitionCreatedAtField
	TypeDefinitionUpdatedAtField
	TypeDefinitionStatusField
	TypeDefinitionSystemKeyField
	TypeDefinitionIndexField
	TypeDefinitionFullTextField
	TypeDefinitionProjectField
	TypeDefinitionHidden
	TypeDefinitionRequired
	TypeDefinitionRelation
	TypeDefinitionRollup
	TypeDefinitionDetail
	TypeDefinitionValues
	TypeDefinitionModel
	TypeDefinitionProjectModel
)

func (TypeDefinition) Str

func (s TypeDefinition) Str() string

type TypeEvent

type TypeEvent int
const (
	EventInsert TypeEvent = iota
	EventUpdate
	EventDelete
)

func (TypeEvent) Name

func (s TypeEvent) Name() string

type TypeJoin

type TypeJoin int
const (
	InnerJoin TypeJoin = iota
	LeftJoin
	RightJoin
	FullJoin
)

func (TypeJoin) Str

func (s TypeJoin) Str() string

type TypeResult

type TypeResult int
const (
	TpResult TypeResult = iota
	TpList
)

func StrToTypeResult

func StrToTypeResult(str string) TypeResult

* * StrToTypeResult * @param str string * @return TypeResult *

type TypeSelect

type TypeSelect int
const (
	Select TypeSelect = iota
	Source
)

Jump to

Keyboard shortcuts

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