definition.go 1.9 KB
Newer Older
aaronchen2k2k's avatar
aaronchen2k2k 已提交
1 2
package model

aaronchen2k2k's avatar
aaronchen2k2k 已提交
3 4 5 6 7 8 9
type ClsBase struct {
	Title   string `yaml:"title"`
	Desc    string `yaml:"desc"`
	Author  string `yaml:"author"`
	Version string `yaml:"version"`
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
10 11
// instance res
type ResInsts struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
12
	ClsBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
13 14
	Field string        `yaml:"field"`
	Instances []ResInst `yaml:"instances,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
15
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
16
type ResInst struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
17
	FieldBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
18
	Instance string  `yaml:"instance"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
19
	Fields  []DefField `yaml:"fields,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
20 21
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
22 23 24 25 26 27 28
// range res
type ResRanges struct {
	ClsBase   `yaml:",inline"`
	FieldBase   `yaml:",inline"`
	Ranges map[string]string  `yaml:"ranges"`
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
29
// common item
aaronchen2k2k's avatar
aaronchen2k2k 已提交
30
type DefData struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
31
	ClsBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
32 33 34
	Fields  []DefField `yaml:"fields,flow"`
}
type DefField struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
35
	FieldBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
36
	Fields   []DefField `yaml:"fields,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
37 38 39
	Width int `yaml:"width"`
	LeftPad string `yaml:"leftPad"`
	RightPad string `yaml:"rightPad"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
40
	Path string
aaronchen2k2k's avatar
aaronchen2k2k 已提交
41 42
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
43
// base struct
aaronchen2k2k's avatar
aaronchen2k2k 已提交
44
type FieldBase struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
45
	FieldSimple   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
46

aaronchen2k2k's avatar
aaronchen2k2k 已提交
47
	Config	string  `yaml:"config"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
48 49 50 51 52
	From	string  `yaml:"from"`
	Select	string  `yaml:"select"`
	Where	string  `yaml:"where"`
	Use	string  `yaml:"use"`

aaronchen2k2k's avatar
aaronchen2k2k 已提交
53 54 55 56 57 58 59
	IsNumb  bool  `yaml:"isNumb"`
	Expect  string  `yaml:"expect"`

	Precision int
}
type DefSimple struct {
	ClsBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
60
	Fields  []FieldSimple `yaml:"fields"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
61 62 63 64
}
type FieldSimple struct {
	Field  string  `yaml:"field"`
	Note     string  `yaml:"note"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
65
	Range    string  `yaml:"range"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
66 67
	Prefix   string  `yaml:"prefix"`
	Postfix  string  `yaml:"postfix"`
aaronchen2k2k's avatar
gen int  
aaronchen2k2k 已提交
68 69
	Loop  int  `yaml:"loop"`
	Loopfix  string  `yaml:"loopfix"`
aaronchen2k2k's avatar
format  
aaronchen2k2k 已提交
70
	Format  string  `yaml:"format"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
71
}
72 73

type FieldValue struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
74
	FieldBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
75
	Field     string  `yaml:"field"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
76
	Values   []interface{}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
77 78
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
79
func (def *DefSimple) Init(tableName, author, desc, version string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
80 81 82 83 84
	def.Title = "table " + tableName
	def.Author = author
	def.Desc = desc
	def.Version = version
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
85
func (fld *FieldSimple) Init(field string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
86
	fld.Field = field
87
}