- belongs_to :reportable, :polymorphic => true
- belongs_to :user, :class_name => "User", :foreign_key => :reported_user_id
+ belongs_to :reportable, :polymorphic => true
+ belongs_to :reported_user, :class_name => "User", :foreign_key => :reported_user_id
+ belongs_to :user_updated, :class_name => "User", :foreign_key => :updated_by
+
+ has_many :reports, :dependent => :destroy
+ has_many :comments, :class_name => "IssueComment", :dependent => :destroy
+
+ validates :reportable_id, :uniqueness => { :scope => [:reportable_type] }
+ validates :reported_user_id, :presence => true
+
+ ASSIGNED_ROLES = %w[administrator moderator].freeze
+ validates :assigned_role, :presence => true, :inclusion => ASSIGNED_ROLES
+
+ before_validation :set_default_assigned_role
+ before_validation :set_reported_user