diff --git a/app/models/concerns/soft_deletable.rb b/app/models/concerns/soft_deletable.rb
new file mode 100644
index 0000000..1234abc
@@ -0,0 +1,28 @@
+module SoftDeletable
+ extend ActiveSupport::Concern
+
+ included do
+ default_scope { where(deleted_at: nil) }
+ scope :with_deleted, -> { unscope(where: :deleted_at) }
+ scope :only_deleted, -> { with_deleted.where.not(deleted_at: nil) }
+ end
+
+ def soft_delete
+ update(deleted_at: Time.current)
+ end
+
+ def restore
+ update(deleted_at: nil)
+ end
+
+ def deleted?
+ deleted_at.present?
+ end
+
+ def destroy
+ soft_delete
+ end
+
+ def really_destroy!
+ with_deleted { super }
+ end
+end