module Teams::Base
def admin_users
def admin_users admins.map(&:user).compact end
def admins
def admins memberships.current_and_invited.admins end
def formatted_email_address
def formatted_email_address primary_contact.email end
def invalidate_caches
def invalidate_caches users.map(&:invalidate_ability_cache) end
def platform_agent_access_tokens
def platform_agent_access_tokens Platform::AccessToken.joins(:application).where(resource_owner_id: users.where.not(platform_agent_of_id: nil), application: {team: nil}) end
def primary_contact
def primary_contact admin_users.min { |user| user.created_at } end
def team
def team # some generic features appeal to the `team` method for security or scoping purposes, but sometimes those same # generic functions need to function for a team model as well, so we do this. self end