| 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
|
| }
|
|
|