|
- package mapping
-
- import (
- "fmt"
- "strings"
-
- "qctextbuilder/internal/domain"
- )
-
- type Service interface {
- AssembleAIData(fields []domain.TemplateField, values map[string]string) (map[string]map[string]any, error)
- }
-
- type RawKeyService struct{}
-
- func New() *RawKeyService {
- return &RawKeyService{}
- }
-
- func (s *RawKeyService) AssembleAIData(fields []domain.TemplateField, values map[string]string) (map[string]map[string]any, error) {
- allowed := make(map[string]domain.TemplateField, len(fields))
- for _, f := range fields {
- if !f.IsEnabled || f.FieldKind != "text" {
- continue
- }
- allowed[f.Path] = f
- }
-
- out := make(map[string]map[string]any)
- for path, value := range values {
- if strings.TrimSpace(value) == "" {
- continue
- }
- f, ok := allowed[path]
- if !ok {
- return nil, fmt.Errorf("unknown or disabled field path: %s", path)
- }
- if out[f.Section] == nil {
- out[f.Section] = make(map[string]any)
- }
- out[f.Section][f.KeyName] = value
- }
- return out, nil
- }
|