Class: Pago::V2026_04::Models::DiscountFixedRepeatDuration

Inherits:
Model
  • Object
show all
Defined in:
lib/pago/v2026_04/models.rb,
sig/pago/v2026_04/generated.rbs

Overview

Schema for a fixed amount discount that is applied on every invoice for a certain number of months.

Constant Summary collapse

JSON_KEYS =

Returns:

  • (Hash[Symbol, String])
{
  duration: "duration",
  duration_in_months: "duration_in_months",
  type: "type",
  amount: "amount",
  currency: "currency",
  amounts: "amounts",
  created_at: "created_at",
  modified_at: "modified_at",
  id: "id",
  metadata: "metadata",
  name: "name",
  code: "code",
  starts_at: "starts_at",
  ends_at: "ends_at",
  max_redemptions: "max_redemptions",
  redemptions_count: "redemptions_count",
  organization_id: "organization_id",
  products: "products"
}.freeze
REQUIRED_KEYS =

Returns:

  • (Array[String])
["duration", "duration_in_months", "type", "amount", "currency", "amounts", "created_at", "modified_at", "id", "metadata", "name", "code", "starts_at", "ends_at", "max_redemptions", "redemptions_count", "organization_id", "products"].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Model

#==, #[], #field_set?, #hash, #inspect, json_keys, required_json_keys, #to_json, #to_json_hash, wrap_raw

Constructor Details

#initialize(duration:, duration_in_months:, type:, amount:, currency:, amounts:, created_at:, modified_at:, id:, metadata:, name:, code:, starts_at:, ends_at:, max_redemptions:, redemptions_count:, organization_id:, products:) ⇒ DiscountFixedRepeatDuration

Returns a new instance of DiscountFixedRepeatDuration.

Parameters:

  • duration: (String)
  • duration_in_months: (Integer)
  • type: (String)
  • amount: (Integer)
  • currency: (String)
  • amounts: (Hash[String, Integer])
  • created_at: (String)
  • modified_at: (String, nil)
  • id: (String)
  • metadata: (Hash[String, untyped])
  • name: (String)
  • code: (String, nil)
  • starts_at: (String, nil)
  • ends_at: (String, nil)
  • max_redemptions: (Integer, nil)
  • redemptions_count: (Integer)
  • organization_id: (String)
  • products: (Array[Models::DiscountProduct])


22901
22902
22903
22904
22905
22906
22907
22908
22909
22910
22911
22912
22913
22914
22915
22916
22917
22918
22919
22920
22921
22922
22923
22924
22925
22926
22927
22928
22929
22930
22931
22932
22933
22934
22935
22936
22937
22938
22939
22940
# File 'lib/pago/v2026_04/models.rb', line 22901

def initialize(
  duration:,
  duration_in_months:,
  type:,
  amount:,
  currency:,
  amounts:,
  created_at:,
  modified_at:,
  id:,
  metadata:,
  name:,
  code:,
  starts_at:,
  ends_at:,
  max_redemptions:,
  redemptions_count:,
  organization_id:,
  products:
)
  super()
  assign(:duration, duration)
  assign(:duration_in_months, duration_in_months)
  assign(:type, type)
  assign(:amount, amount)
  assign(:currency, currency)
  assign(:amounts, amounts)
  assign(:created_at, created_at)
  assign(:modified_at, modified_at)
  assign(:id, id)
  assign(:metadata, )
  assign(:name, name)
  assign(:code, code)
  assign(:starts_at, starts_at)
  assign(:ends_at, ends_at)
  assign(:max_redemptions, max_redemptions)
  assign(:redemptions_count, redemptions_count)
  assign(:organization_id, organization_id)
  assign(:products, products)
end

Instance Attribute Details

#amountInteger (readonly)

Deprecated.

Returns:

  • (Integer)


22845
22846
22847
# File 'lib/pago/v2026_04/models.rb', line 22845

def amount
  @amount
end

#amountsHash{String => Integer} (readonly)

Map of currency to fixed amount to discount from the total.

Returns:

  • (Hash{String => Integer})


22853
22854
22855
# File 'lib/pago/v2026_04/models.rb', line 22853

def amounts
  @amounts
end

#codeString? (readonly)

Code customers can use to apply the discount during checkout.

Returns:

  • (String, nil)


22876
22877
22878
# File 'lib/pago/v2026_04/models.rb', line 22876

def code
  @code
end

#created_atString (readonly)

Creation timestamp of the object.

Returns:

  • (String)


22857
22858
22859
# File 'lib/pago/v2026_04/models.rb', line 22857

def created_at
  @created_at
end

#currencyString (readonly)

Deprecated.

Returns:

  • (String)


22849
22850
22851
# File 'lib/pago/v2026_04/models.rb', line 22849

def currency
  @currency
end

#durationString (readonly)

Returns:

  • (String)


22835
22836
22837
# File 'lib/pago/v2026_04/models.rb', line 22835

def duration
  @duration
end

#duration_in_monthsInteger (readonly)

Returns:

  • (Integer)


22838
22839
22840
# File 'lib/pago/v2026_04/models.rb', line 22838

def duration_in_months
  @duration_in_months
end

#ends_atString? (readonly)

Timestamp after which the discount is no longer redeemable.

Returns:

  • (String, nil)


22884
22885
22886
# File 'lib/pago/v2026_04/models.rb', line 22884

def ends_at
  @ends_at
end

#idString (readonly)

The ID of the object.

Returns:

  • (String)


22865
22866
22867
# File 'lib/pago/v2026_04/models.rb', line 22865

def id
  @id
end

#max_redemptionsInteger? (readonly)

Maximum number of times the discount can be redeemed.

Returns:

  • (Integer, nil)


22888
22889
22890
# File 'lib/pago/v2026_04/models.rb', line 22888

def max_redemptions
  @max_redemptions
end

#metadataHash{String => String, Integer, Float, Boolean} (readonly)

Returns:

  • (Hash{String => String, Integer, Float, Boolean})


22868
22869
22870
# File 'lib/pago/v2026_04/models.rb', line 22868

def 
  @metadata
end

#modified_atString? (readonly)

Last modification timestamp of the object.

Returns:

  • (String, nil)


22861
22862
22863
# File 'lib/pago/v2026_04/models.rb', line 22861

def modified_at
  @modified_at
end

#nameString (readonly)

Name of the discount. Will be displayed to the customer when the discount is applied.

Returns:

  • (String)


22872
22873
22874
# File 'lib/pago/v2026_04/models.rb', line 22872

def name
  @name
end

#organization_idString (readonly)

The organization ID.

Returns:

  • (String)


22896
22897
22898
# File 'lib/pago/v2026_04/models.rb', line 22896

def organization_id
  @organization_id
end

#productsArray<Models::DiscountProduct> (readonly)

Returns:



22899
22900
22901
# File 'lib/pago/v2026_04/models.rb', line 22899

def products
  @products
end

#redemptions_countInteger (readonly)

Number of times the discount has been redeemed.

Returns:

  • (Integer)


22892
22893
22894
# File 'lib/pago/v2026_04/models.rb', line 22892

def redemptions_count
  @redemptions_count
end

#starts_atString? (readonly)

Timestamp after which the discount is redeemable.

Returns:

  • (String, nil)


22880
22881
22882
# File 'lib/pago/v2026_04/models.rb', line 22880

def starts_at
  @starts_at
end

#typeString (readonly)

Returns:

  • (String)


22841
22842
22843
# File 'lib/pago/v2026_04/models.rb', line 22841

def type
  @type
end

Class Method Details

.from_json(data) ⇒ DiscountFixedRepeatDuration?

Parameters:

  • data (Hash, String, nil)

Returns:



22944
22945
22946
22947
22948
22949
22950
22951
22952
22953
22954
22955
22956
22957
22958
22959
22960
22961
22962
22963
22964
22965
22966
22967
22968
22969
22970
22971
22972
# File 'lib/pago/v2026_04/models.rb', line 22944

def self.from_json(data)
  data = ::JSON.parse(data) if data.is_a?(String)
  data = ::Pago::Serde.object(data)
  return nil if data.nil?

  wrap_raw(
    new(
      duration: (data.key?("duration") ? data["duration"] : ::Pago::UNSET),
      duration_in_months: (data.key?("duration_in_months") ? data["duration_in_months"] : ::Pago::UNSET),
      type: (data.key?("type") ? data["type"] : ::Pago::UNSET),
      amount: (data.key?("amount") ? data["amount"] : ::Pago::UNSET),
      currency: (data.key?("currency") ? data["currency"] : ::Pago::UNSET),
      amounts: (data.key?("amounts") ? data["amounts"] : ::Pago::UNSET),
      created_at: (data.key?("created_at") ? data["created_at"] : ::Pago::UNSET),
      modified_at: (data.key?("modified_at") ? data["modified_at"] : ::Pago::UNSET),
      id: (data.key?("id") ? data["id"] : ::Pago::UNSET),
      metadata: (data.key?("metadata") ? data["metadata"] : ::Pago::UNSET),
      name: (data.key?("name") ? data["name"] : ::Pago::UNSET),
      code: (data.key?("code") ? data["code"] : ::Pago::UNSET),
      starts_at: (data.key?("starts_at") ? data["starts_at"] : ::Pago::UNSET),
      ends_at: (data.key?("ends_at") ? data["ends_at"] : ::Pago::UNSET),
      max_redemptions: (data.key?("max_redemptions") ? data["max_redemptions"] : ::Pago::UNSET),
      redemptions_count: (data.key?("redemptions_count") ? data["redemptions_count"] : ::Pago::UNSET),
      organization_id: (data.key?("organization_id") ? data["organization_id"] : ::Pago::UNSET),
      products: (data.key?("products") ? ::Pago::Serde.array(data["products"]) { |item0| Models::DiscountProduct.from_json(item0) } : ::Pago::UNSET)
    ),
    data
  )
end