package admin import ( "context" "errors" "github.com/google/uuid" "github.com/jackc/pgx/v5" "github.com/yuxingu/digital-psychology/apps/api/internal/repository" ) var ErrFilterRuleNotFound = errString("filter rule not found") // ListFilterRules returns FilterRule catalog. func (s *Service) ListFilterRules(ctx context.Context) ([]repository.FilterRuleRow, error) { items, err := s.Repo.ListFilterRules(ctx) if err != nil { return nil, err } if items == nil { items = []repository.FilterRuleRow{} } return items, nil } // GetFilterRule loads one rule. func (s *Service) GetFilterRule(ctx context.Context, id uuid.UUID) (*repository.FilterRuleRow, error) { row, err := s.Repo.GetFilterRule(ctx, id) if errors.Is(err, pgx.ErrNoRows) { return nil, ErrFilterRuleNotFound } return row, err } // EvaluateContent runs read-only filter preview. func (s *Service) EvaluateContent(ctx context.Context, text string) ([]repository.FilterMatch, error) { return s.Repo.EvaluateFilterRules(ctx, text) }