package service import ( "context" "google.golang.org/protobuf/types/known/wrapperspb" pb "github.com/topfans/backend/pkg/proto/moderation" "github.com/topfans/backend/services/moderationService/repository" ) type CategoryService struct { repo *repository.ModerationRepository } func NewCategoryService(repo *repository.ModerationRepository) *CategoryService { return &CategoryService{repo: repo} } func (s *CategoryService) GetReportCategories(ctx context.Context, req *pb.GetReportCategoriesRequest) (*pb.GetReportCategoriesResponse, error) { cats, err := s.repo.ListReportCategories(ctx) if err != nil { return nil, err } resp := &pb.GetReportCategoriesResponse{} for _, c := range cats { item := &pb.CategoryItem{ Code: c.Code, Name: c.Name, Severity: int32(c.Severity), SortOrder: c.SortOrder, } if c.Description != nil { item.Description = *c.Description } resp.Categories = append(resp.Categories, item) } return resp, nil } func (s *CategoryService) GetFeedbackCategories(ctx context.Context, req *pb.GetFeedbackCategoriesRequest) (*pb.GetFeedbackCategoriesResponse, error) { cats, err := s.repo.ListFeedbackCategories(ctx) if err != nil { return nil, err } resp := &pb.GetFeedbackCategoriesResponse{} for _, c := range cats { item := &pb.CategoryItem{ Code: c.Code, Name: c.Name, SortOrder: c.SortOrder, } if c.Description != nil { item.Description = *c.Description } resp.Categories = append(resp.Categories, item) } return resp, nil } // IsReportCategoryEnabled 验证分类启用 func (s *CategoryService) IsReportCategoryEnabled(ctx context.Context, code string) (bool, error) { return s.repo.IsReportCategoryEnabled(ctx, code) } // IsFeedbackCategoryEnabled 验证反馈分类启用 func (s *CategoryService) IsFeedbackCategoryEnabled(ctx context.Context, code string) (bool, error) { return s.repo.IsFeedbackCategoryEnabled(ctx, code) } // avoid unused import warning var _ = wrapperspb.Bool