Sha256: 61fa56b58acde526c6f7d8f1c4b108f698a8a655703837685948a8c041ca51e8

Contents?: true

Size: 1.24 KB

Versions: 9

Compression:

Stored size: 1.24 KB

Contents

module BridgeCache
  class Program < BridgeBaseModel
    extend BridgeCache::Data::BridgeModel

    belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::Domain.name, optional: true
    belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::Domain.name, optional: true
    has_many :program_items, foreign_key: :program_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::ProgramItem.name
    has_many :program_enrollments, foreign_key: :program_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::ProgramEnrollment.name
    has_many :program_group_enrollments, foreign_key: :program_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::ProgramGroupEnrollment.name
    has_many :affiliated_sub_accounts, primary_key: BridgeCache.primary_key, class_name: BridgeCache::AffiliatedSubAccount.name, as: :item
    has_many :domains, through: :affiliated_sub_accounts

    def self.for_domain(domain_id)
      includes(:domains)
        .where('bridge_cache_affiliated_sub_accounts.domain_id = ? OR bridge_cache_programs.sub_account_id = ?', domain_id, domain_id)
        .references(:domains)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
bridge_cache-0.3.8 app/models/bridge_cache/program.rb
bridge_cache-0.3.7 app/models/bridge_cache/program.rb
bridge_cache-0.3.6 app/models/bridge_cache/program.rb
bridge_cache-0.3.5 app/models/bridge_cache/program.rb
bridge_cache-0.3.4 app/models/bridge_cache/program.rb
bridge_cache-0.3.3 app/models/bridge_cache/program.rb
bridge_cache-0.3.2 app/models/bridge_cache/program.rb
bridge_cache-0.3.01 app/models/bridge_cache/program.rb
bridge_cache-0.3.0 app/models/bridge_cache/program.rb