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

3 4
import "time"

aaronchen2k2k's avatar
aaronchen2k2k 已提交
5
type ClsInfo struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
6 7
	Title   string `yaml:"title"`
	Desc    string `yaml:"desc"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
8 9
	Author  string `yaml:"author,omitempty"`
	Version string `yaml:"version,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
10 11 12
}
type ClsBase struct {
	ClsInfo `yaml:",inline"`
陈琦 已提交
13 14
	From    string `yaml:"from,omitempty"`
	Type    string `yaml:"type,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
15 16
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
17 18
// config res
type ResConfig struct {
陈琦 已提交
19
	ClsInfo     `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
20 21 22
	FieldSimple `yaml:",inline"`
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
23 24
// range res
type ResRanges struct {
陈琦 已提交
25
	ClsInfo `yaml:",inline"`
陈琦 已提交
26
	FileDir string            `yaml:"fileDir,omitempty"`
陈琦 已提交
27
	Ranges  map[string]string `yaml:"ranges"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
28 29 30 31
}

// instance res
type ResInstances struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
32
	ClsBase   `yaml:",inline"`
陈琦 已提交
33
	FileDir   string             `yaml:"fileDir,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
34
	Instances []ResInstancesItem `yaml:"instances,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
35
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
36
type ResInstancesItem struct {
陈琦 已提交
37 38 39 40
	FieldBase `yaml:",inline"`
	Instance  string     `yaml:"instance"`
	Fields    []DefField `yaml:"fields,flow"`
	Froms     []DefField `yaml:"froms,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
41 42 43
}

// common item
aaronchen2k2k's avatar
aaronchen2k2k 已提交
44
type DefData struct {
陈琦 已提交
45
	ClsBase `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
46
	Fields  []DefField `yaml:"fields,flow"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
47 48

	Content string `yaml:"content"` // for article only
aaronchen2k2k's avatar
aaronchen2k2k 已提交
49 50
}
type DefField struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
51
	FieldBase `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
52 53 54 55 56
	Fields    []DefField `yaml:"fields,flow,omitempty"`
	Length    int        `yaml:"length,omitempty"`
	LeftPad   string     `yaml:"leftpad,omitempty"`
	RightPad  string     `yaml:"rightpad,omitempty"`
	Path      string     `yaml:"path,omitempty"`
陈琦 已提交
57
	FileDir   string     `yaml:"fileDir,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
58
	Union     bool       `yaml:"union,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
59

aaronchen2k2k's avatar
aaronchen2k2k 已提交
60
	Froms []DefField `yaml:"froms,flow,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
61 62
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
63 64 65 66 67 68 69 70 71
type DefArticle struct {
	Author  string `yaml:"author"`
	From    string `yaml:"from"`
	Title   string `yaml:"title"`
	Type    string `yaml:"type"`
	Version string `yaml:"version"`
	Content string `yaml:"content"`
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
72
// base struct
aaronchen2k2k's avatar
aaronchen2k2k 已提交
73
type FieldBase struct {
陈琦 已提交
74
	FieldSimple `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
75

陈琦 已提交
76 77 78 79
	Config string `yaml:"config,omitempty"`
	Select string `yaml:"select,omitempty"`
	Where  string `yaml:"where,omitempty"`
	Limit  int    `yaml:"limit,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
80

陈琦 已提交
81 82
	IsNumb bool   `yaml:"isNumb,omitempty"`
	Expect string `yaml:"expect,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
83

陈琦 已提交
84
	Precision int `yaml:"precision,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
85 86
}
type DefSimple struct {
陈琦 已提交
87
	ClsBase `yaml:",inline"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
88
	Fields  []FieldSimple `yaml:"fields"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
89 90
}
type FieldSimple struct {
陈琦 已提交
91 92 93 94 95 96
	Field   string `yaml:"field,omitempty"`
	Note    string `yaml:"note,omitempty"`
	Range   string `yaml:"range,omitempty"`
	Value   string `yaml:"value,omitempty"`
	Prefix  string `yaml:"prefix,omitempty"`
	Postfix string `yaml:"postfix,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
97
	Divider string `yaml:"divider,omitempty"`
陈琦 已提交
98 99 100 101 102 103
	Loop    string `yaml:"loop,omitempty"`
	Loopfix string `yaml:"loopfix,omitempty"`
	Format  string `yaml:"format,omitempty"`
	Rand    bool   `yaml:"rand,omitempty"`
	Type    string `yaml:"type,omitempty"`
	Mode    string `yaml:"mode,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
104 105
	From    string `yaml:"from,omitempty"`
	Use     string `yaml:"use,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
106

aaronchen2k2k's avatar
aaronchen2k2k 已提交
107 108 109 110 111
	LoopStart          int  `yaml:"-"`
	LoopEnd            int  `yaml:"-"`
	LoopIndex          int  `yaml:"-"`
	IsRand             bool `yaml:"-"`
	ReferToAnotherYaml bool `yaml:"-"`
112 113 114 115 116 117 118 119 120

	PrefixRange  *Range `yaml:"-"`
	PostfixRange *Range `yaml:"-"`
}

// add by Leo [2022/04/27]
type Range struct {
	Values []interface{}
	IsRand bool
aaronchen2k2k's avatar
aaronchen2k2k 已提交
121
}
122

123
type FieldWithValues struct {
陈琦 已提交
124 125 126
	FieldBase             `yaml:",inline"`
	Field                 string `yaml:"field"`
	Values                []interface{}
127
	ValuesWithPlaceholder []string
aaronchen2k2k's avatar
aaronchen2k2k 已提交
128 129
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
130
type DefInfo struct {
陈琦 已提交
131 132
	Title string `yaml:"title"`
	Desc  string `yaml:"desc"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
133

陈琦 已提交
134 135 136 137
	Fields    interface{} `yaml:"fields,omitempty"`    // is yaml
	Range     string      `yaml:"range,omitempty"`     // is config
	Ranges    interface{} `yaml:"ranges,omitempty"`    // is ranges
	Instances interface{} `yaml:"instances,omitempty"` // is instances
aaronchen2k2k's avatar
aaronchen2k2k 已提交
138 139
}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
140
func (def *DefSimple) Init(tableName, author, desc, version string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
141 142 143 144 145
	def.Title = "table " + tableName
	def.Author = author
	def.Desc = desc
	def.Version = version
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
146
func (fld *FieldSimple) Init(field string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
147
	fld.Field = field
aaronchen2k2k's avatar
aaronchen2k2k 已提交
148 149 150
}

type DefExport struct {
陈琦 已提交
151 152
	ClsBase `yaml:",inline"`
	XFields []DefFieldExport `yaml:"xfields,flow"` // control orders
aaronchen2k2k's avatar
aaronchen2k2k 已提交
153 154
}
type DefFieldExport struct {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
155 156 157 158 159 160 161 162
	Field   string `yaml:"field"`
	Prefix  string `yaml:"prefix,omitempty"`
	Postfix string `yaml:"postfix,omitempty"`
	Divider string `yaml:"divider,omitempty"`
	Select  string `yaml:"select,omitempty"`
	Where   string `yaml:"where,omitempty"`
	Rand    bool   `yaml:"rand"`
	Limit   int    `yaml:"limit,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
163 164
}
type Article struct {
陈琦 已提交
165 166 167 168 169
	Title   string         `yaml:"title"`
	Desc    string         `yaml:"desc"`
	Author  string         `yaml:"author"`
	Type    string         `yaml:"type"`
	XFields []ArticleField `yaml:"xfields,flow"` // control orders
aaronchen2k2k's avatar
aaronchen2k2k 已提交
170 171
}
type ArticleField struct {
陈琦 已提交
172 173 174 175
	Field   string `yaml:"field"`
	Range   string `yaml:"range,omitempty"`
	Prefix  string `yaml:"prefix,omitempty"`
	Postfix string `yaml:"postfix,omitempty"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
176 177
}
type ArticleSent struct {
陈琦 已提交
178 179
	Type    string
	Val     string
aaronchen2k2k's avatar
aaronchen2k2k 已提交
180
	IsParag bool
陈琦 已提交
181
	IsSent  bool
aaronchen2k2k's avatar
aaronchen2k2k 已提交
182
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
183 184

type ResFile struct {
陈琦 已提交
185 186 187 188
	Path      string    `json:"path"`
	Title     string    `json:"title"`
	Desc      string    `json:"desc"`
	ResType   string    `json:"resType"`
189
	UpdatedAt time.Time `json:"updatedAt"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
190

陈琦 已提交
191
	FileName  string `json:"fileName"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
192
	ReferName string `json:"referName"`
aaronchen2k2k's avatar
aaronchen2k2k 已提交
193
}
194
type ResField struct {
陈琦 已提交
195 196 197
	ID    uint   `json:"id"`
	Index int    `json:"index"`
	Name  string `json:"name"`
198
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
199 200 201 202 203

type Dir struct {
	Name string `json:"name"`
	Path string `json:-`
}