class Organization < ActiveRecord::Base
  attr_accessible  :name, :description, :creator_id, :home_id, :domain, :is_public
  has_many :org_members, :dependent => :destroy
  has_many :org_projects ,:dependent => :destroy
  has_many :projects,:through => :org_projects
  has_many :courses, :through => :org_courses
  has_many :org_document_comments, :dependent => :destroy
  has_many :org_courses, :dependent => :destroy
  has_many :org_subfields, :dependent => :destroy
  has_many :users, :through => :org_members
  has_many :files
  has_many :org_messages, :class_name => 'OrgMessage', :dependent => :destroy
  has_many :applied_messages, :class_name => 'AppliedMessage', :dependent => :destroy
  acts_as_attachable
  validates_uniqueness_of :name
  after_create :save_as_org_activity, :add_default_subfields

  def save_as_org_activity
    OrgActivity.create(:user_id => User.current.id, :org_act_id => self.id, :org_act_type => 'CreateOrganization', :container_id => self.id, :container_type => 'Organization')
  end

  def add_default_subfields
    OrgSubfield.create(:organization_id => self.id, :name => 'activity', :field_type => 'default', :priority => 1, :status => 0)
    OrgSubfield.create(:organization_id => self.id, :name => 'course', :field_type => 'default', :priority => 2, :status => 2)
    OrgSubfield.create(:organization_id => self.id, :name => 'project', :field_type => 'default', :priority => 3, :status => 2)
  end

  def switch_type
    self.show_mode.to_i == 1
  end

  def allow_set_teachers
    self.allow_teacher.to_i == 1
  end

  def secdomain_name
    Secdomain.where("sub_type=2 and pid=?", self.id).first.try(:subname)
  end
end