Sha256: da2de881b3b1ff6fb0382fe74ada840ffcf48c710b3599766057a3324c64e567

Contents?: true

Size: 1.21 KB

Versions: 10

Compression:

Stored size: 1.21 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(role:, shusseki_no: nil, public_flg: nil, primary: (role == ROLES[:student] ? false : nil),
                     **other_fields)
        super(role: role, primary: primary, **other_fields)
        @shusseki_no = shusseki_no
        @public_flg = public_flg
      end

      def guardian?
        role == ROLES[:guardian]
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
meibo-0.27.1 lib/meibo/japan_profile/enrollment.rb
meibo-0.27.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.26.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.25.3 lib/meibo/japan_profile/enrollment.rb
meibo-0.25.2 lib/meibo/japan_profile/enrollment.rb
meibo-0.25.1 lib/meibo/japan_profile/enrollment.rb
meibo-0.25.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.24.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.23.0 lib/meibo/japan_profile/enrollment.rb
meibo-0.22.0 lib/meibo/japan_profile/enrollment.rb