-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoptions.go
63 lines (53 loc) · 2.14 KB
/
options.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package gormmom
import (
"github.com/yyle88/gormmom/gormidxname"
"github.com/yyle88/gormmom/gormmomname"
)
type Options struct {
namingTagName string
columnNamePatternFieldName string
defaultColumnNamePattern gormmomname.ColumnNamePattern //默认检查规则
columnNamingStrategies map[gormmomname.ColumnNamePattern]gormmomname.Naming
skipBasicNaming bool //是否跳过简单字段,有的字段虽然没有配置名称或者规则,但是它满足简单字段,就也不做任何处理
renewIndexName bool
indexNamingStrategies map[gormidxname.IndexNamePattern]gormidxname.Naming
}
func NewOptions() *Options {
return &Options{
namingTagName: "mom",
columnNamePatternFieldName: "naming",
defaultColumnNamePattern: gormmomname.DefaultPattern, //默认检查规则,就是查看是不是63个合法字符(即字母数组下划线等)
columnNamingStrategies: gormmomname.GetNamingStrategies(),
skipBasicNaming: true,
renewIndexName: true,
indexNamingStrategies: gormidxname.GetNamingStrategies(),
}
}
func (opt *Options) WithNamingTagName(namingTagName string) *Options {
opt.namingTagName = namingTagName
return opt
}
func (opt *Options) WithColumnNamePatternFieldName(columnNamePatternFieldName string) *Options {
opt.columnNamePatternFieldName = columnNamePatternFieldName
return opt
}
func (opt *Options) WithDefaultColumnNamePattern(pattern gormmomname.ColumnNamePattern) *Options {
opt.defaultColumnNamePattern = pattern
return opt
}
func (opt *Options) WithColumnNamingStrategies(pattern gormmomname.ColumnNamePattern, naming gormmomname.Naming) *Options {
opt.columnNamingStrategies[pattern] = naming
return opt
}
func (opt *Options) WithSkipBasicNaming(skipBasicNaming bool) *Options {
opt.skipBasicNaming = skipBasicNaming
return opt
}
func (opt *Options) WithRenewIndexName(renewIndexName bool) *Options {
opt.renewIndexName = renewIndexName
return opt
}
func (opt *Options) WithIndexNamingStrategies(pattern gormidxname.IndexNamePattern, naming gormidxname.Naming) *Options {
opt.indexNamingStrategies[pattern] = naming
return opt
}