|
|
package model |
|
|
|
|
|
|
|
|
func GetMissingModels() ([]string, error) { |
|
|
|
|
|
models := GetEnabledModels() |
|
|
if len(models) == 0 { |
|
|
return []string{}, nil |
|
|
} |
|
|
|
|
|
|
|
|
var existing []string |
|
|
if err := DB.Model(&Model{}).Where("model_name IN ?", models).Pluck("model_name", &existing).Error; err != nil { |
|
|
return nil, err |
|
|
} |
|
|
|
|
|
existingSet := make(map[string]struct{}, len(existing)) |
|
|
for _, e := range existing { |
|
|
existingSet[e] = struct{}{} |
|
|
} |
|
|
|
|
|
|
|
|
var missing []string |
|
|
for _, name := range models { |
|
|
if _, ok := existingSet[name]; !ok { |
|
|
missing = append(missing, name) |
|
|
} |
|
|
} |
|
|
return missing, nil |
|
|
} |
|
|
|