flutterwave_v3_models/payment_plans/
get_plans.rs1use super::{Interval, PlanApiResData};
2use crate::common::multi_res_meta::MultiResMeta;
3use serde::{Deserialize, Serialize};
4use validator::Validate;
5use crate::fwcall::{FwCall, ToFwCall};
6use serde_qs;
7use std::borrow::Cow;
8
9#[derive(Debug, Serialize, Deserialize, Validate)]
10pub struct GetPlansReq {
11 pub from: Option<String>,
12 pub to: Option<String>,
13 pub page: Option<i32>,
14 pub amount: Option<i32>,
15 pub currency: Option<String>,
16 pub interval: Option<Interval>,
17 pub status: Option<String>,
18}
19
20#[derive(Debug, Serialize, Deserialize)]
21pub struct GetPlansRes {
22 pub status: String,
23 pub message: String,
24 pub meta: MultiResMeta,
25 pub data: Vec<PlanApiResData>,
26}
27
28impl<'a> ToFwCall<'a> for GetPlansReq {
29 type ApiRequest = Self;
30
31 type ApiResponse = GetPlansRes;
32
33 fn get_call(self) -> FwCall<'a, Self::ApiRequest, Self::ApiResponse> {
34 FwCall::new(
35 Cow::Owned(format!(
36 "/v3/payment-plans{}",
37 serde_qs::to_string(&self).unwrap()
38 )),
39 reqwest::Method::GET,
40 None,
41 )
42 }
43}