We have an implementation that is pretty specific to our Azure hosting configuration. But the workflow is:
- For each version of the package:
- DELETE PackageAuthors for the package
- DELETE PackageDependencies for the package
- DELETE PackageStatistics for the package
- DELETE PackageFrameworks for the package
- DELETE Packages for the package
- Back up the package file in our backup blob storage (in case we need to recover it)
- Delete the package from the production blob storage
- DELETE PackageOwnerRequests for the package registration
- DELETE PackageRegistrationOwners for the package registration
- DELETE PackageRegistrations for the package registration
I hope this helps!