dawarich/app/models/concerns/soft_deletable.rb
2026-01-08 21:12:47 +01:00

31 lines
547 B
Ruby

# frozen_string_literal: true
module SoftDeletable
extend ActiveSupport::Concern
included do
scope :active_accounts, -> { where(deleted_at: nil) }
scope :deleted_accounts, -> { where.not(deleted_at: nil) }
end
def deleted?
deleted_at.present?
end
def mark_as_deleted!
update!(deleted_at: Time.current)
end
def destroy
mark_as_deleted!
end
# Devise authentication overrides
def active_for_authentication?
super && !deleted?
end
def inactive_message
deleted? ? :deleted : super
end
end