Expand description
Soft delete utilities for marking records as deleted without physical removal
This module provides standardized patterns for implementing soft deletes, which mark records as deleted without removing them from the database.
§Benefits of Soft Deletes
- Data Recovery: Accidentally deleted records can be restored
- Audit Trail: Maintain complete history of all operations
- Referential Integrity: Foreign key constraints remain valid
- Performance: Faster than cascading deletes
§Usage Patterns
§Basic Soft Delete
ⓘ
use oxify_storage::soft_delete::SoftDeleteBuilder;
SoftDeleteBuilder::new("workflows")
.where_clause("id = $1")
.mark_deleted(&pool, &[&workflow_id])
.await?;§Soft Delete with Metadata
ⓘ
use oxify_storage::soft_delete::SoftDeleteMetadata;
let metadata = SoftDeleteMetadata::new(user_id, Some("User requested deletion"));
SoftDeleteBuilder::new("workflows")
.where_clause("id = $1")
.with_metadata(metadata)
.mark_deleted(&pool, &[&workflow_id])
.await?;Structs§
- Soft
Delete Builder - Builder for constructing soft delete queries
- Soft
Delete Filter - Helper for querying only non-deleted records
- Soft
Delete Metadata - Metadata for soft delete operations
- Soft
Delete Restorer - Helper for restoring soft-deleted records