mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 13:19:39 +02:00
36 lines
707 B
Ruby
36 lines
707 B
Ruby
|
class Issue < ApplicationRecord
|
||
|
belongs_to :issuable, polymorphic: true
|
||
|
|
||
|
after_initialize :set_default_severity
|
||
|
|
||
|
enum :severity, { critical: 1, error: 2, warning: 3, info: 4 }
|
||
|
|
||
|
validates :severity, presence: true
|
||
|
|
||
|
scope :active, -> { where(resolved_at: nil) }
|
||
|
scope :ordered, -> { order(:severity) }
|
||
|
|
||
|
def title
|
||
|
model_name.human
|
||
|
end
|
||
|
|
||
|
# The conditions that must be met for an issue to be fixed
|
||
|
def stale?
|
||
|
raise NotImplementedError, "#{self.class} must implement #{__method__}"
|
||
|
end
|
||
|
|
||
|
def resolve!
|
||
|
update!(resolved_at: Time.current)
|
||
|
end
|
||
|
|
||
|
def default_severity
|
||
|
:warning
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def set_default_severity
|
||
|
self.severity ||= default_severity
|
||
|
end
|
||
|
end
|