Module soft_delete

Module soft_delete 

Source
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§

SoftDeleteBuilder
Builder for constructing soft delete queries
SoftDeleteFilter
Helper for querying only non-deleted records
SoftDeleteMetadata
Metadata for soft delete operations
SoftDeleteRestorer
Helper for restoring soft-deleted records