lib/canvas_sync/generators/templates/models/group.rb



# <%= autogenerated_model_warning %>

class Group < ApplicationRecord
  include CanvasSync::Record
  include CanvasSync::Concerns::ApiSyncable

  canvas_sync_features :defaults

  validates :canvas_id, uniqueness: true, presence: true
  belongs_to :course, primary_key: :canvas_id, foreign_key: :canvas_course_id, optional: true
  belongs_to :account, primary_key: :canvas_id, foreign_key: :canvas_account_id, optional: true
  has_many :group_memberships, primary_key: :canvas_id, foreign_key: :canvas_group_id

  api_syncable({
    canvas_id: :id,
    name: :name,
    canvas_course_id: :course_id,
    sis_id: :sis_group_id,
    workflow_state: ->(r){ 'available' },
  }, -> (api) { api.group(canvas_id) })
end