Sha256: d586dc0eb4ad0bc275671ee6170d89dffd24dad95233b3e26819fbea2cc32cdd

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

# frozen_string_literal: true

module Meibo
  module JapanProfile
    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

1 entries across 1 versions & 1 rubygems

Version Path
meibo-0.1.0 lib/meibo/japan_profile/enrollment.rb