Design and implement a backend system managing data backups, their dependencies and lifecycle, using OOP entities, and make it thread-safe under concurrent access.
Asked in the System coding stage.
Implement process_backup_operations(operations). Each operation is a dictionary with op and id; create also has depends_on, an array of backup IDs. Return one result per operation: true or false for create, complete, and delete, and the status string or null for status. A backup starts as ACTIVE, can become COMPLETED only after all dependencies are completed, and deletion fails while another backup depends on it. Use OOP entities and synchronization around shared state.
def process_backup_operations(operations):