messaging_api_line/models/
membership.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Membership {
16 #[serde(rename = "membershipId")]
18 pub membership_id: i32,
19 #[serde(rename = "title")]
21 pub title: String,
22 #[serde(rename = "description")]
24 pub description: String,
25 #[serde(rename = "benefits")]
27 pub benefits: Vec<String>,
28 #[serde(rename = "price")]
30 pub price: f64,
31 #[serde(rename = "currency")]
33 pub currency: Currency,
34 #[serde(rename = "memberCount")]
36 pub member_count: i32,
37 #[serde(rename = "memberLimit", deserialize_with = "Option::deserialize")]
39 pub member_limit: Option<i32>,
40 #[serde(rename = "isInAppPurchase")]
42 pub is_in_app_purchase: bool,
43 #[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#[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