Class: Pago::V2026_04::Models::CustomerProduct

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

Overview

Schema of a product for customer portal.

Constant Summary collapse

JSON_KEYS =

Returns:

  • (Hash[Symbol, String])
{
  id: "id",
  created_at: "created_at",
  modified_at: "modified_at",
  trial_interval: "trial_interval",
  trial_interval_count: "trial_interval_count",
  name: "name",
  description: "description",
  visibility: "visibility",
  recurring_interval: "recurring_interval",
  recurring_interval_count: "recurring_interval_count",
  meter_interval: "meter_interval",
  meter_interval_count: "meter_interval_count",
  is_recurring: "is_recurring",
  is_archived: "is_archived",
  organization_id: "organization_id",
  prices: "prices",
  benefits: "benefits",
  medias: "medias"
}.freeze
REQUIRED_KEYS =

Returns:

  • (Array[String])
["id", "created_at", "modified_at", "trial_interval", "trial_interval_count", "name", "description", "visibility", "recurring_interval", "recurring_interval_count", "meter_interval", "meter_interval_count", "is_recurring", "is_archived", "organization_id", "prices", "benefits", "medias"].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(id:, created_at:, modified_at:, trial_interval:, trial_interval_count:, name:, description:, visibility:, recurring_interval:, recurring_interval_count:, meter_interval:, meter_interval_count:, is_recurring:, is_archived:, organization_id:, prices:, benefits:, medias:) ⇒ CustomerProduct

Returns a new instance of CustomerProduct.

Parameters:

  • id: (String)
  • created_at: (String)
  • modified_at: (String, nil)
  • trial_interval: (String, nil)
  • trial_interval_count: (Integer, nil)
  • name: (String)
  • description: (String, nil)
  • visibility: (String)
  • recurring_interval: (String, nil)
  • recurring_interval_count: (Integer, nil)
  • meter_interval: (String, nil)
  • meter_interval_count: (Integer, nil)
  • is_recurring: (Boolean)
  • is_archived: (Boolean)
  • organization_id: (String)
  • prices: (Array[untyped])
  • benefits: (Array[Models::BenefitPublic])
  • medias: (Array[Models::ProductMediaFileRead])


19348
19349
19350
19351
19352
19353
19354
19355
19356
19357
19358
19359
19360
19361
19362
19363
19364
19365
19366
19367
19368
19369
19370
19371
19372
19373
19374
19375
19376
19377
19378
19379
19380
19381
19382
19383
19384
19385
19386
19387
# File 'lib/pago/v2026_04/models.rb', line 19348

def initialize(
  id:,
  created_at:,
  modified_at:,
  trial_interval:,
  trial_interval_count:,
  name:,
  description:,
  visibility:,
  recurring_interval:,
  recurring_interval_count:,
  meter_interval:,
  meter_interval_count:,
  is_recurring:,
  is_archived:,
  organization_id:,
  prices:,
  benefits:,
  medias:
)
  super()
  assign(:id, id)
  assign(:created_at, created_at)
  assign(:modified_at, modified_at)
  assign(:trial_interval, trial_interval)
  assign(:trial_interval_count, trial_interval_count)
  assign(:name, name)
  assign(:description, description)
  assign(:visibility, visibility)
  assign(:recurring_interval, recurring_interval)
  assign(:recurring_interval_count, recurring_interval_count)
  assign(:meter_interval, meter_interval)
  assign(:meter_interval_count, meter_interval_count)
  assign(:is_recurring, is_recurring)
  assign(:is_archived, is_archived)
  assign(:organization_id, organization_id)
  assign(:prices, prices)
  assign(:benefits, benefits)
  assign(:medias, medias)
end

Instance Attribute Details

#benefitsArray<Models::BenefitPublic> (readonly)

List of benefits granted by the product.

Returns:



19342
19343
19344
# File 'lib/pago/v2026_04/models.rb', line 19342

def benefits
  @benefits
end

#created_atString (readonly)

Creation timestamp of the object.

Returns:

  • (String)


19283
19284
19285
# File 'lib/pago/v2026_04/models.rb', line 19283

def created_at
  @created_at
end

#descriptionString? (readonly)

The description of the product.

Returns:

  • (String, nil)


19303
19304
19305
# File 'lib/pago/v2026_04/models.rb', line 19303

def description
  @description
end

#idString (readonly)

The ID of the object.

Returns:

  • (String)


19279
19280
19281
# File 'lib/pago/v2026_04/models.rb', line 19279

def id
  @id
end

#is_archivedBoolean (readonly)

Whether the product is archived and no longer available.

Returns:

  • (Boolean)


19330
19331
19332
# File 'lib/pago/v2026_04/models.rb', line 19330

def is_archived
  @is_archived
end

#is_recurringBoolean (readonly)

Whether the product is a subscription.

Returns:

  • (Boolean)


19326
19327
19328
# File 'lib/pago/v2026_04/models.rb', line 19326

def is_recurring
  @is_recurring
end

#mediasArray<Models::ProductMediaFileRead> (readonly)

The medias associated to the product.

Returns:



19346
19347
19348
# File 'lib/pago/v2026_04/models.rb', line 19346

def medias
  @medias
end

#meter_intervalString? (readonly)

The meter cycle of the product, independent of the billing interval. If None, metered concerns follow the billing interval.

Returns:

  • (String, nil)


19318
19319
19320
# File 'lib/pago/v2026_04/models.rb', line 19318

def meter_interval
  @meter_interval
end

#meter_interval_countInteger? (readonly)

Number of meter interval units. None when no meter cycle is set.

Returns:

  • (Integer, nil)


19322
19323
19324
# File 'lib/pago/v2026_04/models.rb', line 19322

def meter_interval_count
  @meter_interval_count
end

#modified_atString? (readonly)

Last modification timestamp of the object.

Returns:

  • (String, nil)


19287
19288
19289
# File 'lib/pago/v2026_04/models.rb', line 19287

def modified_at
  @modified_at
end

#nameString (readonly)

The name of the product.

Returns:

  • (String)


19299
19300
19301
# File 'lib/pago/v2026_04/models.rb', line 19299

def name
  @name
end

#organization_idString (readonly)

The ID of the organization owning the product.

Returns:

  • (String)


19334
19335
19336
# File 'lib/pago/v2026_04/models.rb', line 19334

def organization_id
  @organization_id
end

#pricesArray<Object> (readonly)

List of available prices for this product.

Returns:

  • (Array<Object>)


19338
19339
19340
# File 'lib/pago/v2026_04/models.rb', line 19338

def prices
  @prices
end

#recurring_intervalString? (readonly)

The recurring interval of the product. If None, the product is a one-time purchase.

Returns:

  • (String, nil)


19310
19311
19312
# File 'lib/pago/v2026_04/models.rb', line 19310

def recurring_interval
  @recurring_interval
end

#recurring_interval_countInteger? (readonly)

Number of interval units of the subscription. If this is set to 1 the charge will happen every interval (e.g. every month), if set to 2 it will be every other month, and so on. None for one-time products.

Returns:

  • (Integer, nil)


19314
19315
19316
# File 'lib/pago/v2026_04/models.rb', line 19314

def recurring_interval_count
  @recurring_interval_count
end

#trial_intervalString? (readonly)

The interval unit for the trial period.

Returns:

  • (String, nil)


19291
19292
19293
# File 'lib/pago/v2026_04/models.rb', line 19291

def trial_interval
  @trial_interval
end

#trial_interval_countInteger? (readonly)

The number of interval units for the trial period.

Returns:

  • (Integer, nil)


19295
19296
19297
# File 'lib/pago/v2026_04/models.rb', line 19295

def trial_interval_count
  @trial_interval_count
end

#visibilityString (readonly)

Returns:

  • (String)


19306
19307
19308
# File 'lib/pago/v2026_04/models.rb', line 19306

def visibility
  @visibility
end

Class Method Details

.from_json(data) ⇒ CustomerProduct?

Parameters:

  • data (Hash, String, nil)

Returns:



19391
19392
19393
19394
19395
19396
19397
19398
19399
19400
19401
19402
19403
19404
19405
19406
19407
19408
19409
19410
19411
19412
19413
19414
19415
19416
19417
19418
19419
# File 'lib/pago/v2026_04/models.rb', line 19391

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(
      id: (data.key?("id") ? data["id"] : ::Pago::UNSET),
      created_at: (data.key?("created_at") ? data["created_at"] : ::Pago::UNSET),
      modified_at: (data.key?("modified_at") ? data["modified_at"] : ::Pago::UNSET),
      trial_interval: (data.key?("trial_interval") ? data["trial_interval"] : ::Pago::UNSET),
      trial_interval_count: (data.key?("trial_interval_count") ? data["trial_interval_count"] : ::Pago::UNSET),
      name: (data.key?("name") ? data["name"] : ::Pago::UNSET),
      description: (data.key?("description") ? data["description"] : ::Pago::UNSET),
      visibility: (data.key?("visibility") ? data["visibility"] : ::Pago::UNSET),
      recurring_interval: (data.key?("recurring_interval") ? data["recurring_interval"] : ::Pago::UNSET),
      recurring_interval_count: (data.key?("recurring_interval_count") ? data["recurring_interval_count"] : ::Pago::UNSET),
      meter_interval: (data.key?("meter_interval") ? data["meter_interval"] : ::Pago::UNSET),
      meter_interval_count: (data.key?("meter_interval_count") ? data["meter_interval_count"] : ::Pago::UNSET),
      is_recurring: (data.key?("is_recurring") ? data["is_recurring"] : ::Pago::UNSET),
      is_archived: (data.key?("is_archived") ? data["is_archived"] : ::Pago::UNSET),
      organization_id: (data.key?("organization_id") ? data["organization_id"] : ::Pago::UNSET),
      prices: (data.key?("prices") ? ::Pago::Serde.array(data["prices"]) { |item0| ::Pago::Serde.union(item0, variants: [Unions::LegacyRecurringProductPrice, Unions::ProductPrice]) } : ::Pago::UNSET),
      benefits: (data.key?("benefits") ? ::Pago::Serde.array(data["benefits"]) { |item0| Models::BenefitPublic.from_json(item0) } : ::Pago::UNSET),
      medias: (data.key?("medias") ? ::Pago::Serde.array(data["medias"]) { |item0| Models::ProductMediaFileRead.from_json(item0) } : ::Pago::UNSET)
    ),
    data
  )
end