# reportable_type :string not null
# reportable_id :integer not null
# reported_user_id :integer
-# status :integer
+# status :enum default("open"), not null
# assigned_role :enum not null
# resolved_at :datetime
# resolved_by :integer
#
# Indexes
#
+# index_issues_on_assigned_role (assigned_role)
# index_issues_on_reportable_type_and_reportable_id (reportable_type,reportable_id)
# index_issues_on_reported_user_id (reported_user_id)
+# index_issues_on_status (status)
# index_issues_on_updated_by (updated_by)
#
# Foreign Keys
before_validation :set_default_assigned_role
before_validation :set_reported_user
- # Check if more statuses are needed
- enum :status => %w[open ignored resolved]
-
scope :with_status, ->(issue_status) { where(:status => statuses[issue_status]) }
def read_reports
end
def set_default_assigned_role
- role = %w[Note].include?(reportable.class.name) ? "moderator" : "administrator"
- self.assigned_role = role if assigned_role.blank?
+ if assigned_role.blank?
+ self.assigned_role = case reportable
+ when Note then "moderator"
+ else "administrator"
+ end
+ end
end
end