app/models/wco/profile.rb
class Wco::Profile include Mongoid::Document include Mongoid::Timestamps include Mongoid::Paranoia store_in collection: 'ish_user_profiles' field :email index({ email: 1 }, { name: 'email' }) validates :email, presence: true, uniqueness: true field :per_page, type: :integer, default: 25 field :show_n_thumbs, type: :integer, default: 8 has_many :reports, class_name: 'Wco::Report' belongs_to :leadset, class_name: 'Wco::Leadset', inverse_of: :profile, optional: true has_many :newsitems, class_name: 'Wco::Newsitem' has_and_belongs_to_many :shared_galleries, class_name: 'Wco::Gallery', inverse_of: :shared_profiles ROLE_ADMIN = 'admin' ROLE_GUY = 'guy' ROLES = [ ROLE_ADMIN, ROLE_GUY ] field :role, type: :string, default: ROLE_GUY def self.roles_list [nil] + ROLES end def self.ai_writer find_or_create_by email: 'ai-writer@wasya.co' end def to_s email end def self.list all.map { |p| [ p.email, p.id ] } end end