| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- package ii
 
- import (
 
- 	"golib/features/mo"
 
- )
 
- func (f *FieldInfo) DefaultValue() any {
 
- 	return f.defaultValue
 
- }
 
- func (f *FieldInfo) EnumsValue() mo.A {
 
- 	enum := make(mo.A, len(f.enums))
 
- 	for i, e := range f.enums {
 
- 		enum[i] = e
 
- 	}
 
- 	return enum
 
- }
 
- func (f *FieldInfo) SubField(name string) (FieldInfo, bool) {
 
- 	for _, field := range f.Fields {
 
- 		if field.Name == name {
 
- 			return field, true
 
- 		}
 
- 	}
 
- 	return FieldInfo{}, false
 
- }
 
- func (f *FieldInfo) HasLookup() bool {
 
- 	return f.Lookup.ForeignField != "" && f.Lookup.From != "" && f.Lookup.AS != ""
 
- }
 
- func (f *FieldInfo) Looker() *mo.Looker {
 
- 	l := new(mo.Looker)
 
- 	l.From(f.Lookup.From)
 
- 	l.LocalField(f.Name)
 
- 	l.ForeignField(f.Lookup.ForeignField)
 
- 	l.As(f.Lookup.AS)
 
- 	pipe := mo.Pipeline{}
 
- 	if !f.Lookup.List {
 
- 		pipe = append(pipe, mo.NewLimiter(1).Pipeline())
 
- 	}
 
- 	if len(f.Fields) > 0 {
 
- 		p := mo.Projecter{}
 
- 		for _, field := range f.Fields {
 
- 			p.AddEnable(field.Name)
 
- 		}
 
- 		pipe = append(pipe, p.Pipeline())
 
- 	}
 
- 	l.Pipe(pipe)
 
- 	return l
 
- }
 
- func (f *FieldInfo) ValidateJSON() (j FieldInfoJSON) {
 
- 	j.Name = f.Name
 
- 	j.Label = f.Label
 
- 	j.Type = f.Type.String()
 
- 	j.Required = f.Required
 
- 	j.Unique = f.Unique
 
- 	j.Minimum = f.Minimum
 
- 	j.Maximum = f.Maximum
 
- 	j.Decimal = f.Decimal
 
- 	j.Default = f.DefaultValue()
 
- 	j.Enums = f.EnumsValue()
 
- 	j.Pattern = f.Pattern
 
- 	j.Fields = make([]FieldInfoJSON, len(f.Fields))
 
- 	for i, subField := range f.Fields {
 
- 		j.Fields[i] = subField.ValidateJSON()
 
- 	}
 
- 	return
 
- }
 
 
  |