Description:
The backend engine that does the actual deletion work. When given a list of packet references, it resolves the full group of related packets (parent + all children), checks each one is eligible for deletion, and physically removes the data across all systems in the correct order — leaf-first, so nothing is orphaned.
This engine is called by every other feature in the epic. Nothing else can be built without it.
What it does:
Accepts a list of packet references as input
Resolves the full consequential deletion group for each reference
Validates eligibility (status checks, lock checks)
Deletes in the correct order: blob storage → search index → marketplace → core DB
Returns a structured result for audit logging
Is fully idempotent — safe to retry if interrupted
What it does not do: It does not decide which packets to delete. That is the job of the UI (Feature 4). It only deletes what it is told to delete.
Belongs to EPIC: Data Deletion — Packet Purge Framework [https://feedback.enate.net/feature-request/p/data-deletion-packet-purge-framework]