pipedrive_rs/models/
add_recurring_subscription_request.rs1#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
15pub struct AddRecurringSubscriptionRequest {
16 #[serde(rename = "deal_id")]
18 pub deal_id: i32,
19 #[serde(rename = "currency")]
21 pub currency: String,
22 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
24 pub description: Option<String>,
25 #[serde(rename = "cadence_type")]
27 pub cadence_type: CadenceType,
28 #[serde(rename = "cycles_count", skip_serializing_if = "Option::is_none")]
30 pub cycles_count: Option<i32>,
31 #[serde(rename = "cycle_amount")]
33 pub cycle_amount: i32,
34 #[serde(rename = "start_date")]
36 pub start_date: String,
37 #[serde(rename = "infinite", skip_serializing_if = "Option::is_none")]
39 pub infinite: Option<bool>,
40 #[serde(rename = "payments", skip_serializing_if = "Option::is_none")]
42 pub payments: Option<Vec<serde_json::Value>>,
43 #[serde(rename = "update_deal_value", skip_serializing_if = "Option::is_none")]
45 pub update_deal_value: Option<bool>,
46}
47
48impl AddRecurringSubscriptionRequest {
49 pub fn new(deal_id: i32, currency: String, cadence_type: CadenceType, cycle_amount: i32, start_date: String) -> AddRecurringSubscriptionRequest {
50 AddRecurringSubscriptionRequest {
51 deal_id,
52 currency,
53 description: None,
54 cadence_type,
55 cycles_count: None,
56 cycle_amount,
57 start_date,
58 infinite: None,
59 payments: None,
60 update_deal_value: None,
61 }
62 }
63}
64
65#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
67pub enum CadenceType {
68 #[serde(rename = "weekly")]
69 Weekly,
70 #[serde(rename = "monthly")]
71 Monthly,
72 #[serde(rename = "quarterly")]
73 Quarterly,
74 #[serde(rename = "yearly")]
75 Yearly,
76}
77
78impl Default for CadenceType {
79 fn default() -> CadenceType {
80 Self::Weekly
81 }
82}
83