messaging_api_line/models/
membership.rs

1/*
2 * LINE Messaging API
3 *
4 * This document describes LINE Messaging API.
5 *
6 * The version of the OpenAPI document: 0.0.1
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Membership {
16    /// Membership plan ID.
17    #[serde(rename = "membershipId")]
18    pub membership_id: i32,
19    /// Membership plan name.
20    #[serde(rename = "title")]
21    pub title: String,
22    /// Membership plan description.
23    #[serde(rename = "description")]
24    pub description: String,
25    /// List of membership plan perks.
26    #[serde(rename = "benefits")]
27    pub benefits: Vec<String>,
28    /// Monthly fee for membership plan. (e.g. 1500.00)
29    #[serde(rename = "price")]
30    pub price: f64,
31    /// The currency of membership.price.
32    #[serde(rename = "currency")]
33    pub currency: Currency,
34    /// Number of members subscribed to the membership plan.
35    #[serde(rename = "memberCount")]
36    pub member_count: i32,
37    /// The upper limit of members who can subscribe. If no upper limit is set, it will be null.
38    #[serde(rename = "memberLimit", deserialize_with = "Option::deserialize")]
39    pub member_limit: Option<i32>,
40    /// Payment method for users who subscribe to a membership plan.
41    #[serde(rename = "isInAppPurchase")]
42    pub is_in_app_purchase: bool,
43    /// Membership plan status.
44    #[serde(rename = "isPublished")]
45    pub is_published: bool,
46}
47
48impl Membership {
49    pub fn new(membership_id: i32, title: String, description: String, benefits: Vec<String>, price: f64, currency: Currency, member_count: i32, member_limit: Option<i32>, is_in_app_purchase: bool, is_published: bool) -> Membership {
50        Membership {
51            membership_id,
52            title,
53            description,
54            benefits,
55            price,
56            currency,
57            member_count,
58            member_limit,
59            is_in_app_purchase,
60            is_published,
61        }
62    }
63}
64/// The currency of membership.price.
65#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
66pub enum Currency {
67    #[serde(rename = "JPY")]
68    Jpy,
69    #[serde(rename = "TWD")]
70    Twd,
71    #[serde(rename = "THB")]
72    Thb,
73}
74
75impl Default for Currency {
76    fn default() -> Currency {
77        Self::Jpy
78    }
79}
80