class Ticket include Mongoid::Document include Mongoid::Timestamps include OrbitTag::Taggable include OrbitCategory::Categorizable include Slug field :site_type field :ticket_creater_id field :ticket_creater_name field :subject field :urgent, type: Boolean, default: false field :reopened_count, type: Integer, :default => 0 field :status, :default => "open" field :taken_by, type: BSON::ObjectId scope :open, ->{ where(status: "open") } scope :closed, ->{ where(status: "closed") } scope :commenced, ->{ where(status: "commenced") } scope :not_urgent, ->{ where(:urgent.in => [false,nil]) } scope :all_urgent, ->{ where(urgent: true) } belongs_to :registered_site has_many :ticket_queries, :dependent => :destroy def can_be_reopened? self.reopened_count < 2 end def is_urgent? self.urgent end def reopened? self.reopened_count > 0 end def registered_site_title self.registered_site.title end def registered_site_domain self.registered_site.site_domain end end