package logic import ( "context" "spark-server/internal/module/moment/entity" ) func (s *Service) PurgeUser(ctx context.Context, userID int64) error { if s == nil || s.repo == nil || userID <= 0 { return nil } posts, err := s.repo.ListAllByAuthor(ctx, userID) if err != nil { return err } st, err := s.repo.GetSettings(ctx, userID) if err != nil { return err } if err := s.repo.PurgeUser(ctx, userID); err != nil { return err } for _, post := range posts { s.deleteMedia(ctx, post) } if s.objects != nil && st != nil && st.CoverKey != "" && entity.ValidCoverKey(st.CoverKey) { _ = s.objects.Delete(ctx, st.CoverKey) } return nil }