package logic import ( "context" "spark-server/internal/module/square/entity" "spark-server/internal/pkg/errs" ) func (s *Service) Delete(ctx context.Context, userID, postID int64) error { if !s.ready() || userID <= 0 { return errs.ErrUnauthorized } if postID <= 0 { return errs.ErrInvalidArgument } post, err := s.repo.SoftDeletePost(ctx, userID, postID) if err != nil { return err } s.deleteMedia(ctx, post) return nil } func (s *Service) deleteMedia(ctx context.Context, post *entity.Post) { if s.objects == nil || post == nil { return } content, err := entity.UnmarshalContent(post.Content) if err != nil { return } for _, key := range content.ObjectKeys() { _ = s.objects.Delete(ctx, key) } }