package store import "spider/internal/model" // ListEnabledKeywords returns all enabled keywords (excluding seeds). func (s *Store) ListEnabledKeywords() ([]model.Keyword, error) { var keywords []model.Keyword err := s.DB.Where("enabled = ? AND industry_tag != ?", true, "seed").Find(&keywords).Error return keywords, err } // ListSeeds returns all enabled seed entries (industry_tag = 'seed'). func (s *Store) ListSeeds() ([]model.Keyword, error) { var seeds []model.Keyword err := s.DB.Where("enabled = ? AND industry_tag = ?", true, "seed").Find(&seeds).Error return seeds, err } // ListAllKeywords returns all keywords for the given filters, paginated. func (s *Store) ListAllKeywords(industryTag string, page, pageSize int) ([]model.Keyword, int64, error) { var keywords []model.Keyword var total int64 q := s.DB.Model(&model.Keyword{}) if industryTag != "" { q = q.Where("industry_tag = ?", industryTag) } q.Count(&total) offset := (page - 1) * pageSize err := q.Order("created_at DESC").Offset(offset).Limit(pageSize).Find(&keywords).Error return keywords, total, err } // CreateKeyword inserts a new keyword. Returns the created record. func (s *Store) CreateKeyword(k *model.Keyword) error { return s.DB.Create(k).Error } // UpdateKeyword updates a keyword by ID. func (s *Store) UpdateKeyword(id uint, updates map[string]any) error { return s.DB.Model(&model.Keyword{}).Where("id = ?", id).Updates(updates).Error } // DeleteKeyword deletes a keyword by ID. func (s *Store) DeleteKeyword(id uint) error { return s.DB.Delete(&model.Keyword{}, id).Error }