You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
3.1 KiB
Go

package model
const (
_tagGorm = "gorm"
_tagJSON = "json"
)
// ColumusKey Columus type elem. 类型枚举
type ColumusKey int
const (
// ColumusKeyDefault default
ColumusKeyDefault = iota
// ColumusKeyPrimary primary key.主键
ColumusKeyPrimary
// ColumusKeyUnique unique key.唯一索引
ColumusKeyUnique
// ColumusKeyIndex index key.复合索引
ColumusKeyIndex
// ColumusKeyUniqueIndex unique index key.唯一复合索引
ColumusKeyUniqueIndex
)
// DBInfo database default info
type DBInfo struct {
DbName string // database name
PackageName string // package name
TabList []TabInfo // table list .表列表
}
// TabInfo database table default attribute
type TabInfo struct {
BaseInfo
SQLBuildStr string // Create SQL statements.创建sql语句
Em []ColumusInfo // Columus list .表列表组合
}
// ColumusInfo Columus list .表列信息
type ColumusInfo struct {
BaseInfo
Type string // Type.类型标记
Index []KList // index list.index列表
IsNull bool // null if db is set null
ForeignKeyList []ForeignKey // Foreign key list . 表的外键信息
}
// ForeignKey Foreign key of db info . 表的外键信息
type ForeignKey struct {
TableName string // Affected tables . 该索引受影响的表
ColumnName string // Which column of the affected table.该索引受影响的表的哪一列
}
// KList database index /unique_index list.数据库index /unique_index 列表
type KList struct {
Key ColumusKey // non_unique of (show keys from [table])
KeyName string // key_name of (show keys from [table])
}
// BaseInfo base common attribute. 基础属性
type BaseInfo struct {
Name string // table name.表名
Notes string // table comment . 表注释
}
// GenOutInfo generate file list. 生成的文件列表
type GenOutInfo struct {
FileName string // output file name .输出文件名
FileCtx string // output file context. 输出文件内容
}
// def func sturct
// PreloadInfo 预加载列表
type PreloadInfo struct {
IsMulti bool
Notes string // 注释
ForeignkeyStructName string // 外键类目
ForeignkeyTableName string // 外键表名
ForeignkeyCol string // 外键列表
ColName string // 表名
ColStructName string // 表结构体
}
// EmInfo func 表结构定义
// FEm ...
type FEm struct {
Type string // 类型
ColName string // 列名
ColStructName string // 列结构体
}
// FList index of list
type FList struct {
Key ColumusKey // non_unique of (show keys from [table])
KeyName string // key_name of (show keys from [table])
Kem []FEm
}
// EmInfo element of func info
type EmInfo struct {
IsMulti bool
Notes string // 注释
Type string // 类型
ColName string // 列名
ColStructName string // 列结构体
}
type funDef struct {
StructName string
TableName string
PreloadList []PreloadInfo // 外键列表,(生成关联数据)
Em []EmInfo // index 列表
Primay []FList // primay unique
Index []FList // index
}
//