|
- # == Schema Information
- #
- # Table name: organization_extensions
- #
- # id :integer not null, primary key
- # organization_id :integer
- # description :string(255)
- # website :string(255)
- # location :string(255)
- # repo_admin_change_team_access :boolean default("0")
- # visibility :integer default("0")
- # max_repo_creation :integer default("-1")
- # created_at :datetime not null
- # updated_at :datetime not null
- # num_projects :integer default("0")
- # num_users :integer default("0")
- # num_teams :integer default("0")
- # recommend :boolean default("0")
- # news_banner_id :integer
- # news_content :text(65535)
- # memo :text(65535)
- # news_title :string(255)
- # news_url :string(255)
- #
- # Indexes
- #
- # index_organization_extensions_on_organization_id (organization_id)
- #
-
- class OrganizationExtension < ApplicationRecord
-
- belongs_to :organization
- has_many :organization_users, foreign_key: :organization_id, primary_key: :organization_id
- has_many :projects, foreign_key: :user_id, primary_key: :organization_id
- has_many :teams, foreign_key: :organization_id, primary_key: :organization_id
-
- enum visibility: {common: 0, limited: 1, privacy: 2}
-
- before_save :set_recommend
-
- def self.build(organization_id, description, website, location, repo_admin_change_team_access, visibility, max_repo_creation)
- self.create!(organization_id: organization_id,
- description: description,
- website: website,
- location: location,
- repo_admin_change_team_access: repo_admin_change_team_access,
- visibility: visibility,
- max_repo_creation: max_repo_creation)
- end
-
- private
- def set_recommend
- self.recommend = false unless self.common?
- end
- end
|