D++ (DPP)
C++ Discord API Bot Library
dpp::sku Class Reference

A definition of a discord SKU. More...

+ Inheritance diagram for dpp::sku:
+ Collaboration diagram for dpp::sku:

Public Member Functions

 sku ()=default
 Construct a new SKU object. More...
 
 sku (const snowflake id, const sku_type type, const snowflake application_id, const std::string name, const std::string slug, const uint16_t flags)
 Construct a new SKU object with all data required. More...
 
sku_type get_type () const
 Get the type of SKU. More...
 
bool is_available () const
 Is the SKU available for purchase? More...
 
bool is_guild_subscription () const
 Is the SKU a guild subscription? More...
 
bool is_user_subscription () const
 Is the SKU a user subscription? More...
 
constexpr double get_creation_time () const noexcept
 Get the creation time of this object according to Discord. More...
 
constexpr bool operator== (const managed &other) const noexcept
 Comparison operator for comparing two managed objects by id. More...
 
constexpr bool operator!= (const managed &other) const noexcept
 Comparison operator for comparing two managed objects by id. More...
 
skufill_from_json (nlohmann::json *j)
 Convert object from nlohmann::json. More...
 
auto to_json (bool with_id=false) const
 Convert object to nlohmann::json. More...
 
std::string build_json (bool with_id=false) const
 Convert object to json string. More...
 

Public Attributes

sku_type type {sku_type::SUBSCRIPTION}
 The type of SKU. More...
 
snowflake application_id {0}
 ID of the parent application. More...
 
std::string name {}
 Customer-facing name of your premium offering. More...
 
std::string slug {}
 System-generated URL slug based on the SKU's name. More...
 
uint16_t flags {0}
 Flags bitmap from dpp::sku_flags. More...
 
snowflake id = {}
 Unique ID of object set by Discord. This value contains a timestamp, worker ID, internal server ID, and an incrementing value. Only the timestamp is relevant to us as useful metadata. More...
 

Protected Member Functions

skufill_from_json_impl (nlohmann::json *j)
 
json to_json_impl (bool with_id=false) const
 Build json for this SKU object. More...
 

Friends

struct json_interface< sku >
 

Detailed Description

A definition of a discord SKU.

Constructor & Destructor Documentation

◆ sku() [1/2]

dpp::sku::sku ( )
default

Construct a new SKU object.

◆ sku() [2/2]

dpp::sku::sku ( const snowflake  id,
const sku_type  type,
const snowflake  application_id,
const std::string  name,
const std::string  slug,
const uint16_t  flags 
)

Construct a new SKU object with all data required.

Parameters
idSKU id.

Member Function Documentation

◆ build_json()

std::string dpp::json_interface< sku >::build_json ( bool  with_id = false) const
inlineinherited

Convert object to json string.

Parameters
with_idWhether to include the ID or not
Note
Some fields are conditionally filled, do not rely on all fields being present
Returns
std::string Json built from the structure

◆ fill_from_json()

sku & dpp::json_interface< sku >::fill_from_json ( nlohmann::json *  j)
inlineinherited

Convert object from nlohmann::json.

Parameters
jnlohmann::json object
Returns
T& Reference to self for fluent calling

◆ fill_from_json_impl()

sku& dpp::sku::fill_from_json_impl ( nlohmann::json *  j)
protected

Read class values from json object

Parameters
jA json object to read from
Returns
A reference to self

◆ get_creation_time()

constexpr double dpp::managed::get_creation_time ( ) const
inlineconstexprnoexceptinherited

Get the creation time of this object according to Discord.

Returns
double creation time inferred from the snowflake ID. The minimum possible value is the first second of 2015.

◆ get_type()

sku_type dpp::sku::get_type ( ) const

Get the type of SKU.

Returns
sku_type SKU type

◆ is_available()

bool dpp::sku::is_available ( ) const

Is the SKU available for purchase?

Returns
true if the SKU can be purchased.

◆ is_guild_subscription()

bool dpp::sku::is_guild_subscription ( ) const

Is the SKU a guild subscription?

Returns
true if the SKU is a guild subscription.

◆ is_user_subscription()

bool dpp::sku::is_user_subscription ( ) const

Is the SKU a user subscription?

Returns
true if the SKU is a user subscription

◆ operator!=()

constexpr bool dpp::managed::operator!= ( const managed other) const
inlineconstexprnoexceptinherited

Comparison operator for comparing two managed objects by id.

Parameters
otherOther object to compare against
Returns
true objects are not the same id
false objects are the same id

◆ operator==()

constexpr bool dpp::managed::operator== ( const managed other) const
inlineconstexprnoexceptinherited

Comparison operator for comparing two managed objects by id.

Parameters
otherOther object to compare against
Returns
true objects are the same id
false objects are not the same id

◆ to_json()

auto dpp::json_interface< sku >::to_json ( bool  with_id = false) const
inlineinherited

Convert object to nlohmann::json.

Parameters
with_idWhether to include the ID or not
Note
Some fields are conditionally filled, do not rely on all fields being present
Returns
json Json built from the structure

◆ to_json_impl()

json dpp::sku::to_json_impl ( bool  with_id = false) const
protected

Build json for this SKU object.

Parameters
with_idinclude the ID in the json
Returns
json JSON object

Friends And Related Function Documentation

◆ json_interface< sku >

friend struct json_interface< sku >
friend

Member Data Documentation

◆ application_id

snowflake dpp::sku::application_id {0}

ID of the parent application.

◆ flags

uint16_t dpp::sku::flags {0}

Flags bitmap from dpp::sku_flags.

◆ id

snowflake dpp::managed::id = {}
inherited

Unique ID of object set by Discord. This value contains a timestamp, worker ID, internal server ID, and an incrementing value. Only the timestamp is relevant to us as useful metadata.

◆ name

std::string dpp::sku::name {}

Customer-facing name of your premium offering.

◆ slug

std::string dpp::sku::slug {}

System-generated URL slug based on the SKU's name.

◆ type

sku_type dpp::sku::type {sku_type::SUBSCRIPTION}

The type of SKU.

D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0