Sha256: 2a2fd5b8f4ad1cff9ceaebc1b5f4582110317d66794d1571424807d955436139

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

# typed: strict
# frozen_string_literal: true

module EML
  module UK
    class Payload
      module Card
        class Lock < ::EML::UK::Payload
          REQUIRED_CONFIG = T.let(%i[merchant_group].freeze, T::Array[Symbol])
          REQUIRED_VALUES = T.let(%i[note reason].freeze, T::Array[Symbol])

          sig { params(payload: T::Hash[Symbol, T.untyped]).void }
          def initialize(payload)
            super

            @reason = T.let(nil, T.nilable(Symbol))
          end

          private

          sig { returns(T.nilable(String)) }
          attr_accessor :merchant_group

          sig { returns(T.nilable(String)) }
          attr_accessor :note

          REASONS = T.let(%i[
            Damaged DataBreach Lost Miscellaneous OfficeError
            PastAccountExpirationDate Stolen UnclaimedProperty
          ].freeze, T::Array[Symbol])

          sig { params(reason: Symbol).void }
          def reason=(reason)
            validate_enum(:reason, reason, REASONS)
            @reason = reason
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
eml-3.0.0 lib/eml/uk/payload/card/lock.rb
eml-2.2.0 lib/eml/uk/payload/card/lock.rb