about summary refs log tree commit diff
path: root/app/models/account_warning.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2022-01-17 09:41:33 +0100
committerGitHub <noreply@github.com>2022-01-17 09:41:33 +0100
commit14f436c457560862fafabd753eb314c8b8a8e674 (patch)
tree905e62fd68c52efc9eec5b63d7170eee0c0c93a7 /app/models/account_warning.rb
parentd5c9feb7b7fc489afbd0a287431fe07b42451ef0 (diff)
Add notifications for statuses deleted by moderators (#17204)
Diffstat (limited to 'app/models/account_warning.rb')
-rw-r--r--app/models/account_warning.rb22
1 files changed, 19 insertions, 3 deletions
diff --git a/app/models/account_warning.rb b/app/models/account_warning.rb
index 5efc924d5..fc0d988fd 100644
--- a/app/models/account_warning.rb
+++ b/app/models/account_warning.rb
@@ -10,14 +10,30 @@
 #  text              :text             default(""), not null
 #  created_at        :datetime         not null
 #  updated_at        :datetime         not null
+#  report_id         :bigint(8)
+#  status_ids        :string           is an Array
 #
 
 class AccountWarning < ApplicationRecord
-  enum action: %i(none disable sensitive silence suspend), _suffix: :action
+  enum action: {
+    none:            0,
+    disable:         1_000,
+    delete_statuses: 1_500,
+    sensitive:       2_000,
+    silence:         3_000,
+    suspend:         4_000,
+  }, _suffix: :action
 
   belongs_to :account, inverse_of: :account_warnings
-  belongs_to :target_account, class_name: 'Account', inverse_of: :targeted_account_warnings
+  belongs_to :target_account, class_name: 'Account', inverse_of: :strikes
+  belongs_to :report, optional: true
 
-  scope :latest, -> { order(created_at: :desc) }
+  has_one :appeal, dependent: :destroy
+
+  scope :latest, -> { order(id: :desc) }
   scope :custom, -> { where.not(text: '') }
+
+  def statuses
+    Status.with_discarded.where(id: status_ids || [])
+  end
 end