Class: Line::Bot::V2::MessagingApi::SubscribedMembershipPlan

Inherits:
Object
  • Object
show all
Defined in:
lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb

Overview

Object containing information about the membership plan.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(membership_id:, title:, description:, benefits:, price:, currency:, **dynamic_attributes) ⇒ SubscribedMembershipPlan

Returns a new instance of SubscribedMembershipPlan.

Parameters:

  • membership_id (Integer)

    Membership plan ID.

  • title (String)

    Membership plan name.

  • description (String)

    Membership plan description.

  • benefits (Array[String])

    List of membership plan perks.

  • price (Float)

    Monthly fee for membership plan. (e.g. 1500.00)

  • currency (String)

    (‘JPY’|‘TWD’|‘THB’) The currency of membership.price.



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 41

def initialize(
  membership_id:,
  title:,
  description:,
  benefits:,
  price:,
  currency:,
  **dynamic_attributes
)
  
  @membership_id = membership_id
  @title = title
  @description = description
  @benefits = benefits
  @price = price
  @currency = currency

  dynamic_attributes.each do |key, value|
    self.class.attr_accessor key

    if value.is_a?(Hash)
      struct_klass = Struct.new(*value.keys.map(&:to_sym))
      struct_values = value.map { |_k, v| v.is_a?(Hash) ? Line::Bot::V2::Utils.hash_to_struct(v) : v }
      instance_variable_set("@#{key}", struct_klass.new(*struct_values))
    else
      instance_variable_set("@#{key}", value)
    end
  end
end

Instance Attribute Details

#benefitsArray[String]

Returns List of membership plan perks.

Returns:

  • (Array[String])

    List of membership plan perks.



27
28
29
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 27

def benefits
  @benefits
end

#currencyString

Returns (‘JPY’|‘TWD’|‘THB’) The currency of membership.price.

Returns:

  • (String)

    (‘JPY’|‘TWD’|‘THB’) The currency of membership.price.



33
34
35
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 33

def currency
  @currency
end

#descriptionString

Returns Membership plan description.

Returns:

  • (String)

    Membership plan description.



24
25
26
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 24

def description
  @description
end

#membership_idInteger

Returns Membership plan ID.

Returns:

  • (Integer)

    Membership plan ID.



18
19
20
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 18

def membership_id
  @membership_id
end

#priceFloat

Returns Monthly fee for membership plan. (e.g. 1500.00).

Returns:

  • (Float)

    Monthly fee for membership plan. (e.g. 1500.00)



30
31
32
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 30

def price
  @price
end

#titleString

Returns Membership plan name.

Returns:

  • (String)

    Membership plan name.



21
22
23
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 21

def title
  @title
end

Class Method Details

.create(args) ⇒ Line::Bot::V2::MessagingApi::SubscribedMembershipPlan

Create an instance of the class from a hash

Parameters:

  • args (Hash)

    Hash containing all the required attributes

Returns:



74
75
76
77
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 74

def self.create(args) # steep:ignore
  symbolized_args = Line::Bot::V2::Utils.deep_symbolize(args)
  return new(**symbolized_args) # steep:ignore
end

Instance Method Details

#==(other) ⇒ Boolean

Returns true if the objects are equal, false otherwise.

Parameters:

  • other (Object)

    Object to compare

Returns:

  • (Boolean)

    true if the objects are equal, false otherwise



81
82
83
84
85
86
87
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 81

def ==(other)
  return false unless self.class == other.class

  instance_variables.all? do |var|
      instance_variable_get(var) == other.instance_variable_get(var)
  end
end

#hashInteger

Returns Hash code of the object.

Returns:

  • (Integer)

    Hash code of the object



90
91
92
# File 'lib/line/bot/v2/messaging_api/model/subscribed_membership_plan.rb', line 90

def hash
  [self.class, *instance_variables.map { |var| instance_variable_get(var) }].hash
end