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

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

	From string        `yaml:"from"`
10
	Type  string  `yaml:"type"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
11 12
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
13 14
// instance res
type ResInsts struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
15
	ClsBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
16 17
	Field string        `yaml:"field"`
	Instances []ResInst `yaml:"instances,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
18

aaronchen2k2k's avatar
aaronchen2k2k 已提交
19
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
20
type ResInst struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
21
	FieldBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
22
	Instance string  `yaml:"instance"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
23
	Fields  []DefField `yaml:"fields,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
24 25

	Froms []DefField `yaml:"froms,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
26 27
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
28 29 30
// range res
type ResRanges struct {
	ClsBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
31
	Field string        `yaml:"field"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
32 33 34
	Ranges map[string]string  `yaml:"ranges"`
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
35
// common item
aaronchen2k2k's avatar
aaronchen2k2k 已提交
36
type DefData struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
37
	ClsBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
38 39 40
	Fields  []DefField `yaml:"fields,flow"`
}
type DefField struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
41
	FieldBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
42
	Fields   []DefField `yaml:"fields,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
43
	Width int `yaml:"width"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
44 45
	LeftPad string `yaml:"leftpad"`
	RightPad string `yaml:"rightpad"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
46
	Path string
aaronchen2k2k's avatar
aaronchen2k2k 已提交
47 48

	Froms []DefField `yaml:"froms,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
49 50
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
51
// base struct
aaronchen2k2k's avatar
aaronchen2k2k 已提交
52
type FieldBase struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
53
	FieldSimple   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
54

aaronchen2k2k's avatar
aaronchen2k2k 已提交
55
	Config	string  `yaml:"config"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
56 57 58
	From	string  `yaml:"from"`
	Select	string  `yaml:"select"`
	Where	string  `yaml:"where"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
59
	Limit	int  `yaml:"limit"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
60 61
	Use	string  `yaml:"use"`

aaronchen2k2k's avatar
aaronchen2k2k 已提交
62 63 64 65 66 67 68
	IsNumb  bool  `yaml:"isNumb"`
	Expect  string  `yaml:"expect"`

	Precision int
}
type DefSimple struct {
	ClsBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
69
	Fields  []FieldSimple `yaml:"fields"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
70 71 72 73
}
type FieldSimple struct {
	Field  string  `yaml:"field"`
	Note     string  `yaml:"note"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
74
	Range    string  `yaml:"range"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
75 76
	Prefix   string  `yaml:"prefix"`
	Postfix  string  `yaml:"postfix"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
77
	Loop  string  `yaml:"loop"`
aaronchen2k2k's avatar
gen int  
aaronchen2k2k 已提交
78
	Loopfix  string  `yaml:"loopfix"`
aaronchen2k2k's avatar
format  
aaronchen2k2k 已提交
79
	Format  string  `yaml:"format"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
80
	Rand  bool  `yaml:"rand"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
81
	Type  string  `yaml:"type"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
82
	Mode  string  `yaml:"mode"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
83

aaronchen2k2k's avatar
aaronchen2k2k 已提交
84 85 86 87 88
	LoopStart          int  `yaml:"-"`
	LoopEnd            int  `yaml:"-"`
	LoopIndex          int  `yaml:"-"`
	IsRand             bool `yaml:"-"`
	ReferToAnotherYaml bool `yaml:"-"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
89
}
90

91
type FieldWithValues struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
92
	FieldBase   `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
93
	Field     string  `yaml:"field"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
94
	Values   []interface{}
95
	ValuesWithPlaceholder []string
aaronchen2k2k's avatar
aaronchen2k2k 已提交
96 97
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
98 99 100 101 102
type DefInfo struct {
	Title string   `yaml:"title"`
	Desc string  `yaml:"desc"`
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
103
func (def *DefSimple) Init(tableName, author, desc, version string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
104 105 106 107 108
	def.Title = "table " + tableName
	def.Author = author
	def.Desc = desc
	def.Version = version
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
109
func (fld *FieldSimple) Init(field string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
110
	fld.Field = field
aaronchen2k2k's avatar
aaronchen2k2k 已提交
111 112 113 114 115 116 117 118 119
}


type DefExport struct {
	ClsBase   `yaml:",inline"`
	XFields  []DefFieldExport `yaml:"xfields,flow"` // control orders
}
type DefFieldExport struct {
	Field string  `yaml:"field"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
120 121
	Prefix string  `yaml:"prefix,omitempty"`
	Postfix  string  `yaml:"postfix,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
122

aaronchen2k2k's avatar
aaronchen2k2k 已提交
123 124
	Select	string  `yaml:"select,omitempty"`
	Where	string  `yaml:"where,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
125
	Rand  bool  `yaml:"rand"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
126
	Limit	int  `yaml:"limit,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
127 128 129 130 131 132 133 134 135 136
}
type Article struct {
	Title   string `yaml:"title"`
	Desc    string `yaml:"desc"`
	Author  string `yaml:"author"`
	Type  string  `yaml:"type"`
	XFields  []ArticleField `yaml:"xfields,flow"` // control orders
}
type ArticleField struct {
	Field string  `yaml:"field"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
137
	Range  string  `yaml:"range,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
138 139
	Prefix string  `yaml:"prefix,omitempty"`
	Postfix  string  `yaml:"postfix,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
140 141 142 143 144 145
}
type ArticleSent struct {
	Type string
	Val string
	IsParag bool
	IsSent bool
146
}