jdb

package
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MSG_DRIVER_NOT_FOUND     = "Driver not found (%s)"
	MSG_DRIVER_NOT_DEFINED   = "Driver not defined"
	MSS_PARAM_REQUIRED       = "Parámetro requerido (%s)"
	MSG_DATABASE_NOT_FOUND   = "Database not found"
	MSG_DATABASE_IS_REQUIRED = "Database is required"
	MSG_QUERY_FAILED         = "Query failed: %s"
)

Variables

View Source
var (
	Postgres = "postgres"
	Josefine = "josefine"
)

Functions

func DataToItem added in v1.0.3

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

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

func DataToItems added in v1.0.3

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

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

func Register

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

* * SetDriver *

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 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 TableName added in v1.0.3

func TableName(schema, name string) string

Types

type Adapter added in v1.0.3

type Adapter interface{}

type Column

type Column struct {
	Model       *Model
	Name        string
	Description string
	Table       string
	Field       string
	TypeColumn  TypeColumn
	TypeData    TypeData
	Default     interface{}
	Max         float64
	Min         float64
	Hidden      bool
	Columns     []string
}

func (*Column) Describe

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

* * Describe * @return et.Json *

type ColumnField

type ColumnField string
var (
	IndexField     ColumnField = "index"
	SourceField    ColumnField = "_data"
	ProjectField   ColumnField = "project_id"
	CreatedAtField ColumnField = "created_at"
	UpdatedAtField ColumnField = "update_at"
	StateField     ColumnField = "_state"
	KeyField       ColumnField = "_id"
	SystemKeyField ColumnField = "_idt"
	ClassField     ColumnField = "_class"
	CreatedToField ColumnField = "created_to"
	UpdatedToField ColumnField = "updated_to"
	FullTextField  ColumnField = "_fulltext"
)

func (ColumnField) Lowcase added in v1.0.4

func (s ColumnField) Lowcase() string

func (ColumnField) Str

func (s ColumnField) Str() string

func (ColumnField) TypeData

func (s ColumnField) TypeData() TypeData

func (ColumnField) Uppcase added in v1.0.4

func (s ColumnField) Uppcase() string

type Command

type Command struct {
	Db      *DB
	Model   *Model
	Data    []et.Json
	Command TypeCommand
	Columns et.Json
	Atribs  et.Json
	New     *et.Json
	Key     string
	Wheres  []*LinqWhere
	Returns []*LinqSelect
	Show    bool
	Sql     string
	Result  et.Items
}

func NewCommand

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

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

func (*Command) And

func (s *Command) And(col interface{}) *CommandFilter

* * And * @param col interface{} * @return *LinqWheres *

func (*Command) Debug

func (s *Command) Debug() *Command

* * Debug * @return *Command *

func (*Command) Describe

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

* * Describe * @return et.Json *

func (*Command) Exec

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

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

func (*Command) One

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

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

func (*Command) Or

func (s *Command) Or(col interface{}) *CommandFilter

* * And * @param col interface{} * @return *LinqWhere *

func (*Command) Where

func (s *Command) Where(col interface{}) *CommandFilter

* * Select * @param columns ...interface{} * @return *Command *

type CommandFilter added in v1.0.3

type CommandFilter struct {
	Command *Command
	Wheres  []*LinqWhere
	// contains filtered or unexported fields
}

func NewCommandFilter added in v1.0.3

func NewCommandFilter(c *Command, whers []*LinqWhere) *CommandFilter

* * NewCommandFilter * @param l *Command * @param wheres []*LinqWhere * @return *CommandFilter *

func (*CommandFilter) Between added in v1.0.3

func (s *CommandFilter) Between(val1, val2 interface{}) *Command

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

func (*CommandFilter) Eq added in v1.0.3

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

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

func (*CommandFilter) In added in v1.0.3

func (s *CommandFilter) In(val ...interface{}) *Command

* * In * @param val ...interface{} * @return *Command *

func (*CommandFilter) IsNull added in v1.0.3

func (s *CommandFilter) IsNull() *Command

* * IsNull * @return *Command *

func (*CommandFilter) Less added in v1.0.3

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

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

func (*CommandFilter) LessEs added in v1.0.3

func (s *CommandFilter) LessEs(val interface{}) *Command

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

func (*CommandFilter) Like added in v1.0.3

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

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

func (*CommandFilter) More added in v1.0.3

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

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

func (*CommandFilter) MoreEq added in v1.0.3

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

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

func (*CommandFilter) Neg added in v1.0.3

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

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

type Concat added in v1.0.3

type Concat map[string]interface{}

func Concatenate added in v1.0.3

func Concatenate(args ...interface{}) Concat

type Connector

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

type DB

type DB struct {
	CreatedAt   time.Time          `json:"created_date"`
	UpdateAt    time.Time          `json:"update_date"`
	Id          string             `json:"id"`
	Description string             `json:"description"`
	Schemas     map[string]*Schema `json:"schemas"`
	UseCore     bool               `json:"use_core"`
	// contains filtered or unexported fields
}

func ConnectTo

func ConnectTo(params et.Json) (*DB, error)

func Load

func Load() (*DB, error)

func NewDatabase

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

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

func (*DB) Command

func (s *DB) Command(command *Command) (et.Item, 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(linq *Linq) (int, error)

* * Count * @param linq *Linq * @return int, error *

func (*DB) CreateCore added in v1.0.4

func (s *DB) CreateCore() error

* * CreateCore * @return error *

func (*DB) CreateModel added in v1.0.3

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

* * CreateModel * @param model *Model * @return error *

func (*DB) CreateSchema added in v1.0.3

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

* * CreateSchema * @param name string * @return error *

func (*DB) Current added in v1.0.3

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

* * Current * @param command *Command * @return et.Items, error *

func (*DB) CurrentSerie

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

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

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) DropSchema

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

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

func (*DB) Exec added in v1.0.3

func (s *DB) Exec(sql string, params ...interface{}) error

* * Exec * @param sql string * @param params ...interface{} * @return error *

func (*DB) GetSerie

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

* * GetSerie * @return int64 *

func (*DB) Last added in v1.0.3

func (s *DB) Last(linq *Linq) (et.Items, error)

* * Last * @param linq *Linq * @return et.Items, error *

func (*DB) MutateModel added in v0.1.1

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

* * MutateModel * @param model *Model * @return error *

func (*DB) NextCode added in v1.0.3

func (s *DB) NextCode(tag, format string) string

* * NextCode * @param tag string * @param format string "%08v" "PREFIX-%08v-SUFFIX" * @return string *

func (*DB) One

func (s *DB) One(sql string, params ...interface{}) (et.Item, error)

* * One * @param sql string * @param params ...interface{} * @return et.Item, error *

func (*DB) Query

func (s *DB) Query(linq *Linq) (et.Items, error)

* * Query * @param linq *Linq * @return et.Items, error *

func (*DB) SQL added in v1.0.3

func (s *DB) SQL(sql string, params ...interface{}) (et.Items, error)

* * SQL * @param sql string * @param params ...interface{} * @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 int) int64

* * SetSerie * @return int64 *

func (*DB) SetUser added in v1.0.3

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

* * SetAdmin * @return error *

type Detail added in v1.0.3

type Detail func(col string, data *et.Json) error

type Dictionary added in v1.0.3

type Dictionary struct {
	Model   *Model
	Key     string
	Value   interface{}
	Columns []*Column
}

func NewDictionary added in v1.0.3

func NewDictionary(model *Model, key string, value interface{}) *Dictionary

* * NewDictionary * @param key string * @param value interface{} * @return *Dictionary *

func (*Dictionary) DefineAtribute added in v1.0.3

func (s *Dictionary) DefineAtribute(name string, typeData TypeData, def interface{}) *Column

* * DefineAtribute * @param name string * @param typeData TypeData * @param def interface{} * @return *Model *

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
	// Core
	CreateCore() error
	// User
	SetUser(username, password, confirmation string) error
	DeleteUser(username string) error
	// Schema
	CreateSchema(name string) error
	DropSchema(name string) error
	// Model
	CreateModel(model *Model) error
	MutateModel(model *Model) error
	// Query
	Exec(sql string, params ...interface{}) error
	SQL(sql string, params ...interface{}) (et.Items, error)
	One(sql string, params ...interface{}) (et.Item, error)
	Query(linq *Linq) (et.Items, error)
	Count(linq *Linq) (int, error)
	Last(linq *Linq) (et.Items, error)
	// Command
	Current(command *Command) (et.Items, error)
	Command(command *Command) (et.Item, error)
	// Series
	GetSerie(tag string) int64
	NextCode(tag, prefix string) string
	SetSerie(tag string, val int) int64
	CurrentSerie(tag string) int64
}

type Function added in v0.0.1

type Function struct {
	Key          string
	Name         string
	Description  string
	TypeFunction TypeFunction
	Args         []interface{}
	Definition   string
}

func NewFunction added in v1.0.3

func NewFunction(name string, tp TypeFunction) *Function

* * NewFunction * @param name string * @param tp TypeFunction * @return *Function *

type HandlerListener added in v1.0.4

type HandlerListener func(res et.Json)

type Index

type Index struct {
	Column *Column
	Sorted bool
}

func NewIndex added in v1.0.3

func NewIndex(col *Column, sorted bool) *Index

* * NewIndex * @param col *Column * @param sorted bool * @return *Index *

type Linq added in v1.0.3

type Linq struct {
	Db       *DB
	TypeLinq TypeLinq
	Froms    []*LinqFrom
	Joins    []*LinqJoin
	Wheres   []*LinqWhere
	GroupBys []*LinqSelect
	Havings  []*LinqWhere
	Selects  []*LinqSelect
	Orders   []*LinqOrder
	Offset   int
	Limit    int
	Show     bool
	Sql      string
	Result   et.Items
	// contains filtered or unexported fields
}

func From

func From(m *Model) *Linq

func (*Linq) All added in v1.0.3

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

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

func (*Linq) And added in v1.0.3

func (s *Linq) And(col interface{}) *LinqFilter

* * And * @param col interface{} * @return *LinqWheres *

func (*Linq) Avg added in v1.0.3

func (s *Linq) Avg(column interface{}) *Linq

* * Avg * @param column interface{} * @return *Linq *

func (*Linq) Count added in v1.0.3

func (s *Linq) Count(column interface{}) *Linq

* * Count * @param column interface{} * @return *Linq *

func (*Linq) Data added in v1.0.3

func (s *Linq) Data(columns ...interface{}) *Linq

* * Data * @param columns ...interface{} * @return *Linq *

func (*Linq) Debug added in v1.0.3

func (s *Linq) Debug() *Linq

* * Debug * @return *Linq *

func (*Linq) Describe added in v1.0.3

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

func (*Linq) First added in v1.0.3

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

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

func (*Linq) FullJoin added in v1.0.3

func (s *Linq) FullJoin(m *Model) *LinqJoin

* * FullJoin * @param m *Model * @return *Linq *

func (*Linq) GroupBy added in v1.0.3

func (s *Linq) GroupBy(columns ...interface{}) *Linq

* * GroupBy * @param columns ...interface{} * @return *Linq *

func (*Linq) Having added in v1.0.3

func (s *Linq) Having(col interface{}) *LinqWhere

* * Having * @param col interface{} * @return *LinqWhere *

func (*Linq) Join added in v1.0.3

func (s *Linq) Join(m *Model) *LinqJoin

* * LinqJoin * @param m *Model * @return *Linq *

func (*Linq) Last added in v1.0.3

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

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

func (*Linq) LeftJoin added in v1.0.3

func (s *Linq) LeftJoin(m *Model) *LinqJoin

* * LeftJoin * @param m *Model * @return *Linq *

func (*Linq) List added in v1.0.3

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

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

func (*Linq) Max added in v1.0.3

func (s *Linq) Max(column interface{}) *Linq

* * Max * @param column interface{} * @return *Linq *

func (*Linq) Min added in v1.0.3

func (s *Linq) Min(column interface{}) *Linq

* * Min * @param column interface{} * @return *Linq *

func (*Linq) One added in v1.0.3

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

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

func (*Linq) Or added in v1.0.3

func (s *Linq) Or(col interface{}) *LinqFilter

* * And * @param col interface{} * @return *LinqWhere *

func (*Linq) OrderBy added in v1.0.3

func (s *Linq) OrderBy(sorted bool, columns ...interface{}) *Linq

* * OrderBy * @param sorted bool * @param columns ...interface{} * @return *Linq *

func (*Linq) OrderByAsc added in v1.0.3

func (s *Linq) OrderByAsc(columns ...interface{}) *Linq

* * OrderByAsc * @param columns ...interface{} * @return *Linq *

func (*Linq) OrderByDesc added in v1.0.3

func (s *Linq) OrderByDesc(columns ...interface{}) *Linq

* * OrderByDesc * @param columns ...interface{} * @return *Linq *

func (*Linq) Page added in v1.0.3

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

* * Offset * @param offset int * @return *Linq *

func (*Linq) Query added in v1.0.4

func (s *Linq) Query(query []string) *Linq

* * Query * @param query []string * @return Linq *

func (*Linq) RightJoin added in v1.0.3

func (s *Linq) RightJoin(m *Model) *LinqJoin

* * RightJoin * @param m *Model * @return *Linq *

func (*Linq) Rows added in v1.0.3

func (s *Linq) Rows(val int) (et.List, error)

* * Limit * @param limit int * @return *Linq *

func (*Linq) Select added in v1.0.3

func (s *Linq) Select(columns ...interface{}) *Linq

* * Select * @param columns ...interface{} * @return *Linq *

func (*Linq) Sum added in v1.0.3

func (s *Linq) Sum(column interface{}) *Linq

* * Sum * @param column interface{} * @return *Linq *

func (*Linq) Where added in v1.0.3

func (s *Linq) Where(col interface{}) *LinqFilter

* * Select * @param columns ...interface{} * @return *Linq *

type LinqFilter added in v1.0.3

type LinqFilter struct {
	Linq   *Linq
	Wheres []*LinqWhere
	// contains filtered or unexported fields
}

func NewLinqFilter added in v1.0.3

func NewLinqFilter(l *Linq, whers []*LinqWhere) *LinqFilter

* * NewLinqFilter * @param l *Linq * @param wheres []*LinqWhere * @return *LinqFilter *

func (*LinqFilter) Between added in v1.0.3

func (s *LinqFilter) Between(val1, val2 interface{}) *Linq

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

func (*LinqFilter) Eq added in v1.0.3

func (s *LinqFilter) Eq(val interface{}) *Linq

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

func (*LinqFilter) In added in v1.0.3

func (s *LinqFilter) In(val ...interface{}) *Linq

* * In * @param val ...interface{} * @return *Linq *

func (*LinqFilter) IsNull added in v1.0.3

func (s *LinqFilter) IsNull() *Linq

* * IsNull * @return *Linq *

func (*LinqFilter) Less added in v1.0.3

func (s *LinqFilter) Less(val interface{}) *Linq

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

func (*LinqFilter) LessEs added in v1.0.3

func (s *LinqFilter) LessEs(val interface{}) *Linq

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

func (*LinqFilter) Like added in v1.0.3

func (s *LinqFilter) Like(val interface{}) *Linq

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

func (*LinqFilter) More added in v1.0.3

func (s *LinqFilter) More(val interface{}) *Linq

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

func (*LinqFilter) MoreEq added in v1.0.3

func (s *LinqFilter) MoreEq(val interface{}) *Linq

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

func (*LinqFilter) Neg added in v1.0.3

func (s *LinqFilter) Neg(val interface{}) *Linq

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

func (*LinqFilter) Search added in v1.0.3

func (s *LinqFilter) Search(val interface{}) *Linq

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

type LinqFrom added in v1.0.3

type LinqFrom struct {
	Model
	As string
}

type LinqJoin added in v1.0.3

type LinqJoin struct {
	Linq     *Linq
	TypeJoin TypeJoin
	From     *LinqFrom
	Wheres   []*LinqWhere
}

func (*LinqJoin) On added in v1.0.3

func (s *LinqJoin) On(col interface{}) *LinqFilter

* * On * @param col interface{} * @return *Linq *

type LinqOrder added in v1.0.3

type LinqOrder struct {
	LinqSelect
	Sorted bool
}

type LinqSelect added in v1.0.3

type LinqSelect struct {
	From     *LinqFrom
	Field    string
	Function TypeFuntion
}

func (*LinqSelect) As added in v1.0.3

func (s *LinqSelect) As() string

type LinqWhere added in v1.0.3

type LinqWhere struct {
	Conector Connector
	A        interface{}
	Operator Operator
	B        interface{}
}

type Model

type Model struct {
	Db             *DB
	Schema         *Schema
	CreatedAt      time.Time              `json:"created_date"`
	UpdateAt       time.Time              `json:"update_date"`
	Name           string                 `json:"name"`
	Table          string                 `json:"table"`
	Description    string                 `json:"description"`
	Columns        []*Column              `json:"columns"`
	Details        map[string]Detail      `json:"details"`
	Indices        map[string]*Index      `json:"indices"`
	Uniques        map[string]*Index      `json:"uniques"`
	Keys           map[string]*Column     `json:"keys"`
	References     map[string]*References `json:"references"`
	Dictionaries   map[string]*Dictionary `json:"dictionaries"`
	ColRequired    map[string]bool        `json:"col_required"`
	SourceField    *Column                `json:"data_field"`
	SystemKeyField *Column                `json:"key_field"`
	StateField     *Column                `json:"state_field"`
	IndexField     *Column                `json:"index_field"`
	ClassField     *Column                `json:"class_field"`
	FullTextField  *Column                `json:"full_text"`
	BeforeInsert   []Trigger              `json:"before_insert"`
	AfterInsert    []Trigger              `json:"after_insert"`
	BeforeUpdate   []Trigger              `json:"before_update"`
	AfterUpdate    []Trigger              `json:"after_update"`
	BeforeDelete   []Trigger              `json:"before_delete"`
	AfterDelete    []Trigger              `json:"after_delete"`
	Functions      map[string]*Function   `json:"functions"`
	Integrity      bool                   `json:"integrity"`
}

func NewCollection added in v1.0.4

func NewCollection(schema *Schema, name string) *Model

* * NewCollection * @param schema *Schema * @param name string * @return *Model *

func NewModel

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

* * NewModel * @param schema *Schema * @param name string * @return *Model *

func (*Model) Bulk

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

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

func (*Model) Col added in v1.0.3

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

* * Col * @param name string * @return *Column *

func (*Model) Column added in v1.0.3

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

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

func (*Model) DefineAtribute

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

* * DefineAtribute * @param name string * @param typeData TypeData * @param def interface{} * @return *Model *

func (*Model) DefineColumn

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

* * DefineColumn * @param name string * @param typeData TypeData * @param def interface{} * @return *Model *

func (*Model) DefineDetail

func (s *Model) DefineDetail(name string, detail Detail) *Model

* * DefineDetail * @param name string * @param detail Detail * @return *Model *

func (*Model) DefineDictionary added in v1.0.3

func (s *Model) DefineDictionary(name, key string, value interface{}) *Dictionary

* * DefineDictionary * @param name string * @param key string * @param value interface{} * @return *Dictionary *

func (*Model) DefineFunction added in v1.0.3

func (s *Model) DefineFunction(name string, tp TypeFunction, definition string) *Model

* * DefineFunction * @param name string * @param function string * @return *Model *

func (*Model) DefineIndex

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

* * DefineIndex * @param colums ...*Column * @return *Model *

func (*Model) DefineKey added in v1.0.3

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

* * DefineKey * @param colums ...*Column * @return *Model *

func (*Model) DefineRequired

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

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

func (*Model) DefineTrigger added in v1.0.3

func (s *Model) DefineTrigger(tp TypeTrigger, trigger Trigger) *Model

* * DefineTrigger * @param tp TypeTrigger * @param trigger Trigger * @return *Model *

func (*Model) DefineUnique

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

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

func (*Model) Delete

func (s *Model) Delete() *Command

* * Delete * @return *Command *

func (*Model) Describe

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

* * Describe * @return et.Json *

func (*Model) FullText added in v1.0.3

func (s *Model) FullText() *Column

* * Col * @param name string * @return *Column *

func (*Model) GetColumn added in v1.0.3

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

* * DefineColumn * @param name string * @return *Column *

func (*Model) GetColumns added in v1.0.3

func (s *Model) GetColumns(names ...string) []*Column

* * DefineColumn * @param name string * @return *Column *

func (*Model) GetDetails added in v1.0.3

func (s *Model) GetDetails(data *et.Json)

* * GetDetails * @param data *et.Json * @return error *

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) OnListener added in v1.0.4

func (s *Model) OnListener(channels []string, listener HandlerListener)

func (*Model) Update

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

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

type Operator

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

type References added in v1.0.4

type References struct {
	Model           *Model
	To              string
	TypeRelation    TypeReferences
	Key             *Column
	ForeignKey      string
	OnDeleteCascade bool
	OnUpdateCascade bool
}

type Schema

type Schema struct {
	Db          *DB
	CreatedAt   time.Time `json:"created_date"`
	UpdateAt    time.Time `json:"update_date"`
	Name        string    `json:"name"`
	Description string    `json:"description"`
	Models      map[string]*Model
}

func NewSchema

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

func (*Schema) Describe

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

* * Describe * @return et.Json *

func (*Schema) Init added in v1.0.3

func (s *Schema) Init() error

* * Init * @return error *

type Trigger added in v1.0.3

type Trigger func(old et.Json, new *et.Json, data et.Json) error

type TypeColumn

type TypeColumn int
const (
	TpColumn TypeColumn = iota
	TpAtribute
)

type TypeCommand

type TypeCommand int
const (
	Insert TypeCommand = iota
	Update
	Delete
)

type TypeData

type TypeData int
const (
	TypeDataText TypeData = iota
	TypeDataMemo
	TypeDataShortText
	TypeDataKey
	TypeDataInt
	TypeDataNumber
	TypeDataPrecision
	TypeDataSerie
	TypeDataBool
	TypeDataTime
	// Special
	TypeDataObject
	TypeDataArray
	TypeFullText
)

func (TypeData) DefaultValue

func (s TypeData) DefaultValue() interface{}

type TypeFunction added in v1.0.3

type TypeFunction int
const (
	TpSqlFunction TypeFunction = iota
	TpJsFunction
	TpGoFunction
	TpPythonFunction
)

type TypeFuntion added in v1.0.3

type TypeFuntion int
const (
	Sum TypeFuntion = iota
	Count
	Avg
	Max
	Min
)

type TypeJoin

type TypeJoin int
const (
	TypeJoinInner TypeJoin = iota
	TypeJoinLeft
	TypeJoinRight
	TypeJoinFull
)

type TypeLinq added in v1.0.3

type TypeLinq int
const (
	TypeLinqSelect TypeLinq = iota
	TypeLinqData
)

type TypeReferences added in v1.0.4

type TypeReferences int
const (
	RelationOneToOne TypeReferences = iota
	RelationOneToMany
	RelationManyToMany
)

type TypeTrigger added in v1.0.3

type TypeTrigger int
const (
	BeforeInsert TypeTrigger = iota
	AfterInsert
	BeforeUpdate
	AfterUpdate
	BeforeDelete
	AfterDelete
)

Jump to

Keyboard shortcuts

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