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