44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
# == Schema Information
|
|
#
|
|
# Table name: portals
|
|
#
|
|
# id :bigint not null, primary key
|
|
# archived :boolean default(FALSE)
|
|
# color :string
|
|
# config :jsonb
|
|
# custom_domain :string
|
|
# header_text :text
|
|
# homepage_link :string
|
|
# name :string not null
|
|
# page_title :string
|
|
# slug :string not null
|
|
# created_at :datetime not null
|
|
# updated_at :datetime not null
|
|
# account_id :integer not null
|
|
#
|
|
# Indexes
|
|
#
|
|
# index_portals_on_slug (slug) UNIQUE
|
|
#
|
|
class Portal < ApplicationRecord
|
|
belongs_to :account
|
|
has_many :categories, dependent: :destroy_async
|
|
has_many :folders, through: :categories
|
|
has_many :articles, dependent: :destroy_async
|
|
has_many :portal_members,
|
|
class_name: :PortalMember,
|
|
dependent: :destroy_async
|
|
has_many :members,
|
|
through: :portal_members,
|
|
class_name: :User,
|
|
dependent: :nullify,
|
|
source: :user
|
|
|
|
validates :account_id, presence: true
|
|
validates :name, presence: true
|
|
validates :slug, presence: true, uniqueness: true
|
|
|
|
accepts_nested_attributes_for :members
|
|
|
|
scope :active, -> { where(archived: false) }
|
|
end
|