
* Previously, some models had "duplicated" `belongs_to` associations, which were now removed (and replaced by the `include Creation`).
23 lines
511 B
Ruby
23 lines
511 B
Ruby
# frozen_string_literal: true
|
|
|
|
class StudyGroupMembership < ApplicationRecord
|
|
include Creation
|
|
belongs_to :study_group
|
|
|
|
before_save :destroy_if_empty_study_group_or_user
|
|
|
|
ROLES = %w[learner teacher].freeze
|
|
|
|
def destroy_if_empty_study_group_or_user
|
|
destroy if study_group.blank? || user.blank?
|
|
end
|
|
|
|
enum role: {
|
|
learner: 0,
|
|
teacher: 1,
|
|
}, _default: :learner, _prefix: true
|
|
|
|
validates :role, presence: true
|
|
validates :user_id, uniqueness: {scope: %i[user_type study_group_id]}
|
|
end
|