Struct DiscountCreate

Source
pub struct DiscountCreate<'a> { /* private fields */ }
Expand description

Request builder for creating a discount in Paddle API.

Implementations§

Source§

impl<'a> DiscountCreate<'a>

Source

pub fn new( client: &'a Paddle, amount: impl Into<String>, description: impl Into<String>, discount_type: DiscountType, ) -> Self

Source

pub fn enabled_for_checkout(&mut self, enabled: bool) -> &mut Self

Whether this discount can be redeemed by customers at checkout (true) or not (false).

Source

pub fn code(&mut self, code: impl Into<String>) -> &mut Self

Unique code that customers can use to redeem this discount at checkout. Use letters and numbers only, up to 32 characters. Not case-sensitive.

If omitted and enabled_for_checkout is true, Paddle generates a random 10-character code.

Source

pub fn currency_code(&mut self, currency_code: CurrencyCode) -> &mut Self

Supported three-letter ISO 4217 currency code. Required where discount type is DiscountType::Flat or DiscountType::FlatPerSeat.

Source

pub fn recur(&mut self, recur: bool) -> &mut Self

Whether this discount applies for multiple subscription billing periods (true) or not (false). If omitted, defaults to false.

Source

pub fn maximum_recurring_intervals( &mut self, maximum_recurring_intervals: u64, ) -> &mut Self

Number of subscription billing periods that this discount recurs for. Requires recur. null if this discount recurs forever.

Source

pub fn usage_limit(&mut self, usage_limit: u64) -> &mut Self

Maximum number of times this discount can be redeemed. This is an overall limit for this discount, rather than a per-customer limit. null if this discount can be redeemed an unlimited amount of times.

Paddle counts a usage as a redemption on a checkout, transaction, or the initial application against a subscription. Transactions created for subscription renewals, midcycle changes, and one-time charges aren’t considered a redemption.

Source

pub fn restrict_to( &mut self, restrict_to: impl IntoIterator<Item = impl AsRef<str>>, ) -> &mut Self

Product or price IDs that this discount is for. When including a product ID, all prices for that product can be discounted. null if this discount applies to all products and prices.

Source

pub fn expires_at(&mut self, expires_at: DateTime<Utc>) -> &mut Self

Datetime when this discount expires. Discount can no longer be redeemed after this date has elapsed. null if this discount can be redeemed forever.

Expired discounts can’t be redeemed against transactions or checkouts, but can be applied when updating subscriptions.

Source

pub fn custom_data(&mut self, custom_data: HashMap<String, String>) -> &mut Self

Set custom data for this discount.

Source

pub async fn send(&self) -> Result<SuccessResponse<Discount>, Error>

Send the request to Paddle and return the response.

Trait Implementations§

Source§

impl<'a> Serialize for DiscountCreate<'a>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for DiscountCreate<'a>

§

impl<'a> RefUnwindSafe for DiscountCreate<'a>

§

impl<'a> Send for DiscountCreate<'a>

§

impl<'a> Sync for DiscountCreate<'a>

§

impl<'a> Unpin for DiscountCreate<'a>

§

impl<'a> UnwindSafe for DiscountCreate<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,