github.com/profzone/eden-framework@v1.0.10/internal/generator/api/model.go (about) 1 package api 2 3 import "strings" 4 5 type OperatorModel struct { 6 ID string `json:"id"` 7 Name string `json:"name"` 8 Package string `json:"package"` 9 Fields []OperatorField `json:"fields,omitempty"` 10 NeedAlias bool `json:"needAlias"` 11 } 12 13 func NewOperatorModel(name string, pkgID string) OperatorModel { 14 return OperatorModel{ 15 ID: strings.Join([]string{pkgID, name}, "."), 16 Name: name, 17 Package: pkgID, 18 Fields: make([]OperatorField, 0), 19 } 20 } 21 22 func (m *OperatorModel) AddField(key, keyType, tag, alias, ipt string, pointer bool) { 23 m.Fields = append(m.Fields, OperatorField{ 24 Key: key, 25 Type: keyType, 26 Tag: tag, 27 Alias: alias, 28 Imports: ipt, 29 Pointer: pointer, 30 }) 31 } 32 33 func (m *OperatorModel) WalkFields(walker func(f OperatorField)) { 34 for _, field := range m.Fields { 35 walker(field) 36 } 37 } 38 39 type OperatorField struct { 40 Key string `json:"key"` 41 Type string `json:"type"` 42 Tag string `json:"tag"` 43 Alias string `json:"alias"` 44 Imports string `json:"imports"` 45 Pointer bool `json:"pointer"` 46 }