tosspayments/api/
list_settlements.rs1use reqwest::Method;
2use serde::{Deserialize, Serialize};
3use typed_builder::TypedBuilder;
4
5use crate::data::Settlement;
6use crate::endpoint::Endpoint;
7
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
9pub enum ListSettlementsDateType {
10 #[serde(rename = "soldDate")]
11 SoldDate,
12 #[serde(rename = "paidOutDate")]
13 PaidOutDate,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize, TypedBuilder)]
17#[serde(rename_all = "camelCase")]
18pub struct ListSettlements {
19 pub start_date: String,
20 pub end_date: String,
21 #[builder(default)]
22 pub date_type: Option<ListSettlementsDateType>,
23 #[builder(default)]
24 pub page: Option<usize>,
25 #[builder(default)]
26 pub size: Option<usize>,
27}
28
29impl Endpoint for ListSettlements {
30 type Query = Self;
31 type Body = ();
32 type Response = Vec<Settlement>;
33
34 fn relative_path(&self) -> String {
35 "/v1/settlements".to_string()
36 }
37
38 fn method(&self) -> Method {
39 Method::GET
40 }
41
42 fn query(&self) -> Option<&Self::Query> {
43 Some(&self)
44 }
45}