iyzipay_rust/requests/
installment.rs

1use bigdecimal::BigDecimal;
2
3use crate::requests::RequestStringBuilder;
4
5use self::super::PKISerialize;
6use self::super::Request;
7
8#[derive(Debug, Default, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct RetrieveInstallmentInfoRequest {
11    #[serde(flatten)]
12    request: Request,
13
14    bin_number: Option<String>,
15
16    price: Option<BigDecimal>,
17
18    currency: Option<String>,
19}
20
21impl RetrieveInstallmentInfoRequest {
22    pub fn new() -> Self {
23        RetrieveInstallmentInfoRequest::default()
24    }
25
26    pub fn set_bin_number<T: Into<String>>(&mut self, bin_number: T) {
27        self.bin_number = Some(bin_number.into());
28    }
29
30    pub fn set_price<T: Into<BigDecimal>>(&mut self, price: T) {
31        self.price = Some(price.into());
32    }
33
34    pub fn set_currency<T: Into<String>>(&mut self, currency: T) {
35        self.currency = Some(currency.into());
36    }
37
38    pub fn bin_number(&self) -> Option<&String> {
39        self.bin_number.as_ref()
40    }
41    pub fn price(&self) -> Option<&BigDecimal> {
42        self.price.as_ref()
43    }
44    pub fn currency(&self) -> Option<&String> {
45        self.currency.as_ref()
46    }
47}
48
49impl std::ops::Deref for RetrieveInstallmentInfoRequest {
50    type Target = Request;
51    fn deref(&self) -> &Self::Target {
52        &self.request
53    }
54}
55
56impl std::ops::DerefMut for RetrieveInstallmentInfoRequest {
57    fn deref_mut(&mut self) -> &mut Self::Target {
58        &mut self.request
59    }
60}
61
62impl PKISerialize for RetrieveInstallmentInfoRequest {
63    fn serialize(&self) -> Option<String> {
64        let mut ser = RequestStringBuilder::new();
65        ser.append_option_val(self.request.serialize());
66        ser.append_option("binNumber", self.bin_number.as_ref());
67        ser.append_price_option("price", self.price.as_ref());
68        ser.append_option("currency", self.currency.as_ref());
69        Option::from(ser.build(true))
70    }
71}