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  }