ishaq101's picture
[KM-462] [DED][AI] Agnostic Interviewer Agent (Voice Capability) - Add
add6016
Raw
History Blame Contribute Delete
1.14 kB
package framework
import (
"errors"
"fmt"
"project/internal/domain"
)
func ValidateFramework(fw *domain.InterviewFramework) error {
if fw == nil {
return errors.New("framework is nil")
}
if fw.Framework.ID == "" {
return errors.New("framework.id is required")
}
if fw.Framework.Name == "" {
return errors.New("framework.name is required")
}
if len(fw.Interview.Sections) == 0 {
return errors.New("interview.sections must not be empty")
}
sectionIDs := map[string]bool{}
questionIDs := map[string]bool{}
for _, sec := range fw.Interview.Sections {
if sec.ID == "" {
return errors.New("section.id is required")
}
if sectionIDs[sec.ID] {
return fmt.Errorf("duplicate section.id: %s", sec.ID)
}
sectionIDs[sec.ID] = true
if len(sec.Questions) == 0 {
return fmt.Errorf("section %s must have at least one question", sec.ID)
}
for _, q := range sec.Questions {
if q.ID == "" {
return fmt.Errorf("question.id required in section %s", sec.ID)
}
if questionIDs[q.ID] {
return fmt.Errorf("duplicate question.id: %s", q.ID)
}
questionIDs[q.ID] = true
}
}
return nil
}