package run import ( "encoding/json" "git.iwork-ai.com/xdc/iqudo-top1/internal/model" "gorm.io/gorm" ) type knowledgeSnapshot struct { Items []model.KnowledgeItem `json:"items"` Relations []model.KnowledgeRelation `json:"relations"` } func snapshotKnowledge(db *gorm.DB, tenantID, scenarioID uint64) ([]byte, error) { var snapshot knowledgeSnapshot if err := db.Where("tenant_id = ? AND scenario_id = ? AND status = ?", tenantID, scenarioID, "active").Order("sort_order,id").Find(&snapshot.Items).Error; err != nil { return nil, err } if err := db.Where("tenant_id = ? AND scenario_id = ?", tenantID, scenarioID).Order("sort_order,id").Find(&snapshot.Relations).Error; err != nil { return nil, err } return json.Marshal(snapshot) } func parseKnowledgeSnapshot(raw []byte) (knowledgeSnapshot, error) { var snapshot knowledgeSnapshot err := json.Unmarshal(raw, &snapshot) return snapshot, err }