package admin import ( "context" "errors" "github.com/google/uuid" "github.com/jackc/pgx/v5" "github.com/yuxingu/digital-psychology/apps/api/internal/repository" ) var ErrCrisisPolicyNotFound = errString("crisis policy not found") // ListCrisisPolicies returns CrisisPolicy catalog. func (s *Service) ListCrisisPolicies(ctx context.Context) ([]repository.CrisisPolicyRow, error) { items, err := s.Repo.ListCrisisPolicies(ctx) if err != nil { return nil, err } if items == nil { items = []repository.CrisisPolicyRow{} } return items, nil } // GetCrisisPolicy loads one policy. func (s *Service) GetCrisisPolicy(ctx context.Context, id uuid.UUID) (*repository.CrisisPolicyRow, error) { row, err := s.Repo.GetCrisisPolicy(ctx, id) if errors.Is(err, pgx.ErrNoRows) { return nil, ErrCrisisPolicyNotFound } return row, err } // EvaluateCrisis runs read-only policy preview. func (s *Service) EvaluateCrisis(ctx context.Context, text string) ([]repository.CrisisMatch, error) { return s.Repo.EvaluateCrisisPolicies(ctx, text) }