Sha256: 38aa3968c9911b7938a782c80cb31948a6d03ce52ff7a5628ffc583a546da359

Contents?: true

Size: 1.14 KB

Versions: 3

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module Meibo
  class JapanProfile < ::Meibo::Profile
    class Enrollment < ::Meibo::Enrollment
      ROLES = {
        student: 'student',
        teacher: 'teacher',
        administrator: 'administrator',
        guardian: 'guardian'
      }.freeze

      DataModel.define(
        self,
          attribute_name_to_header_field_map: superclass.attribute_name_to_header_field_map.merge(
          shusseki_no: 'metadata.jp.ShussekiNo',
          public_flg: 'metadata.jp.PublicFlg'
        ).freeze,
        converters: superclass.converters.merge(
          boolean: [*superclass.converters[:boolean], :public_flg].freeze,
          enum: { role: ROLES.values.freeze }.freeze,
          integer: [:shusseki_no].freeze
        ).freeze
      )

      # NOTE: 児童生徒の場合primaryはfalse固定
      # MEMO: 保護者の場合もそうでは?
      def initialize(shusseki_no: nil, public_flg: nil, role:, primary: (role == ROLES[:student] ? false : nil), **other_fields)
        super(role: role, primary: primary, **other_fields)
        @shusseki_no = shusseki_no
        @public_flg = public_flg
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
meibo-0.4.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.3.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.2.0 lib/meibo/japan_profile/enrollment.rb