Determine how to provide parity for apiv4 vs v3 Contact.delete
There are 4 types of Contact.delete in CiviCRM
- soft-delete - updates is_deleted to true, deletes uf match entries
- hard delete, - deletes contact record, aborts if related entities exist that block delete, cleans up various entries that an FK delete will not do
- contact.update to is_deleted = 1 does 1 without the cleanup
- contact.delete - does 2 without the cleanup or protection
Currently apiv3 does 1 or 2 depending on the site configuration. It can be 'pushed' to do 2 but will still only do that dependent on user permissions if check_permissions is on.
apiv4 does 3 and 4
I know @colemanw is reluctant to replicate v3 behaviour but I don't think current v4 is an acceptable alternative. Nor do I think the calling function should need to check site delete config